-
Notifications
You must be signed in to change notification settings - Fork 302
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
Advanced: Basic block metadata placement refactoring #457
Conversation
fb32239
to
8036a6b
Compare
Codecov Report
@@ Coverage Diff @@
## master #457 +/- ##
=======================================
Coverage 99.58% 99.58%
=======================================
Files 37 37
Lines 4539 4543 +4
=======================================
+ Hits 4520 4524 +4
Misses 19 19
Flags with carried forward coverage won't be shown. Click here to find out more.
|
4c25348
to
20486e9
Compare
@chfast This currently works by keeping only single Do you think it's worth to try to get rid of this first |
This is fine as a start, but at some point we have to make sure the |
It is always added here now. |
20486e9
to
603327d
Compare
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 max_instrs_size
can be increased to code.size() + 2
(additional BEGINBLOCK
and STOP
). And the FIXME assert can be enabled in the analysis end.
@@ -234,6 +235,7 @@ constexpr std::array<instruction_exec_fn, 256> instruction_implementations = []( | |||
table[OP_PC] = op_pc; | |||
table[OP_GAS] = op_gas; | |||
table[OPX_BEGINBLOCK] = opx_beginblock; | |||
table[OP_JUMPDEST] = opx_beginblock; |
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 OPX_BEGINBLOCK
is alias for OP_JUMPDEST
:)
603327d
to
f7edc0d
Compare
f7edc0d
to
b5b09cc
Compare
Analysis benchmarks
|
Execution benchmarks
|
c08c338
to
ef7b05e
Compare
290404c
to
1c26b64
Compare
Fix stack height check for the basic block following a JUMPI instruction. Before the stack height was 1 too big because the implementation incorrectly did not remove the JUMPI condition from the stack. The bug was introduced in #457.
Resolves #445