-
Notifications
You must be signed in to change notification settings - Fork 315
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # 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