-
Notifications
You must be signed in to change notification settings - Fork 293
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Baseline interpreter #261
Baseline interpreter #261
Conversation
477ba74
to
3dc2b12
Compare
Please also test against the SemanticTests, that should be the largest group of tests that run against the EVM. |
This is similar.
|
8d7141b
to
dfd1d96
Compare
Some final benchmarks with Clang 11.
|
Codecov Report
@@ Coverage Diff @@
## master #261 +/- ##
==========================================
+ Coverage 99.67% 99.75% +0.07%
==========================================
Files 23 24 +1
Lines 3073 3634 +561
==========================================
+ Hits 3063 3625 +562
+ Misses 10 9 -1
Flags with carried forward coverage won't be shown. Click here to find out more.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The "baseline" is a new interpreter added to evmone. It has much simpler, "classic" design and performs minimal amount of code analysis (only required JUMPDEST analysis, the code is unmodified). EVM instructions implementations are shared with "advanced" VM where possible.
To use it pass
O=0
option.The initial benchmarking results look promising (see below). All done with Clang-11 compiler. The GCC-10 has lower performance, but I believe this can be fixed.
Moreover, the first PoC has some additional changes and tweaks (e.g. custom instruction table) and is up to 5% faster than this version. The old version is still available in baseline-old branch.
Solidity test suite
For solidity test suite it performs a tinny bit better.
Internal benchmark suite