Skip to content
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

EVM instructions synthetic benchmarks #278

Merged
merged 2 commits into from
Mar 9, 2021
Merged

EVM instructions synthetic benchmarks #278

merged 2 commits into from
Mar 9, 2021

Conversation

chfast
Copy link
Member

@chfast chfast commented Dec 18, 2020

@chfast chfast force-pushed the synth_benchmarks branch 6 times, most recently from 77ce0e8 to 88e5085 Compare December 23, 2020 19:01
@chfast chfast force-pushed the synth_benchmarks branch 2 times, most recently from 5e34b29 to 440c0dc Compare January 4, 2021 13:20
@chfast chfast changed the title Synth benchmarks EVM instructions synthetic benchmarks Jan 4, 2021
@codecov-io
Copy link

codecov-io commented Jan 4, 2021

Codecov Report

Merging #278 (21a5198) into master (e2f2c87) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #278   +/-   ##
=======================================
  Coverage   99.75%   99.75%           
=======================================
  Files          24       24           
  Lines        3655     3655           
=======================================
  Hits         3646     3646           
  Misses          9        9           
Flag Coverage Δ
unittests 99.75% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

@chfast chfast marked this pull request as ready for review January 4, 2021 13:31
@chfast chfast requested review from axic and gumb0 January 4, 2021 13:32
test/bench/helpers.hpp Outdated Show resolved Hide resolved
switch (kind)
{
case InstructionKind::push:
return stack_limit * (push(opcode, {}) + OP_POP);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's the idea behind using stack_limit as a limit in min_stack mode? It could as well fill up the code size limit.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can notice that both min_stack and full_stack have exactly the same instructions just with different order.

@chfast chfast force-pushed the synth_benchmarks branch 7 times, most recently from d648378 to 151fc83 Compare January 12, 2021 12:51
@chfast chfast requested a review from gumb0 January 12, 2021 14:37
test/bench/helpers.hpp Outdated Show resolved Hide resolved
test/bench/helpers.hpp Outdated Show resolved Hide resolved
test/bench/helpers.hpp Outdated Show resolved Hide resolved
@chfast chfast force-pushed the synth_benchmarks branch 3 times, most recently from bdc3fa3 to 0ababf7 Compare January 17, 2021 10:31
@chfast chfast force-pushed the synth_benchmarks branch 2 times, most recently from 09f8b59 to 49f30b7 Compare January 18, 2021 19:01
This introduces a set of on-demand generated EVM bytecodes available in
the evmone-bench tool. Each bytecode tries to stress a single
"low-level" EVM instruction. Instructions are grouped by their stack
requirements and there are also two main modes of the structure of the
generated bytecodes.
@chfast chfast merged commit b9facfa into master Mar 9, 2021
@chfast chfast deleted the synth_benchmarks branch March 9, 2021 17:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants