Skip to content

new(tests): add benchmarks with mass binop opcodes #1591

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

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

chfast
Copy link
Member

@chfast chfast commented May 13, 2025

πŸ—’οΈ Description

This adds the benchmarks for EVM execution focused on binary instructions (takes two values, produces one).
The benchmark has simple structure: the contract code is the infinite loop will up to the code size limit with the parametrized binop applied to two initial values balanced with DUP2 instruction.

πŸ”— Related Issues

#1571

βœ… Checklist

  • All: Set appropriate labels for the changes.
  • All: Considered squashing commits to improve commit history.
  • All: Added an entry to CHANGELOG.md.
  • All: Considered updating the online docs in the ./docs/ directory.
  • Tests: All converted JSON/YML tests from ethereum/tests have been added to converted-ethereum-tests.txt.
  • Tests: A PR with removal of converted JSON/YML tests from ethereum/tests have been opened.
  • Tests: Included the type and version of evm t8n tool used to locally execute test cases: e.g., ref with commit hash or geth 1.13.1-stable-3f40e65.
  • Tests: Ran mkdocs serve locally and verified the auto-generated docs for new tests in the Test Case Reference are correctly formatted.

Copy link
Member

@danceratopz danceratopz left a comment

Choose a reason for hiding this comment

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

Some suggestions on how to avoid specifying the test ID manually.

Copy link
Member

@danceratopz danceratopz left a comment

Choose a reason for hiding this comment

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

One more comment that I missed before.

@chfast chfast force-pushed the benchmarks/mass_binop_simple branch 2 times, most recently from c640925 to e442d03 Compare May 13, 2025 10:52
@chfast chfast added scope:tests Scope: Changes EL client test cases in `./tests` feature:zkevm labels May 13, 2025
@chfast chfast marked this pull request as ready for review May 13, 2025 14:05
Copy link
Member

@danceratopz danceratopz left a comment

Choose a reason for hiding this comment

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

LGTM! Verified the traces with help from @chfast, cf ethereum/evmone#1222

Just one small suggestion made in the comment blow (ipsilon#8). Feel free to add or discard.

Approved, please merge when you're ready!

@chfast
Copy link
Member Author

chfast commented May 14, 2025

I plan to enable this for MOD too so don't merge yet.

This adds the benchmarks for EVM execution focused on binary
instructions (takes two values, produces one).
The benchmark has simple structure: the contract code is the infinite
loop will up to the code size limit with the parametrized binop applied
to two initial values balanced with DUP2 instruction.
@chfast chfast force-pushed the benchmarks/mass_binop_simple branch from 5b845e3 to 153e172 Compare May 15, 2025 07:22
Copy link
Member

@danceratopz danceratopz left a comment

Choose a reason for hiding this comment

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

Still LGTM!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature:zkevm scope:tests Scope: Changes EL client test cases in `./tests`
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants