Yul interpreter subset for side-effect-free evaluation #15435
Labels
medium effort
Default level of effort
medium impact
Default level of impact
nice to have
We don’t see a good reason not to have it but won’t go out of our way to implement it.
optimizer
Prerequisite for #15358.
Abstract
A reliable Yul interpreter that can evaluate expressions with no side-effects and handle basic control flow would be very useful in Yul optimizer.
Currently we only have a very rudimentary EVM-level intepreter in
ConstantOptimiser
(can handle onlyADD
,SUB
,MUL
,EXP
,SHL
andNOT
) and a more full featured Yul interpreter that was built with testing in mind and is not robust enough for production use. For example it uses hard-coded values for some built-ins, there are bits of code that are designed for fail randomly for fuzzing and has various bits that are just stubs.However, the core part of the test interpreter limited to side-effect-free evaluation looks like it should be a good-enough starting point. We could make it reliable.
Specification
test/tools/yulInterpreter/
intolibyul
.libyul
.YulInterpreterTest
for testing and keep test cases small and modular.The text was updated successfully, but these errors were encountered: