Skip to content

ci(benchmark): relink-floor probe — semantically inert fn reorder#335

Closed
RealiCZ wants to merge 3 commits into
mainfrom
cz/ci/relink-floor-probe
Closed

ci(benchmark): relink-floor probe — semantically inert fn reorder#335
RealiCZ wants to merge 3 commits into
mainfrom
cz/ci/relink-floor-probe

Conversation

@RealiCZ

@RealiCZ RealiCZ commented Jul 7, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Swap the definition order of two adjacent private address-selector helpers in storage_gas_ext (instructions.rs). Zero semantic change; the only effect is a code-layout shift in the rebuilt binary — the same class of shift any small PR causes.
  • Purpose: an A/A' floor measurement for the bench CI. Feature and baseline are semantically identical here, so every "significant" row /benchmark reports on this PR is inter-binary layout / link-order noise — the relink floor that the in-band A/A gate (same-binary round jitter) cannot see.
  • Motivation: the /benchmark run on perf(mega-evm): sload — ARO byte-identical optimization (+4.48%) #326 flagged +2–11% "significant regressions" on lanes that never execute the changed code (sstore_heavy/revm_pinned/sload_100 +7.9%, subcall_1000_transfer_1wei/revm_pinned +8.7%, snailtracer/revm_latest +11.4%). Either the suite's relink floor really is that high — in which case ±5% verdicts on any small PR are unreliable and the gate needs a relink-floor term — or something else is wrong in the comparison path. This probe decides which.

Test plan

  • cargo check -p mega-evm green (pure reorder, no behavior change).
  • Run /benchmark on this PR and read the significant-changes table as the relink floor:
    • many ±2–8% significant rows → floor confirmed; follow-ups are function-alignment flags for bench builds and a relink-floor term in the significance gate;
    • clean (≈0 significant) → layout is not the explanation for perf(mega-evm): sload — ARO byte-identical optimization (+4.48%) #326's contradictions and its regressions need a different explanation.
  • Not meant to merge; close after recording the floor.

Swap the definition order of two adjacent private address-selector
helpers in storage_gas_ext. Zero semantic change; the only effect is a
code-layout shift in the rebuilt binary — exactly the class of shift
any innocent PR causes.

Purpose: running /benchmark on this diff is an A/A' measurement. Both
sides are semantically identical, so every 'significant' row in the
comparison is inter-binary layout / link-order noise — the relink
floor the current A/A gate (same-binary jitter) cannot see. PR #326's
run flagged +2-11% regressions on lanes that never execute the changed
code (e.g. sstore_heavy/revm_pinned/sload_100 +7.9%), which this probe
either confirms as the floor or rules out.

Not meant to merge; close after reading the floor.
@RealiCZ

RealiCZ commented Jul 7, 2026

Copy link
Copy Markdown
Collaborator Author

/benchmark

@RealiCZ RealiCZ added spec:unchanged No change to any `mega-evm`'s behavior api:unchanged No change to the public interface or API rust Pull requests that update rust code agent Generated by AI agents labels Jul 7, 2026
@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown

🧬 Mutation testing — ✅ PASS

Nothing to test — no mutants were generated on the changed lines.

@claude claude Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

✅ Clean

  • Reviewed the swap of two adjacent private helpers (storage_addr_from_to, storage_addr_from_current_for_rex5) in crates/mega-evm/src/evm/instructions.rs.
  • Semantically inert as described: private fn items in the same module, definition order has no runtime effect; only the emitted binary layout shifts.
  • Purpose (A/A prime probe for the /benchmark relink floor) is well-motivated and clearly scoped as non-merging.
  • No new actionable findings. No still-open prior threads.

@codecov

codecov Bot commented Jul 7, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 94.5%. Comparing base (97adc52) to head (f486554).

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown

🧬 Mutation testing — ✅ PASS

Nothing to test — no mutants were generated (1 unviable, 0 timed out).

@RealiCZ RealiCZ added comp:doc Changes in the documentation comp:core Changes to the `mega-evm` core crate and removed comp:doc Changes in the documentation labels Jul 7, 2026
@RealiCZ

RealiCZ commented Jul 7, 2026

Copy link
Copy Markdown
Collaborator Author

/benchmark

RealiCZ added a commit that referenced this pull request Jul 7, 2026
…nt size guard

Two reliability fixes found while reviewing the bench CI:

concurrency: issue_comment fires for EVERY new comment (codecov,
mutation bots, humans chatting), and with a single group +
cancel-in-progress an unrelated comment cancels a live benchmark
mid-flight — exactly how PR #335's first /benchmark run died. Suffix
the group with 'is this a real trigger' so non-trigger comment runs
share their own group and only ever cancel each other. Same fix in
replay-bench.yml for /replay-bench.

bench_compare: GitHub caps issue comments at 65536 chars and the #326
comment already measured 45.9k before the rex5 lanes land. When the
body would blow a 60k budget, drop the bulkiest folded sections (full
table first, then baseline gap) and say so, instead of failing the
post — the raw rounds ride in the run artifact either way.
@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown

Criterion Benchmark Comparison

Comparing baselinefeature

Paired, order-interleaved A/B. Each round runs the feature and baseline binaries back-to-back on the same runner; the verdict is the mean of the per-round paired Δ% with a 95% bootstrap CI over the rounds. A change is flagged only when its CI excludes 0 and |Δ| clears the bench's A/A noise floor, so minutes-apart machine drift no longer reads as a regression and a real sub-5% change is no longer buried in it.

Baseline gap (HEAD only — how far is each EVM layer from revm_pinned)

Read the highest rex* row (currently rex5, the latest spec) for the "user-visible mega gap"; the earlier rex* rows are prior specs. The non-rex rows are diagnostic: they show which layer adds cost.

call_value_empty_account/empty_account_50

spec time × vs revm_pinned
revm_pinned 28.68 µs 1.00× (baseline)
revm_latest 25.89 µs 0.90×
op_revm_pinned 28.88 µs 1.01×
op_revm_latest 26.83 µs 0.94×
equivalence 32.66 µs 1.14×
mini_rex 42.42 µs 1.48×
rex4 44.06 µs 1.54×

call_value_empty_account/existing_account_50

spec time × vs revm_pinned
revm_pinned 28.75 µs 1.00× (baseline)
revm_latest 26.26 µs 0.91×
op_revm_pinned 28.92 µs 1.01×
op_revm_latest 27.22 µs 0.95×
equivalence 32.70 µs 1.14×
mini_rex 42.06 µs 1.46×
rex4 43.88 µs 1.53×

create_deploy/create2_10

spec time × vs revm_pinned
revm_pinned 20.66 µs 1.00× (baseline)
revm_latest 19.07 µs 0.92×
op_revm_pinned 22.03 µs 1.07×
op_revm_latest 20.33 µs 0.98×
equivalence 23.87 µs 1.16×
mini_rex 35.11 µs 1.70×
rex4 35.79 µs 1.73×

create_deploy/create_10

spec time × vs revm_pinned
revm_pinned 15.87 µs 1.00× (baseline)
revm_latest 14.39 µs 0.91×
op_revm_pinned 17.39 µs 1.10×
op_revm_latest 15.61 µs 0.98×
equivalence 19.05 µs 1.20×
mini_rex 25.90 µs 1.63×
rex4 26.66 µs 1.68×

log_opcodes/log0_256b

spec time × vs revm_pinned
revm_pinned 8.37 µs 1.00× (baseline)
revm_latest 8.91 µs 1.06×
op_revm_pinned 9.51 µs 1.14×
op_revm_latest 9.83 µs 1.17×
equivalence 10.00 µs 1.20×
mini_rex 11.52 µs 1.38×
rex4 11.92 µs 1.42×

log_opcodes/log0_32b

spec time × vs revm_pinned
revm_pinned 8.14 µs 1.00× (baseline)
revm_latest 9.05 µs 1.11×
op_revm_pinned 9.52 µs 1.17×
op_revm_latest 9.99 µs 1.23×
equivalence 9.99 µs 1.23×
mini_rex 11.49 µs 1.41×
rex4 11.86 µs 1.46×

log_opcodes/log2_32b

spec time × vs revm_pinned
revm_pinned 13.30 µs 1.00× (baseline)
revm_latest 13.98 µs 1.05×
op_revm_pinned 14.49 µs 1.09×
op_revm_latest 15.00 µs 1.13×
equivalence 15.13 µs 1.14×
mini_rex 17.27 µs 1.30×
rex4 17.75 µs 1.34×

log_opcodes/log4_256b

spec time × vs revm_pinned
revm_pinned 16.99 µs 1.00× (baseline)
revm_latest 17.62 µs 1.04×
op_revm_pinned 18.26 µs 1.07×
op_revm_latest 18.57 µs 1.09×
equivalence 18.83 µs 1.11×
mini_rex 21.27 µs 1.25×
rex4 21.83 µs 1.28×

log_opcodes/log4_32b

spec time × vs revm_pinned
revm_pinned 16.99 µs 1.00× (baseline)
revm_latest 17.60 µs 1.04×
op_revm_pinned 18.19 µs 1.07×
op_revm_latest 18.64 µs 1.10×
equivalence 18.68 µs 1.10×
mini_rex 21.10 µs 1.24×
rex4 21.52 µs 1.27×

mixed_workload

spec time × vs revm_pinned
revm_pinned 14.54 µs 1.00× (baseline)
revm_latest 13.31 µs 0.92×
op_revm_pinned 15.50 µs 1.07×
op_revm_latest 14.22 µs 0.98×
equivalence 16.04 µs 1.10×
mini_rex 23.71 µs 1.63×
rex4 23.63 µs 1.63×

sstore_heavy/sload_100

spec time × vs revm_pinned
revm_pinned 21.31 µs 1.00× (baseline)
revm_latest 16.95 µs 0.80×
op_revm_pinned 22.43 µs 1.05×
op_revm_latest 18.14 µs 0.85×
equivalence 23.56 µs 1.11×
mini_rex 24.71 µs 1.16×
rex4 25.16 µs 1.18×

sstore_heavy/sstore_100

spec time × vs revm_pinned
revm_pinned 30.65 µs 1.00× (baseline)
revm_latest 21.23 µs 0.69×
op_revm_pinned 31.64 µs 1.03×
op_revm_latest 22.22 µs 0.72×
equivalence 32.32 µs 1.05×
mini_rex 63.85 µs 2.08×
rex4 62.11 µs 2.03×

sstore_heavy/sstore_sload_100

spec time × vs revm_pinned
revm_pinned 40.21 µs 1.00× (baseline)
revm_latest 29.15 µs 0.72×
op_revm_pinned 41.19 µs 1.02×
op_revm_latest 30.43 µs 0.76×
equivalence 42.57 µs 1.06×
mini_rex 74.58 µs 1.85×
rex4 73.20 µs 1.82×

analysis

spec time × vs revm_pinned
revm_pinned 20.29 µs 1.00× (baseline)
revm_latest 22.69 µs 1.12×
op_revm_pinned 21.53 µs 1.06×
op_revm_latest 23.80 µs 1.17×
equivalence 22.12 µs 1.09×
mini_rex 25.01 µs 1.23×
rex4 25.36 µs 1.25×

snailtracer

spec time × vs revm_pinned
revm_pinned 51.44 ms 1.00× (baseline)
revm_latest 49.89 ms 0.97×
op_revm_pinned 52.35 ms 1.02×
op_revm_latest 50.52 ms 0.98×
equivalence 52.32 ms 1.02×
mini_rex 73.17 ms 1.42×
rex4 86.00 ms 1.67×

subcall_1000_nested

spec time × vs revm_pinned
revm_pinned 943.62 µs 1.00× (baseline)
revm_latest 770.40 µs 0.82×
op_revm_pinned 943.13 µs 1.00×
op_revm_latest 769.53 µs 0.82×
equivalence 1.26 ms 1.34×
mini_rex 1.62 ms 1.72×
rex4 1.75 ms 1.85×

subcall_1000_no_value

spec time × vs revm_pinned
revm_pinned 482.81 µs 1.00× (baseline)
revm_latest 409.32 µs 0.85×
op_revm_pinned 476.02 µs 0.99×
op_revm_latest 407.38 µs 0.84×
equivalence 629.52 µs 1.30×
mini_rex 807.30 µs 1.67×
rex4 879.38 µs 1.82×

subcall_1000_transfer_1wei

spec time × vs revm_pinned
revm_pinned 340.03 µs 1.00× (baseline)
revm_latest 322.28 µs 0.95×
op_revm_pinned 344.33 µs 1.01×
op_revm_latest 321.50 µs 0.95×
equivalence 452.25 µs 1.33×
mini_rex 662.34 µs 1.95×
rex4 719.67 µs 2.12×

transfer_multi_1000

spec time × vs revm_pinned
revm_pinned 1.23 ms 1.00× (baseline)
revm_latest 751.01 µs 0.61×
op_revm_pinned 1.80 ms 1.46×
op_revm_latest 1.24 ms 1.00×
equivalence 1.85 ms 1.50×
mini_rex 2.07 ms 1.68×
rex4 2.07 ms 1.68×

empty_transaction

spec time × vs revm_pinned
revm_pinned 1.87 µs 1.00× (baseline)
revm_latest 2.56 µs 1.37×
op_revm_pinned 3.00 µs 1.61×
op_revm_latest 3.51 µs 1.88×
equivalence 3.52 µs 1.88×
mini_rex 3.78 µs 2.03×
rex4 3.89 µs 2.08×

simple_ether_transfer

spec time × vs revm_pinned
revm_pinned 2.07 µs 1.00× (baseline)
revm_latest 2.62 µs 1.27×
op_revm_pinned 3.18 µs 1.54×
op_revm_latest 3.58 µs 1.73×
equivalence 3.73 µs 1.81×
mini_rex 4.03 µs 1.95×
rex4 4.04 µs 1.96×

weth9_transfer

spec time × vs revm_pinned
revm_pinned 16.23 µs 1.00× (baseline)
revm_latest 18.35 µs 1.13×
op_revm_pinned 17.46 µs 1.08×
op_revm_latest 19.51 µs 1.20×
equivalence 18.09 µs 1.11×
mini_rex 20.08 µs 1.24×
rex4 20.39 µs 1.26×

PR-base → PR-head regression check

276 benchmarks total, 9 significant
Benchmark Baseline Feature Δ (mean) 95% CI A/A floor
add/mini_rex 13.7 µs 13.7 µs -0.1% [-0.4%, +0.2%] ±1.2%
add/rex5 14.4 µs 14.3 µs +0.0% [-2.8%, +3.0%] ±14.7%
address/mini_rex 6.6 µs 6.6 µs -0.4% [-1.0%, +0.3%] ±2.2%
address/rex5 6.9 µs 6.9 µs +2.7% [-1.0%, +7.8%] ±7.8%
analysis/equivalence 22.1 µs 22.1 µs +0.2% [-0.0%, +0.4%] ±0.6%
analysis/mini_rex 25.0 µs 25.0 µs +0.2% [-0.2%, +0.6%] ±1.6%
analysis/op_revm_latest 23.7 µs 23.8 µs +0.0% [-0.4%, +0.5%] ±1.5%
analysis/op_revm_pinned 21.6 µs 21.5 µs -0.1% [-0.4%, +0.2%] ±0.9%
analysis/revm_latest 22.6 µs 22.7 µs +0.2% [-0.1%, +0.6%] ±1.2%
analysis/revm_pinned 20.3 µs 20.3 µs -0.2% [-0.5%, +0.1%] ±1.1%
analysis/rex4 25.3 µs 25.4 µs +0.2% [-0.1%, +0.5%] ±1.2%
attack_replay/equivalence 1886.5 µs 1895.2 µs +0.3% [+0.0%, +0.6%] ±1.5% 👀
attack_replay/mini_rex 2699.5 µs 2712.1 µs +0.3% [-0.3%, +0.9%] ±2.3%
attack_replay/pure_revm 1811.0 µs 1834.7 µs +0.7% [-0.1%, +1.5%] ±2.6%
batch_transfer_high_complexity_1x1/equivalence 251.1 µs 251.9 µs +0.9% [-0.1%, +2.3%] ±4.6%
batch_transfer_high_complexity_1x1/mini_rex 317.5 µs 307.5 µs -2.7% [-3.4%, -1.8%] ±2.8% 👀
batch_transfer_high_contention_10x10/equivalence 450.8 µs 446.4 µs -0.8% [-1.2%, -0.3%] ±3.0% 👀
batch_transfer_high_contention_10x10/mini_rex 629.6 µs 615.9 µs -3.4% [-6.7%, -1.5%] ±4.0% 👀
batch_transfer_little_complexity_1x1/equivalence 30.0 µs 29.8 µs -0.6% [-1.6%, +0.6%] ±4.1%
batch_transfer_little_complexity_1x1/mini_rex 38.0 µs 37.7 µs -1.0% [-1.8%, -0.3%] ±3.3% 👀
batch_transfer_low_contention_1x1/equivalence 17.2 µs 17.1 µs +0.3% [-1.4%, +2.6%] ±7.8%
batch_transfer_low_contention_1x1/mini_rex 22.6 µs 22.5 µs -0.5% [-3.9%, +2.0%] ±7.2%
batch_transfer_medium_complexity_1x1/equivalence 135.1 µs 135.1 µs -0.0% [-0.5%, +0.4%] ±1.6%
batch_transfer_medium_complexity_1x1/mini_rex 170.3 µs 165.4 µs -2.6% [-3.3%, -1.7%] ±1.9% 🚀
batch_transfer_medium_contention_5x5/equivalence 133.1 µs 131.7 µs -0.9% [-1.7%, +0.2%] ±4.0%
batch_transfer_medium_contention_5x5/mini_rex 181.6 µs 178.7 µs -2.8% [-6.1%, -1.1%] ±4.7% 👀
batch_transfer_some_complexity_5x5/equivalence 818.5 µs 818.4 µs -0.1% [-0.3%, +0.2%] ±1.4%
batch_transfer_some_complexity_5x5/mini_rex 1041.8 µs 1010.2 µs -3.1% [-3.5%, -2.6%] ±1.3% 🚀
block_executor_deploy/rex4/deploy_1 28.2 µs 28.3 µs +0.6% [-0.0%, +1.2%] ±1.9%
block_executor_empty_txs/rex4/10_txs 69.9 µs 70.3 µs +1.0% [+0.4%, +1.6%] ±1.7% 👀
block_executor_empty_txs/rex4/1_txs 27.4 µs 27.7 µs +0.9% [+0.2%, +1.8%] ±2.3% 👀
block_executor_empty_txs/rex4/50_txs 255.3 µs 257.8 µs +0.8% [+0.1%, +1.6%] ±2.1% 👀
block_executor_mixed_txs/rex4/10_txs 197.7 µs 198.2 µs +0.3% [-0.2%, +1.0%] ±2.0%
block_executor_mixed_txs/rex4/1_txs 47.3 µs 47.5 µs +0.5% [-0.0%, +1.0%] ±1.5%
block_executor_spec_comparison/equivalence/5_mixed_txs 91.1 µs 91.2 µs +0.4% [+0.0%, +0.9%] ±1.5% 👀
block_executor_spec_comparison/mini_rex/5_mixed_txs 67.6 µs 68.1 µs +0.9% [+0.4%, +1.5%] ±1.9% 👀
block_executor_spec_comparison/rex4/5_mixed_txs 113.2 µs 113.8 µs +0.5% [+0.3%, +0.8%] ±0.9% 👀
block_executor_spec_comparison/rex5/5_mixed_txs 114.1 µs 114.6 µs +0.5% [+0.3%, +0.8%] ±0.9% 👀
call_value_empty_account/equivalence/empty_account_50 32.4 µs 32.7 µs +1.1% [-0.3%, +2.5%] ±4.8%
call_value_empty_account/equivalence/existing_account_50 32.4 µs 32.7 µs +1.5% [+0.4%, +3.1%] ±2.0% 👀
call_value_empty_account/mini_rex/empty_account_50 42.1 µs 42.4 µs +0.5% [-1.9%, +2.7%] ±6.8%
call_value_empty_account/mini_rex/existing_account_50 41.7 µs 42.1 µs +0.9% [-1.5%, +3.4%] ±8.6%
call_value_empty_account/op_revm_latest/empty_account_50 26.8 µs 26.8 µs -0.1% [-0.7%, +0.4%] ±2.7%
call_value_empty_account/op_revm_latest/existing_account_50 27.1 µs 27.2 µs -0.0% [-0.7%, +0.6%] ±3.0%
call_value_empty_account/op_revm_pinned/empty_account_50 28.8 µs 28.9 µs -0.2% [-1.0%, +0.3%] ±1.7%
call_value_empty_account/op_revm_pinned/existing_account_50 28.9 µs 28.9 µs +0.3% [-0.9%, +1.6%] ±2.7%
call_value_empty_account/revm_latest/empty_account_50 26.0 µs 25.9 µs -0.6% [-1.8%, +0.3%] ±1.6%
call_value_empty_account/revm_latest/existing_account_50 26.2 µs 26.3 µs -0.5% [-1.8%, +0.5%] ±1.9%
call_value_empty_account/revm_pinned/empty_account_50 28.0 µs 28.7 µs +2.6% [+1.8%, +3.8%] ±2.0% ⚠️
call_value_empty_account/revm_pinned/existing_account_50 28.1 µs 28.8 µs +2.7% [+2.0%, +3.7%] ±1.4% ⚠️
call_value_empty_account/rex4/empty_account_50 43.8 µs 44.1 µs -0.1% [-2.3%, +1.7%] ±4.5%
call_value_empty_account/rex4/existing_account_50 43.6 µs 43.9 µs +0.5% [-1.6%, +2.5%] ±7.7%
create_deploy/equivalence/create2_10 23.5 µs 23.9 µs +1.5% [+0.9%, +2.2%] ±2.3% 👀
create_deploy/equivalence/create_10 18.8 µs 19.1 µs +1.7% [+1.0%, +2.5%] ±2.4% 👀
create_deploy/mini_rex/create2_10 34.2 µs 35.1 µs +2.3% [+1.5%, +3.0%] ±2.7% 👀
create_deploy/mini_rex/create_10 25.3 µs 25.9 µs +2.3% [+1.5%, +3.2%] ±2.5% 👀
create_deploy/op_revm_latest/create2_10 20.3 µs 20.3 µs -0.1% [-0.9%, +0.6%] ±2.4%
create_deploy/op_revm_latest/create_10 15.6 µs 15.6 µs -0.2% [-1.4%, +0.8%] ±3.4%
create_deploy/op_revm_pinned/create2_10 22.4 µs 22.0 µs -1.2% [-2.0%, -0.3%] ±1.4% 👀
create_deploy/op_revm_pinned/create_10 17.6 µs 17.4 µs -1.4% [-2.2%, -0.5%] ±2.6% 👀
create_deploy/revm_latest/create2_10 18.9 µs 19.1 µs +0.4% [-0.3%, +1.1%] ±2.8%
create_deploy/revm_latest/create_10 14.3 µs 14.4 µs +0.1% [-0.8%, +0.9%] ±2.9%
create_deploy/revm_pinned/create2_10 20.7 µs 20.7 µs -0.1% [-0.8%, +0.4%] ±2.0%
create_deploy/revm_pinned/create_10 15.9 µs 15.9 µs -0.3% [-1.3%, +0.5%] ±2.8%
create_deploy/rex4/create2_10 34.8 µs 35.8 µs +2.5% [+1.8%, +3.2%] ±2.8% 👀
create_deploy/rex4/create_10 25.9 µs 26.7 µs +2.6% [+1.8%, +3.3%] ±3.1% 👀
delegatecall_system_contract/rex4/delegatecall_not_intercepted 5.6 µs 5.7 µs +2.2% [+1.2%, +3.2%] ±3.2% 👀
delegatecall_system_contract/rex4/staticcall_intercepted 5.7 µs 5.8 µs +1.8% [+1.1%, +2.5%] ±3.1% 👀
eip7702_authlist/rex5/1200 1495.6 µs 1652.2 µs +8.6% [-2.5%, +19.0%] ±37.1%
eip7702_authlist/rex5/150 140.6 µs 140.8 µs +0.5% [-0.1%, +1.0%] ±1.5%
eip7702_authlist/rex5/400 381.7 µs 381.5 µs +0.1% [-0.3%, +0.6%] ±1.4%
eip7702_authlist/rex5/800 783.8 µs 787.4 µs +0.3% [-0.1%, +0.7%] ±1.6%
empty_transaction/equivalence 3.5 µs 3.5 µs +2.0% [+0.6%, +3.6%] ±5.4% 👀
empty_transaction/mini_rex 3.8 µs 3.8 µs +0.2% [-0.5%, +1.0%] ±3.6%
empty_transaction/op_revm_latest 3.5 µs 3.5 µs -2.2% [-5.4%, +0.3%] ±8.0%
empty_transaction/op_revm_pinned 3.0 µs 3.0 µs -0.7% [-1.5%, +0.2%] ±3.1%
empty_transaction/revm_latest 2.6 µs 2.6 µs -1.8% [-4.6%, +0.8%] ±9.4%
empty_transaction/revm_pinned 1.9 µs 1.9 µs -2.5% [-3.4%, -1.5%] ±4.0% 👀
empty_transaction/rex4 3.8 µs 3.9 µs +1.0% [-0.0%, +1.9%] ±4.9%
exp_256bit/mini_rex 302.5 µs 302.5 µs -0.1% [-0.2%, +0.1%] ±0.5%
exp_256bit/rex5 302.9 µs 302.9 µs -0.0% [-0.1%, +0.0%] ±0.5%
gas_detention_computation/equivalence/compute_only_500 39.6 µs 39.7 µs +0.1% [-0.1%, +0.3%] ±0.6%
gas_detention_computation/equivalence/volatile_then_compute_500 39.7 µs 39.8 µs +0.7% [-1.5%, +2.9%] ±8.4%
gas_detention_computation/mini_rex/compute_only_500 45.4 µs 45.4 µs +0.3% [-0.0%, +0.7%] ±1.2%
gas_detention_computation/mini_rex/volatile_then_compute_500 45.4 µs 45.7 µs +1.3% [-0.5%, +3.2%] ±6.6%
gas_detention_computation/rex4/compute_only_500 47.3 µs 47.3 µs -0.0% [-0.5%, +0.5%] ±1.8%
gas_detention_computation/rex4/volatile_then_compute_500 47.3 µs 47.4 µs +0.7% [-0.8%, +2.2%] ±6.5%
keccak256_1KB/mini_rex 358.8 µs 358.3 µs -0.0% [-0.2%, +0.1%] ±0.5%
keccak256_1KB/rex5 359.0 µs 359.0 µs +0.0% [-0.1%, +0.1%] ±0.5%
keccak256_32B/mini_rex 62.0 µs 61.8 µs -0.1% [-0.3%, -0.0%] ±0.7% 👀
keccak256_32B/rex5 62.3 µs 62.2 µs -0.1% [-0.3%, -0.0%] ±0.8% 👀
log_opcodes/equivalence/log0_256b 10.0 µs 10.0 µs -0.3% [-1.5%, +0.8%] ±4.4%
log_opcodes/equivalence/log0_32b 10.0 µs 10.0 µs -0.2% [-1.1%, +0.7%] ±2.9%
log_opcodes/equivalence/log2_32b 15.1 µs 15.1 µs -0.4% [-1.5%, +0.6%] ±2.5%
log_opcodes/equivalence/log4_256b 18.7 µs 18.8 µs +0.6% [+0.1%, +1.1%] ±2.3% 👀
log_opcodes/equivalence/log4_32b 18.7 µs 18.7 µs -0.1% [-0.7%, +0.4%] ±1.6%
log_opcodes/mini_rex/log0_256b 11.5 µs 11.5 µs +0.2% [-1.1%, +1.6%] ±3.5%
log_opcodes/mini_rex/log0_32b 11.6 µs 11.5 µs -0.8% [-1.6%, +0.0%] ±2.6%
log_opcodes/mini_rex/log2_32b 17.3 µs 17.3 µs -0.8% [-1.8%, +0.1%] ±2.7%
log_opcodes/mini_rex/log4_256b 21.3 µs 21.3 µs -0.5% [-1.8%, +0.8%] ±4.0%
log_opcodes/mini_rex/log4_32b 21.1 µs 21.1 µs -0.6% [-1.6%, +0.3%] ±2.6%
log_opcodes/op_revm_latest/log0_256b 9.9 µs 9.8 µs -0.6% [-1.7%, +0.6%] ±3.8%
log_opcodes/op_revm_latest/log0_32b 10.0 µs 10.0 µs -0.5% [-1.8%, +0.8%] ±3.9%
log_opcodes/op_revm_latest/log2_32b 15.0 µs 15.0 µs +0.5% [-0.6%, +1.9%] ±4.3%
log_opcodes/op_revm_latest/log4_256b 18.7 µs 18.6 µs -0.2% [-1.0%, +0.5%] ±2.9%
log_opcodes/op_revm_latest/log4_32b 18.6 µs 18.6 µs +0.5% [-0.1%, +1.0%] ±2.4%
log_opcodes/op_revm_pinned/log0_256b 9.5 µs 9.5 µs -0.1% [-1.5%, +1.2%] ±3.5%
log_opcodes/op_revm_pinned/log0_32b 9.6 µs 9.5 µs -0.8% [-1.9%, +0.1%] ±4.2%
log_opcodes/op_revm_pinned/log2_32b 14.5 µs 14.5 µs -0.2% [-0.9%, +0.5%] ±2.7%
log_opcodes/op_revm_pinned/log4_256b 18.3 µs 18.3 µs -0.2% [-1.1%, +0.8%] ±2.5%
log_opcodes/op_revm_pinned/log4_32b 18.2 µs 18.2 µs -0.1% [-0.5%, +0.3%] ±1.4%
log_opcodes/revm_latest/log0_256b 8.9 µs 8.9 µs -0.0% [-2.1%, +2.3%] ±5.4%
log_opcodes/revm_latest/log0_32b 9.1 µs 9.1 µs -0.3% [-1.2%, +0.8%] ±2.9%
log_opcodes/revm_latest/log2_32b 14.2 µs 14.0 µs -1.4% [-2.5%, -0.4%] ±3.0% 👀
log_opcodes/revm_latest/log4_256b 17.7 µs 17.6 µs -0.1% [-1.2%, +1.0%] ±3.3%
log_opcodes/revm_latest/log4_32b 17.6 µs 17.6 µs +0.3% [-0.5%, +1.0%] ±2.3%
log_opcodes/revm_pinned/log0_256b 8.4 µs 8.4 µs -0.4% [-1.2%, +0.2%] ±2.3%
log_opcodes/revm_pinned/log0_32b 8.1 µs 8.1 µs +0.0% [-0.9%, +1.0%] ±3.8%
log_opcodes/revm_pinned/log2_32b 13.4 µs 13.3 µs -0.2% [-1.5%, +1.0%] ±4.8%
log_opcodes/revm_pinned/log4_256b 17.1 µs 17.0 µs -0.8% [-1.4%, +0.0%] ±2.0%
log_opcodes/revm_pinned/log4_32b 17.1 µs 17.0 µs -0.1% [-0.7%, +0.4%] ±2.6%
log_opcodes/rex4/log0_256b 11.9 µs 11.9 µs -0.5% [-1.8%, +0.7%] ±4.6%
log_opcodes/rex4/log0_32b 11.8 µs 11.9 µs -0.6% [-1.5%, +0.4%] ±3.3%
log_opcodes/rex4/log2_32b 17.8 µs 17.8 µs -0.7% [-1.3%, -0.0%] ±2.1% 👀
log_opcodes/rex4/log4_256b 21.8 µs 21.8 µs +0.0% [-1.6%, +1.7%] ±3.9%
log_opcodes/rex4/log4_32b 21.6 µs 21.5 µs -1.0% [-2.0%, -0.2%] ±2.0% 👀
mixed_workload/equivalence 16.0 µs 16.0 µs +0.2% [-0.2%, +0.7%] ±1.1%
mixed_workload/mini_rex 23.7 µs 23.7 µs +0.1% [-0.7%, +0.8%] ±3.0%
mixed_workload/op_revm_latest 14.4 µs 14.2 µs -1.0% [-1.6%, -0.3%] ±2.1% 👀
mixed_workload/op_revm_pinned 15.6 µs 15.5 µs -0.7% [-1.0%, -0.4%] ±1.4% 👀
mixed_workload/revm_latest 13.4 µs 13.3 µs -1.1% [-2.2%, -0.1%] ±3.3% 👀
mixed_workload/revm_pinned 14.6 µs 14.5 µs -0.2% [-0.6%, +0.1%] ±1.2%
mixed_workload/rex4 23.6 µs 23.6 µs +0.0% [-0.6%, +0.6%] ±2.3%
oracle_sload/equivalence/oracle_sload_50 14.3 µs 14.3 µs -0.3% [-1.1%, +0.4%] ±2.5%
oracle_sload/equivalence/regular_sload_50 14.3 µs 14.3 µs -0.3% [-1.1%, +0.6%] ±2.8%
oracle_sload/mini_rex/oracle_sload_50 15.1 µs 15.1 µs -0.0% [-1.0%, +1.0%] ±2.8%
oracle_sload/mini_rex/regular_sload_50 15.0 µs 15.1 µs +0.2% [-0.7%, +1.2%] ±3.2%
oracle_sload/rex4/oracle_sload_50 15.7 µs 15.8 µs +0.2% [-1.0%, +1.2%] ±5.0%
oracle_sload/rex4/regular_sload_50 15.3 µs 15.4 µs -0.3% [-1.6%, +0.6%] ±5.0%
precompile_blake2f_1round/mini_rex 105.3 µs 107.2 µs +1.2% [+0.0%, +2.4%] ±4.0% 👀
precompile_blake2f_1round/rex5 115.1 µs 118.5 µs +2.3% [+1.4%, +3.1%] ±1.6% ⚠️
precompile_bls12_381_g1add/mini_rex 595.6 µs 598.6 µs +0.4% [+0.3%, +0.5%] ±0.6% 👀
precompile_bls12_381_g1add/rex5 606.3 µs 609.1 µs +0.4% [+0.3%, +0.5%] ±0.5% 👀
precompile_bls12_381_g1msm/mini_rex 22776.2 µs 22777.4 µs +0.3% [-0.0%, +0.8%] ±0.5%
precompile_bls12_381_g1msm/rex5 22789.1 µs 22792.0 µs +0.3% [-0.0%, +0.8%] ±0.5%
precompile_bls12_381_g2add/mini_rex 845.2 µs 847.7 µs +0.2% [-0.0%, +0.3%] ±0.9%
precompile_bls12_381_g2add/rex5 854.9 µs 858.3 µs +0.3% [+0.2%, +0.5%] ±0.7% 👀
precompile_bls12_381_g2msm/mini_rex 44298.6 µs 44303.8 µs -0.0% [-0.1%, +0.0%] ±0.5%
precompile_bls12_381_g2msm/rex5 44315.3 µs 44308.8 µs -0.0% [-0.1%, -0.0%] ±0.5% 👀
precompile_bls12_381_map_fp2_to_g2/mini_rex 19754.4 µs 19750.0 µs -0.0% [-0.1%, +0.0%] ±0.5%
precompile_bls12_381_map_fp2_to_g2/rex5 19762.6 µs 19764.5 µs +0.0% [-0.0%, +0.0%] ±0.5%
precompile_bls12_381_map_fp_to_g1/mini_rex 6155.9 µs 6153.9 µs -0.0% [-0.1%, +0.0%] ±0.5%
precompile_bls12_381_map_fp_to_g1/rex5 6167.3 µs 6164.2 µs -0.0% [-0.1%, +0.0%] ±0.5%
precompile_bls12_381_pairing/mini_rex 136889.6 µs 136886.8 µs +0.0% [-0.1%, +0.2%] ±0.5%
precompile_bls12_381_pairing/rex5 136910.7 µs 136892.4 µs +0.0% [-0.1%, +0.2%] ±0.5%
precompile_ecadd/mini_rex 523.8 µs 523.1 µs -0.2% [-0.4%, -0.0%] ±0.5% 👀
precompile_ecadd/rex5 530.5 µs 532.5 µs +0.4% [+0.2%, +0.6%] ±0.6% 👀
precompile_ecmul/mini_rex 534.1 µs 534.6 µs +0.1% [-0.0%, +0.2%] ±0.5%
precompile_ecmul/rex5 543.3 µs 544.0 µs +0.2% [-0.0%, +0.4%] ±0.5%
precompile_ecpairing/mini_rex 142284.5 µs 142595.2 µs -0.1% [-2.5%, +2.5%] ±8.3%
precompile_ecpairing/rex5 143641.4 µs 143094.6 µs -0.3% [-1.8%, +1.2%] ±3.9%
precompile_ecrecover/mini_rex 5185.2 µs 5191.6 µs +0.1% [+0.1%, +0.2%] ±0.5% 👀
precompile_ecrecover/rex5 5197.3 µs 5206.0 µs +0.2% [+0.1%, +0.2%] ±0.5% 👀
precompile_kzg_point_evaluation/mini_rex 160732.9 µs 160781.6 µs +0.0% [-0.0%, +0.1%] ±0.5%
precompile_kzg_point_evaluation/rex5 160765.4 µs 160794.6 µs +0.0% [-0.0%, +0.1%] ±0.5%
precompile_modexp_32B/mini_rex 3692.1 µs 3685.0 µs -0.3% [-0.7%, +0.1%] ±1.9%
precompile_modexp_32B/rex5 3699.7 µs 3709.4 µs +1.4% [+0.3%, +2.8%] ±2.2% 👀
precompile_ripemd160_1KB/mini_rex 538.8 µs 541.7 µs +0.5% [+0.3%, +0.8%] ±0.7% 👀
precompile_ripemd160_1KB/rex5 550.6 µs 551.9 µs +0.3% [-0.0%, +0.5%] ±0.7%
precompile_ripemd160_32B/mini_rex 130.3 µs 132.6 µs +1.5% [+1.1%, +2.0%] ±1.7% 👀
precompile_ripemd160_32B/rex5 140.8 µs 143.7 µs +2.3% [+1.9%, +2.7%] ±1.7% ⚠️
precompile_sha256_1KB/mini_rex 186.0 µs 187.8 µs +0.9% [+0.6%, +1.2%] ±1.0% 👀
precompile_sha256_1KB/rex5 195.5 µs 199.5 µs +2.1% [+1.8%, +2.4%] ±1.1% ⚠️
precompile_sha256_32B/mini_rex 108.6 µs 110.4 µs +1.7% [+1.3%, +2.1%] ±1.6% ⚠️
precompile_sha256_32B/rex5 117.9 µs 121.5 µs +2.9% [+2.5%, +3.3%] ±1.1% ⚠️
rex5_pre_block/bootstrap 19.6 µs 19.4 µs -0.8% [-1.3%, -0.3%] ±1.9% 👀
rex5_pre_block/no_change 12.9 µs 13.0 µs +0.8% [-0.0%, +1.7%] ±2.6%
selfdestruct/equivalence 4.5 µs 4.6 µs +1.8% [+0.4%, +3.2%] ±4.8% 👀
selfdestruct/rex2 4.8 µs 4.9 µs +2.0% [+0.7%, +3.6%] ±5.0% 👀
selfdestruct/rex4 4.9 µs 5.0 µs +2.0% [+0.7%, +3.5%] ±4.4% 👀
simple_ether_transfer/equivalence 3.7 µs 3.7 µs +1.7% [+0.8%, +2.7%] ±5.2% 👀
simple_ether_transfer/mini_rex 4.0 µs 4.0 µs +1.5% [+0.5%, +2.6%] ±3.5% 👀
simple_ether_transfer/op_revm_latest 3.6 µs 3.6 µs -1.6% [-3.5%, +0.3%] ±5.8%
simple_ether_transfer/op_revm_pinned 3.2 µs 3.2 µs -0.5% [-1.3%, +0.5%] ±4.0%
simple_ether_transfer/revm_latest 2.7 µs 2.6 µs -1.8% [-3.8%, +0.3%] ±7.7%
simple_ether_transfer/revm_pinned 2.1 µs 2.1 µs -2.5% [-3.7%, -1.1%] ±5.8% 👀
simple_ether_transfer/rex4 4.0 µs 4.0 µs +1.0% [+0.2%, +1.9%] ±3.8% 👀
snailtracer/equivalence 52323.1 µs 52318.9 µs +0.6% [-0.4%, +2.0%] ±2.3%
snailtracer/mini_rex 72659.0 µs 73169.7 µs +1.2% [+0.3%, +2.5%] ±1.8% 👀
snailtracer/op_revm_latest 50485.1 µs 50519.6 µs +0.1% [-0.5%, +0.8%] ±2.0%
snailtracer/op_revm_pinned 52258.2 µs 52349.4 µs -0.2% [-1.2%, +0.6%] ±1.4%
snailtracer/revm_latest 49798.3 µs 49888.6 µs +0.1% [-0.4%, +0.6%] ±1.9%
snailtracer/revm_pinned 51514.3 µs 51437.1 µs -0.1% [-0.6%, +0.3%] ±1.7%
snailtracer/rex4 85563.7 µs 85997.6 µs +0.7% [-0.4%, +2.0%] ±3.2%
sstore_heavy/equivalence/sload_100 23.5 µs 23.6 µs +0.9% [-0.5%, +2.7%] ±3.1%
sstore_heavy/equivalence/sstore_100 32.3 µs 32.3 µs +0.7% [-0.6%, +2.8%] ±2.8%
sstore_heavy/equivalence/sstore_sload_100 42.8 µs 42.6 µs +0.9% [-0.5%, +3.3%] ±2.5%
sstore_heavy/mini_rex/sload_100 24.6 µs 24.7 µs -0.5% [-3.4%, +2.2%] ±6.3%
sstore_heavy/mini_rex/sstore_100 64.0 µs 63.9 µs +1.0% [-1.4%, +4.6%] ±4.3%
sstore_heavy/mini_rex/sstore_sload_100 74.7 µs 74.6 µs +0.2% [-2.9%, +4.3%] ±7.3%
sstore_heavy/op_revm_latest/sload_100 18.0 µs 18.1 µs +0.5% [-0.5%, +1.4%] ±3.0%
sstore_heavy/op_revm_latest/sstore_100 22.2 µs 22.2 µs -0.6% [-1.4%, +0.1%] ±2.7%
sstore_heavy/op_revm_latest/sstore_sload_100 30.3 µs 30.4 µs +0.0% [-0.9%, +1.0%] ±3.6%
sstore_heavy/op_revm_pinned/sload_100 22.4 µs 22.4 µs +0.7% [-0.5%, +2.4%] ±2.9%
sstore_heavy/op_revm_pinned/sstore_100 31.9 µs 31.6 µs +0.0% [-1.1%, +1.8%] ±1.9%
sstore_heavy/op_revm_pinned/sstore_sload_100 41.4 µs 41.2 µs +0.5% [-0.8%, +2.3%] ±2.5%
sstore_heavy/revm_latest/sload_100 17.1 µs 16.9 µs -1.1% [-2.4%, +0.2%] ±4.0%
sstore_heavy/revm_latest/sstore_100 21.3 µs 21.2 µs -1.4% [-3.0%, -0.1%] ±9.5% 👀
sstore_heavy/revm_latest/sstore_sload_100 29.5 µs 29.2 µs -1.4% [-2.6%, -0.4%] ±3.2% 👀
sstore_heavy/revm_pinned/sload_100 21.4 µs 21.3 µs -0.6% [-1.5%, +0.2%] ±2.5%
sstore_heavy/revm_pinned/sstore_100 30.8 µs 30.7 µs -0.5% [-1.2%, +0.4%] ±2.7%
sstore_heavy/revm_pinned/sstore_sload_100 40.3 µs 40.2 µs -0.3% [-1.1%, +0.3%] ±3.6%
sstore_heavy/rex4/sload_100 25.0 µs 25.2 µs +0.6% [-1.3%, +2.7%] ±7.1%
sstore_heavy/rex4/sstore_100 61.9 µs 62.1 µs +1.2% [-0.7%, +4.1%] ±3.2%
sstore_heavy/rex4/sstore_sload_100 73.3 µs 73.2 µs +0.2% [-2.2%, +3.3%] ±6.5%
staticcall_selfdestruct/rex5/selfdestruct_child/500 511.7 µs 515.6 µs +0.6% [+0.0%, +1.2%] ±2.1% 👀
staticcall_selfdestruct/rex5/stop_child/500 469.5 µs 473.4 µs +0.7% [+0.1%, +1.3%] ±2.1% 👀
subcall_1000_nested/equivalence 1241.8 µs 1263.3 µs +2.1% [+1.2%, +3.1%] ±3.3% 👀
subcall_1000_nested/mini_rex 1605.1 µs 1619.1 µs +1.3% [+0.5%, +2.1%] ±2.7% 👀
subcall_1000_nested/op_revm_latest 767.0 µs 769.5 µs +1.0% [-1.2%, +4.3%] ±3.9%
subcall_1000_nested/op_revm_pinned 969.0 µs 943.1 µs -2.5% [-3.8%, -1.1%] ±3.4% 👀
subcall_1000_nested/revm_latest 763.4 µs 770.4 µs +2.9% [-1.5%, +8.6%] ±6.6%
subcall_1000_nested/revm_pinned 934.8 µs 943.6 µs +1.3% [-0.2%, +3.0%] ±4.5%
subcall_1000_nested/rex4 1765.1 µs 1749.1 µs -0.9% [-1.6%, -0.2%] ±2.6% 👀
subcall_1000_no_value/equivalence 641.9 µs 629.5 µs -1.3% [-2.5%, -0.1%] ±4.6% 👀
subcall_1000_no_value/mini_rex 820.1 µs 807.3 µs -1.1% [-2.0%, -0.2%] ±2.4% 👀
subcall_1000_no_value/op_revm_latest 403.7 µs 407.4 µs +1.8% [-0.3%, +3.9%] ±5.4%
subcall_1000_no_value/op_revm_pinned 493.2 µs 476.0 µs -3.3% [-4.9%, -1.9%] ±6.1% 👀
subcall_1000_no_value/revm_latest 400.5 µs 409.3 µs +2.3% [-1.3%, +6.1%] ±9.7%
subcall_1000_no_value/revm_pinned 479.8 µs 482.8 µs -0.1% [-1.7%, +1.2%] ±3.9%
subcall_1000_no_value/rex4 899.9 µs 879.4 µs -0.1% [-3.1%, +5.3%] ±4.2%
subcall_1000_transfer_1wei/equivalence 450.9 µs 452.2 µs +0.5% [+0.0%, +1.4%] ±0.9% 👀
subcall_1000_transfer_1wei/mini_rex 660.8 µs 662.3 µs +0.5% [-0.2%, +1.5%] ±2.8%
subcall_1000_transfer_1wei/op_revm_latest 320.9 µs 321.5 µs -0.3% [-1.2%, +0.5%] ±2.8%
subcall_1000_transfer_1wei/op_revm_pinned 352.6 µs 344.3 µs -2.3% [-3.6%, -0.8%] ±4.5% 👀
subcall_1000_transfer_1wei/revm_latest 321.8 µs 322.3 µs +0.7% [-2.3%, +3.9%] ±8.9%
subcall_1000_transfer_1wei/revm_pinned 340.6 µs 340.0 µs +0.1% [-0.4%, +0.8%] ±1.9%
subcall_1000_transfer_1wei/rex4 726.6 µs 719.7 µs -1.0% [-1.7%, -0.4%] ±2.8% 👀
system_contract_100x/rex4/access_control 81.6 µs 81.6 µs -1.0% [-3.2%, +0.5%] ±2.7%
system_contract_100x/rex4/limit_control 81.1 µs 83.7 µs +2.1% [-0.1%, +3.5%] ±5.9%
system_contract_100x/rex4/regular_contract 98.6 µs 100.0 µs +1.0% [-0.3%, +2.0%] ±2.8%
system_contract_100x/rex5/access_control 78.1 µs 80.3 µs +1.2% [-1.3%, +3.0%] ±7.3%
system_contract_100x/rex5/limit_control 77.6 µs 81.6 µs +3.8% [+1.2%, +5.4%] ±7.4% 👀
system_contract_100x/rex5/regular_contract 96.5 µs 96.9 µs +0.1% [-1.2%, +1.2%] ±3.6%
system_contract_single/rex4/access_control 5.7 µs 5.8 µs +1.3% [+0.6%, +2.2%] ±3.1% 👀
system_contract_single/rex4/limit_control 5.7 µs 5.8 µs +1.7% [+0.9%, +2.4%] ±3.4% 👀
system_contract_single/rex4/regular_contract 6.6 µs 6.6 µs +1.6% [+0.6%, +2.6%] ±3.7% 👀
system_contract_single/rex5/access_control 5.6 µs 5.8 µs +1.7% [+0.9%, +2.5%] ±3.6% 👀
system_contract_single/rex5/limit_control 5.7 µs 5.8 µs +1.6% [+0.6%, +2.4%] ±4.5% 👀
system_contract_single/rex5/regular_contract 6.5 µs 6.7 µs +1.8% [+0.9%, +2.6%] ±3.1% 👀
transfer_multi_1000/equivalence 1863.9 µs 1846.3 µs -0.7% [-1.6%, +0.2%] ±4.2%
transfer_multi_1000/mini_rex 2056.9 µs 2073.5 µs +0.4% [-1.2%, +1.9%] ±6.5%
transfer_multi_1000/op_revm_latest 1214.4 µs 1237.5 µs +1.6% [-0.2%, +3.4%] ±5.2%
transfer_multi_1000/op_revm_pinned 1802.6 µs 1799.3 µs -0.3% [-1.3%, +0.7%] ±4.0%
transfer_multi_1000/revm_latest 746.8 µs 751.0 µs +0.9% [-0.6%, +2.6%] ±6.4%
transfer_multi_1000/revm_pinned 1227.1 µs 1232.1 µs +0.3% [-1.0%, +1.7%] ±5.7%
transfer_multi_1000/rex4 2079.1 µs 2069.0 µs -0.4% [-1.7%, +0.9%] ±6.0%
volatile_data/equivalence/baseline_add 11.3 µs 11.3 µs +0.6% [+0.1%, +1.1%] ±2.0% 👀
volatile_data/equivalence/coinbase 5.3 µs 5.4 µs +0.8% [-0.1%, +1.7%] ±3.7%
volatile_data/equivalence/number 5.3 µs 5.4 µs +1.6% [+0.8%, +2.4%] ±3.3% 👀
volatile_data/equivalence/timestamp 5.4 µs 5.4 µs +1.1% [+0.4%, +1.7%] ±2.2% 👀
volatile_data/mini_rex/baseline_add 12.7 µs 12.8 µs +0.6% [-0.5%, +1.4%] ±1.9%
volatile_data/mini_rex/coinbase 6.5 µs 6.6 µs +1.1% [+0.1%, +2.0%] ±3.5% 👀
volatile_data/mini_rex/number 6.4 µs 6.5 µs +1.7% [+0.9%, +2.5%] ±2.8% 👀
volatile_data/mini_rex/timestamp 6.5 µs 6.6 µs +1.5% [+0.8%, +2.2%] ±2.2% 👀
volatile_data/rex4/baseline_add 13.1 µs 13.2 µs +0.7% [+0.1%, +1.3%] ±1.7% 👀
volatile_data/rex4/coinbase 6.8 µs 6.9 µs +1.2% [+0.5%, +1.9%] ±2.6% 👀
volatile_data/rex4/number 6.6 µs 6.7 µs +1.4% [+0.6%, +2.2%] ±2.3% 👀
volatile_data/rex4/timestamp 6.7 µs 6.8 µs +2.0% [+1.2%, +2.7%] ±2.7% 👀
weth9_transfer/equivalence 18.2 µs 18.1 µs -0.2% [-0.5%, +0.1%] ±1.1%
weth9_transfer/mini_rex 20.1 µs 20.1 µs -0.2% [-0.5%, +0.1%] ±1.4%
weth9_transfer/op_revm_latest 19.5 µs 19.5 µs -0.0% [-0.4%, +0.4%] ±1.3%
weth9_transfer/op_revm_pinned 17.5 µs 17.5 µs +0.1% [-0.3%, +0.5%] ±1.4%
weth9_transfer/revm_latest 18.4 µs 18.4 µs -0.1% [-0.7%, +0.3%] ±1.4%
weth9_transfer/revm_pinned 16.2 µs 16.2 µs +0.0% [-0.3%, +0.3%] ±0.9%
weth9_transfer/rex4 20.4 µs 20.4 µs -0.1% [-0.4%, +0.3%] ±1.4%

Significant changes:

Benchmark Baseline Feature Δ (mean) 95% CI A/A floor
batch_transfer_medium_complexity_1x1/mini_rex 170.3 µs 165.4 µs -2.6% [-3.3%, -1.7%] ±1.9% 🚀
batch_transfer_some_complexity_5x5/mini_rex 1041.8 µs 1010.2 µs -3.1% [-3.5%, -2.6%] ±1.3% 🚀
call_value_empty_account/revm_pinned/empty_account_50 28.0 µs 28.7 µs +2.6% [+1.8%, +3.8%] ±2.0% ⚠️
call_value_empty_account/revm_pinned/existing_account_50 28.1 µs 28.8 µs +2.7% [+2.0%, +3.7%] ±1.4% ⚠️
precompile_blake2f_1round/rex5 115.1 µs 118.5 µs +2.3% [+1.4%, +3.1%] ±1.6% ⚠️
precompile_ripemd160_32B/rex5 140.8 µs 143.7 µs +2.3% [+1.9%, +2.7%] ±1.7% ⚠️
precompile_sha256_1KB/rex5 195.5 µs 199.5 µs +2.1% [+1.8%, +2.4%] ±1.1% ⚠️
precompile_sha256_32B/mini_rex 108.6 µs 110.4 µs +1.7% [+1.3%, +2.1%] ±1.6% ⚠️
precompile_sha256_32B/rex5 117.9 µs 121.5 µs +2.9% [+2.5%, +3.3%] ±1.1% ⚠️

🚀 significant speedup · ❌/⚠️ significant regression · 👀 directional but below the A/A noise floor · ⚪ within noise. Significant = 95% bootstrap CI excludes 0 AND |Δ| > the A/A floor (that bench's own round-to-round jitter).

276 benchmarks (paired over up to 16 rounds): 7 significant regressions, 2 significant improvements, 88 directional-but-noise-limited, 179 within noise

@RealiCZ

RealiCZ commented Jul 8, 2026

Copy link
Copy Markdown
Collaborator Author

/benchmark

@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown

Criterion Benchmark Comparison

Comparing baselinefeature

306 benchmarks · up to 16 paired rounds — 8 ⚠️ significant regressions · 8 🚀 significant improvements · 53 👀 noise-limited · 237 ⚪ within noise

📏 Relink-floor hint: 5 significant row(s) sit on upstream control lanes (revm_* / op_revm_*), worst +7.4% on subcall_1000_transfer_1wei/op_revm_latest. Those lanes do not execute this repo's EVM code — unless the PR touches the bench harness or vendored dependencies, a significant delta there measures binary-layout / link-order noise between the two builds, and same-magnitude findings on mega lanes should be read against that floor.

Significant changes (worst first)

Benchmark Baseline Feature Δ (mean) 95% CI A/A floor
subcall_1000_no_value/mini_rex 571.20 µs 614.28 µs +8.4% [+7.2%, +9.9%] ±4.0% ⚠️
subcall_1000_transfer_1wei/op_revm_latest 218.81 µs 232.56 µs +7.4% [+5.5%, +9.3%] ±6.2% ⚠️
subcall_1000_no_value/revm_latest 300.97 µs 319.97 µs +6.9% [+5.1%, +9.0%] ±4.9% ⚠️
snailtracer/mini_rex 78.86 ms 79.89 ms +5.8% [+0.7%, +14.9%] ±5.0% ⚠️
subcall_1000_nested/revm_latest 548.35 µs 579.86 µs +5.8% [+4.2%, +7.5%] ±4.7% ⚠️
subcall_1000_no_value/rex5 623.54 µs 656.14 µs +5.2% [+4.3%, +6.0%] ±2.4% ⚠️
snailtracer/rex4 86.60 ms 87.79 ms +4.8% [+0.6%, +12.5%] ±3.6% ⚠️
subcall_1000_no_value/rex4 642.08 µs 670.30 µs +4.1% [+2.9%, +5.2%] ±3.7% ⚠️
transfer_multi_1000/rex4 1.98 ms 1.89 ms -4.4% [-5.2%, -3.6%] ±2.6% 🚀
transfer_multi_1000/mini_rex 1.95 ms 1.87 ms -4.4% [-5.6%, -3.0%] ±2.5% 🚀
transfer_multi_1000/rex5 1.99 ms 1.89 ms -4.3% [-5.4%, -3.2%] ±4.2% 🚀
simple_ether_transfer/revm_latest 2.73 µs 2.62 µs -4.1% [-5.3%, -3.0%] ±4.0% 🚀
empty_transaction/revm_latest 2.65 µs 2.56 µs -3.5% [-4.5%, -2.4%] ±2.6% 🚀
batch_transfer_high_complexity_1x1/mini_rex 312.36 µs 304.24 µs -3.0% [-5.2%, -0.5%] ±2.3% 🚀
precompile_ecmul/mini_rex 406.11 µs 402.29 µs -1.0% [-1.1%, -0.8%] ±0.5% 🚀
1 more significant rows
Benchmark Baseline Feature Δ (mean) 95% CI A/A floor
precompile_ecmul/rex5 413.72 µs 410.05 µs -1.0% [-1.1%, -0.8%] ±0.6% 🚀

🚀 significant speedup · ❌/⚠️ significant regression · 👀 directional but below the A/A noise floor · ⚪ within noise.

Baseline gap — each EVM layer vs revm_pinned (HEAD only)

Read the highest rex* row (currently rex5, the latest spec) for the "user-visible mega gap"; the earlier rex* rows are prior specs. The non-rex rows are diagnostic: they show which layer adds cost.

call_value_empty_account/empty_account_50

spec time × vs revm_pinned
revm_pinned 30.01 µs 1.00× (baseline)
revm_latest 25.29 µs 0.84×
op_revm_pinned 29.86 µs 1.00×
op_revm_latest 26.26 µs 0.88×
equivalence 33.30 µs 1.11×
mini_rex 40.93 µs 1.36×
rex4 43.18 µs 1.44×
rex5 42.20 µs 1.41×

call_value_empty_account/existing_account_50

spec time × vs revm_pinned
revm_pinned 30.02 µs 1.00× (baseline)
revm_latest 25.65 µs 0.85×
op_revm_pinned 29.94 µs 1.00×
op_revm_latest 26.61 µs 0.89×
equivalence 33.51 µs 1.12×
mini_rex 40.85 µs 1.36×
rex4 43.07 µs 1.43×
rex5 41.68 µs 1.39×

create_deploy/create2_10

spec time × vs revm_pinned
revm_pinned 21.23 µs 1.00× (baseline)
revm_latest 20.07 µs 0.95×
op_revm_pinned 22.72 µs 1.07×
op_revm_latest 21.51 µs 1.01×
equivalence 24.28 µs 1.14×
mini_rex 35.79 µs 1.69×
rex4 36.29 µs 1.71×
rex5 36.21 µs 1.71×

create_deploy/create_10

spec time × vs revm_pinned
revm_pinned 16.54 µs 1.00× (baseline)
revm_latest 15.36 µs 0.93×
op_revm_pinned 18.00 µs 1.09×
op_revm_latest 16.71 µs 1.01×
equivalence 19.42 µs 1.17×
mini_rex 26.28 µs 1.59×
rex4 26.70 µs 1.61×
rex5 26.74 µs 1.62×

log_opcodes/log0_256b

spec time × vs revm_pinned
revm_pinned 8.89 µs 1.00× (baseline)
revm_latest 9.48 µs 1.07×
op_revm_pinned 10.06 µs 1.13×
op_revm_latest 10.73 µs 1.21×
equivalence 10.72 µs 1.21×
mini_rex 11.90 µs 1.34×
rex4 12.20 µs 1.37×
rex5 12.32 µs 1.39×

log_opcodes/log0_32b

spec time × vs revm_pinned
revm_pinned 8.69 µs 1.00× (baseline)
revm_latest 9.74 µs 1.12×
op_revm_pinned 10.13 µs 1.16×
op_revm_latest 10.84 µs 1.25×
equivalence 10.71 µs 1.23×
mini_rex 11.88 µs 1.37×
rex4 12.15 µs 1.40×
rex5 12.21 µs 1.40×

log_opcodes/log2_32b

spec time × vs revm_pinned
revm_pinned 14.57 µs 1.00× (baseline)
revm_latest 15.39 µs 1.06×
op_revm_pinned 15.70 µs 1.08×
op_revm_latest 16.58 µs 1.14×
equivalence 16.41 µs 1.13×
mini_rex 17.86 µs 1.23×
rex4 18.42 µs 1.26×
rex5 18.45 µs 1.27×

log_opcodes/log4_256b

spec time × vs revm_pinned
revm_pinned 18.67 µs 1.00× (baseline)
revm_latest 19.55 µs 1.05×
op_revm_pinned 19.84 µs 1.06×
op_revm_latest 20.59 µs 1.10×
equivalence 20.48 µs 1.10×
mini_rex 22.24 µs 1.19×
rex4 22.87 µs 1.22×
rex5 23.02 µs 1.23×

log_opcodes/log4_32b

spec time × vs revm_pinned
revm_pinned 18.58 µs 1.00× (baseline)
revm_latest 19.38 µs 1.04×
op_revm_pinned 19.81 µs 1.07×
op_revm_latest 20.48 µs 1.10×
equivalence 20.44 µs 1.10×
mini_rex 22.21 µs 1.20×
rex4 22.87 µs 1.23×
rex5 22.83 µs 1.23×

mixed_workload

spec time × vs revm_pinned
revm_pinned 16.29 µs 1.00× (baseline)
revm_latest 14.54 µs 0.89×
op_revm_pinned 17.47 µs 1.07×
op_revm_latest 15.55 µs 0.95×
equivalence 18.04 µs 1.11×
mini_rex 25.64 µs 1.57×
rex4 25.67 µs 1.58×
rex5 25.68 µs 1.58×

sstore_heavy/sload_100

spec time × vs revm_pinned
revm_pinned 24.85 µs 1.00× (baseline)
revm_latest 16.78 µs 0.68×
op_revm_pinned 26.12 µs 1.05×
op_revm_latest 17.86 µs 0.72×
equivalence 27.08 µs 1.09×
mini_rex 28.27 µs 1.14×
rex4 28.66 µs 1.15×
rex5 28.66 µs 1.15×

sstore_heavy/sstore_100

spec time × vs revm_pinned
revm_pinned 36.08 µs 1.00× (baseline)
revm_latest 22.49 µs 0.62×
op_revm_pinned 37.44 µs 1.04×
op_revm_latest 23.46 µs 0.65×
equivalence 37.75 µs 1.05×
mini_rex 69.66 µs 1.93×
rex4 69.01 µs 1.91×
rex5 69.09 µs 1.91×

sstore_heavy/sstore_sload_100

spec time × vs revm_pinned
revm_pinned 46.58 µs 1.00× (baseline)
revm_latest 30.82 µs 0.66×
op_revm_pinned 48.25 µs 1.04×
op_revm_latest 31.97 µs 0.69×
equivalence 49.11 µs 1.05×
mini_rex 81.54 µs 1.75×
rex4 81.81 µs 1.76×
rex5 81.97 µs 1.76×

analysis

spec time × vs revm_pinned
revm_pinned 18.66 µs 1.00× (baseline)
revm_latest 21.44 µs 1.15×
op_revm_pinned 19.67 µs 1.05×
op_revm_latest 22.59 µs 1.21×
equivalence 20.52 µs 1.10×
mini_rex 23.27 µs 1.25×
rex4 23.42 µs 1.26×
rex5 23.45 µs 1.26×

snailtracer

spec time × vs revm_pinned
revm_pinned 54.43 ms 1.00× (baseline)
revm_latest 67.25 ms 1.24×
op_revm_pinned 58.80 ms 1.08×
op_revm_latest 66.88 ms 1.23×
equivalence 60.79 ms 1.12×
mini_rex 79.89 ms 1.47×
rex4 87.79 ms 1.61×
rex5 87.16 ms 1.60×

subcall_1000_nested

spec time × vs revm_pinned
revm_pinned 748.16 µs 1.00× (baseline)
revm_latest 579.86 µs 0.78×
op_revm_pinned 744.03 µs 0.99×
op_revm_latest 545.81 µs 0.73×
equivalence 820.72 µs 1.10×
mini_rex 1.14 ms 1.52×
rex4 1.26 ms 1.69×
rex5 1.25 ms 1.67×

subcall_1000_no_value

spec time × vs revm_pinned
revm_pinned 376.38 µs 1.00× (baseline)
revm_latest 319.97 µs 0.85×
op_revm_pinned 382.40 µs 1.02×
op_revm_latest 295.25 µs 0.78×
equivalence 422.67 µs 1.12×
mini_rex 614.28 µs 1.63×
rex4 670.30 µs 1.78×
rex5 656.14 µs 1.74×

subcall_1000_transfer_1wei

spec time × vs revm_pinned
revm_pinned 302.54 µs 1.00× (baseline)
revm_latest 217.89 µs 0.72×
op_revm_pinned 299.58 µs 0.99×
op_revm_latest 232.56 µs 0.77×
equivalence 314.27 µs 1.04×
mini_rex 494.98 µs 1.64×
rex4 539.95 µs 1.78×
rex5 521.85 µs 1.72×

transfer_multi_1000

spec time × vs revm_pinned
revm_pinned 1.05 ms 1.00× (baseline)
revm_latest 707.41 µs 0.67×
op_revm_pinned 1.56 ms 1.48×
op_revm_latest 1.13 ms 1.07×
equivalence 1.65 ms 1.56×
mini_rex 1.87 ms 1.77×
rex4 1.89 ms 1.79×
rex5 1.89 ms 1.80×

empty_transaction

spec time × vs revm_pinned
revm_pinned 1.83 µs 1.00× (baseline)
revm_latest 2.56 µs 1.40×
op_revm_pinned 2.88 µs 1.57×
op_revm_latest 3.54 µs 1.93×
equivalence 3.45 µs 1.88×
mini_rex 3.69 µs 2.01×
rex4 3.67 µs 2.00×
rex5 3.74 µs 2.04×

simple_ether_transfer

spec time × vs revm_pinned
revm_pinned 2.05 µs 1.00× (baseline)
revm_latest 2.62 µs 1.28×
op_revm_pinned 3.07 µs 1.50×
op_revm_latest 3.62 µs 1.77×
equivalence 3.67 µs 1.79×
mini_rex 3.88 µs 1.90×
rex4 3.89 µs 1.90×
rex5 3.91 µs 1.91×

weth9_transfer

spec time × vs revm_pinned
revm_pinned 16.00 µs 1.00× (baseline)
revm_latest 18.70 µs 1.17×
op_revm_pinned 17.16 µs 1.07×
op_revm_latest 19.75 µs 1.23×
equivalence 17.84 µs 1.11×
mini_rex 19.61 µs 1.23×
rex4 19.89 µs 1.24×
rex5 19.92 µs 1.24×
All 306 comparisons
Benchmark Baseline Feature Δ (mean) 95% CI A/A floor
add/mini_rex 10.85 µs 10.90 µs +0.7% [-1.3%, +3.0%] ±6.7%
add/rex5 11.25 µs 11.29 µs -2.5% [-5.9%, +0.5%] ±17.3%
address/mini_rex 5.14 µs 5.14 µs +0.4% [-0.3%, +1.1%] ±1.6%
address/rex5 5.33 µs 5.35 µs +0.5% [-0.3%, +1.3%] ±3.0%
analysis/equivalence 20.47 µs 20.52 µs +1.1% [+0.2%, +2.0%] ±4.9% 👀
analysis/mini_rex 23.33 µs 23.27 µs +0.5% [-0.1%, +1.3%] ±4.4%
analysis/op_revm_latest 22.67 µs 22.59 µs +0.4% [-1.1%, +2.0%] ±5.2%
analysis/op_revm_pinned 19.53 µs 19.67 µs +0.8% [-0.2%, +1.7%] ±2.5%
analysis/revm_latest 21.47 µs 21.44 µs -0.1% [-1.9%, +1.8%] ±4.9%
analysis/revm_pinned 18.59 µs 18.66 µs +0.6% [-0.4%, +1.6%] ±2.9%
analysis/rex4 23.40 µs 23.42 µs +0.6% [-0.4%, +1.6%] ±4.0%
analysis/rex5 23.21 µs 23.45 µs +0.7% [+0.1%, +1.3%] ±2.4% 👀
attack_replay/equivalence 1.96 ms 1.96 ms +0.1% [-0.3%, +0.5%] ±1.3%
attack_replay/mini_rex 2.76 ms 2.77 ms +0.1% [-0.7%, +0.8%] ±3.3%
attack_replay/pure_revm 1.81 ms 1.81 ms -0.1% [-0.4%, +0.3%] ±1.4%
batch_transfer_high_complexity_1x1/equivalence 240.59 µs 239.60 µs -0.4% [-1.4%, +0.3%] ±3.1%
batch_transfer_high_complexity_1x1/mini_rex 312.36 µs 304.24 µs -3.0% [-5.2%, -0.5%] ±2.3% 🚀
batch_transfer_high_contention_10x10/equivalence 448.70 µs 444.30 µs +0.2% [-1.3%, +1.9%] ±4.9%
batch_transfer_high_contention_10x10/mini_rex 628.30 µs 620.87 µs -1.5% [-2.4%, -0.9%] ±2.1% 👀
batch_transfer_little_complexity_1x1/equivalence 30.28 µs 30.42 µs +0.4% [-0.9%, +1.6%] ±4.5%
batch_transfer_little_complexity_1x1/mini_rex 38.76 µs 38.64 µs -0.5% [-1.7%, +0.8%] ±3.7%
batch_transfer_low_contention_1x1/equivalence 18.00 µs 18.17 µs +1.2% [-1.1%, +3.9%] ±8.6%
batch_transfer_low_contention_1x1/mini_rex 23.43 µs 23.45 µs +1.6% [+0.2%, +3.4%] ±5.3% 👀
batch_transfer_medium_complexity_1x1/equivalence 130.83 µs 129.98 µs -0.1% [-1.4%, +1.6%] ±5.3%
batch_transfer_medium_complexity_1x1/mini_rex 169.02 µs 164.65 µs -2.4% [-4.7%, +0.8%] ±2.0%
batch_transfer_medium_contention_5x5/equivalence 134.45 µs 134.42 µs +0.8% [-0.3%, +2.0%] ±4.5%
batch_transfer_medium_contention_5x5/mini_rex 183.85 µs 181.66 µs -0.7% [-1.6%, +0.4%] ±3.6%
batch_transfer_some_complexity_5x5/equivalence 793.88 µs 791.35 µs -0.8% [-1.7%, -0.1%] ±3.7% 👀
batch_transfer_some_complexity_5x5/mini_rex 1.03 ms 1.00 ms -2.8% [-5.3%, -0.4%] ±3.7% 👀
block_executor_deploy/rex4/deploy_1 27.21 µs 27.31 µs +0.4% [-0.0%, +0.9%] ±2.4%
block_executor_empty_txs/rex4/10_txs 68.18 µs 67.89 µs -0.1% [-0.7%, +0.4%] ±1.8%
block_executor_empty_txs/rex4/1_txs 26.55 µs 26.73 µs +0.5% [+0.0%, +1.0%] ±2.1% 👀
block_executor_empty_txs/rex4/50_txs 250.34 µs 248.24 µs -0.8% [-1.4%, -0.2%] ±2.3% 👀
block_executor_mixed_txs/rex4/10_txs 191.21 µs 191.89 µs +0.4% [-0.1%, +0.8%] ±1.3%
block_executor_mixed_txs/rex4/1_txs 46.12 µs 46.08 µs -0.1% [-0.4%, +0.3%] ±1.4%
block_executor_spec_comparison/equivalence/5_mixed_txs 88.59 µs 88.67 µs +0.3% [-0.1%, +0.7%] ±1.2%
block_executor_spec_comparison/mini_rex/5_mixed_txs 67.38 µs 67.42 µs +0.3% [-0.2%, +1.0%] ±1.7%
block_executor_spec_comparison/rex4/5_mixed_txs 111.00 µs 111.38 µs +0.5% [-0.0%, +1.0%] ±1.3%
block_executor_spec_comparison/rex5/5_mixed_txs 111.79 µs 112.26 µs +0.4% [-0.0%, +1.0%] ±1.2%
call_value_empty_account/equivalence/empty_account_50 33.38 µs 33.30 µs +0.1% [-0.5%, +0.7%] ±1.9%
call_value_empty_account/equivalence/existing_account_50 33.60 µs 33.51 µs -0.1% [-0.8%, +0.6%] ±2.4%
call_value_empty_account/mini_rex/empty_account_50 40.55 µs 40.93 µs +1.0% [+0.2%, +1.7%] ±2.6% 👀
call_value_empty_account/mini_rex/existing_account_50 40.50 µs 40.85 µs +0.4% [-0.5%, +1.2%] ±3.4%
call_value_empty_account/op_revm_latest/empty_account_50 26.25 µs 26.26 µs -0.0% [-0.8%, +0.7%] ±2.2%
call_value_empty_account/op_revm_latest/existing_account_50 26.69 µs 26.61 µs -0.1% [-1.0%, +0.8%] ±3.2%
call_value_empty_account/op_revm_pinned/empty_account_50 29.77 µs 29.86 µs +0.2% [-0.2%, +0.6%] ±1.2%
call_value_empty_account/op_revm_pinned/existing_account_50 29.86 µs 29.94 µs +0.3% [-0.2%, +0.8%] ±1.6%
call_value_empty_account/revm_latest/empty_account_50 25.33 µs 25.29 µs -0.3% [-0.8%, +0.3%] ±1.3%
call_value_empty_account/revm_latest/existing_account_50 25.78 µs 25.65 µs +0.8% [-0.7%, +3.3%] ±2.5%
call_value_empty_account/revm_pinned/empty_account_50 29.56 µs 30.01 µs +1.5% [+0.6%, +2.3%] ±3.6% 👀
call_value_empty_account/revm_pinned/existing_account_50 29.66 µs 30.02 µs +1.1% [+0.4%, +1.7%] ±2.7% 👀
call_value_empty_account/rex4/empty_account_50 43.42 µs 43.18 µs -0.4% [-1.0%, +0.1%] ±2.6%
call_value_empty_account/rex4/existing_account_50 43.17 µs 43.07 µs -0.6% [-1.5%, +0.1%] ±2.8%
call_value_empty_account/rex5/empty_account_50 42.28 µs 42.20 µs -0.3% [-0.8%, +0.2%] ±2.0%
call_value_empty_account/rex5/existing_account_50 41.68 µs 41.68 µs -0.0% [-0.9%, +0.8%] ±3.4%
create_deploy/equivalence/create2_10 24.65 µs 24.28 µs -1.4% [-1.9%, -1.0%] ±2.0% 👀
create_deploy/equivalence/create_10 19.68 µs 19.42 µs -1.1% [-1.7%, -0.4%] ±2.9% 👀
create_deploy/mini_rex/create2_10 35.81 µs 35.79 µs -0.0% [-0.4%, +0.4%] ±0.9%
create_deploy/mini_rex/create_10 26.49 µs 26.28 µs -0.6% [-1.1%, -0.1%] ±2.3% 👀
create_deploy/op_revm_latest/create2_10 21.42 µs 21.51 µs +0.6% [-0.3%, +1.5%] ±2.0%
create_deploy/op_revm_latest/create_10 16.67 µs 16.71 µs +0.2% [-0.8%, +1.2%] ±2.8%
create_deploy/op_revm_pinned/create2_10 22.76 µs 22.72 µs -0.2% [-0.9%, +0.4%] ±2.1%
create_deploy/op_revm_pinned/create_10 17.96 µs 18.00 µs -0.1% [-0.9%, +0.7%] ±2.9%
create_deploy/revm_latest/create2_10 20.02 µs 20.07 µs +0.1% [-0.6%, +0.8%] ±2.0%
create_deploy/revm_latest/create_10 15.40 µs 15.36 µs -0.3% [-1.3%, +0.8%] ±2.1%
create_deploy/revm_pinned/create2_10 21.22 µs 21.23 µs -0.1% [-0.5%, +0.4%] ±1.6%
create_deploy/revm_pinned/create_10 16.54 µs 16.54 µs -0.2% [-0.9%, +0.4%] ±2.3%
create_deploy/rex4/create2_10 36.30 µs 36.29 µs +0.1% [-0.3%, +0.4%] ±0.9%
create_deploy/rex4/create_10 26.80 µs 26.70 µs -0.4% [-0.8%, +0.0%] ±1.6%
create_deploy/rex5/create2_10 36.22 µs 36.21 µs -0.2% [-0.5%, +0.1%] ±1.1%
create_deploy/rex5/create_10 26.90 µs 26.74 µs -0.4% [-0.9%, +0.0%] ±1.7%
delegatecall_system_contract/rex4/delegatecall_not_intercepted 5.78 µs 5.81 µs +0.7% [-0.3%, +1.6%] ±3.2%
delegatecall_system_contract/rex4/staticcall_intercepted 5.90 µs 5.90 µs +0.4% [-0.4%, +1.2%] ±3.0%
eip7702_authlist/rex5/1200 1.61 ms 1.60 ms -3.6% [-15.4%, +8.1%] ±29.4%
eip7702_authlist/rex5/150 148.54 µs 150.16 µs +1.1% [+0.2%, +2.0%] ±3.0% 👀
eip7702_authlist/rex5/400 407.69 µs 409.54 µs +0.5% [-0.2%, +1.2%] ±2.2%
eip7702_authlist/rex5/800 839.30 µs 845.28 µs +0.5% [-0.0%, +1.1%] ±1.9%
empty_transaction/equivalence 3.37 µs 3.45 µs +2.5% [+1.6%, +3.5%] ±2.8% 👀
empty_transaction/mini_rex 3.65 µs 3.69 µs +1.1% [+0.3%, +1.9%] ±2.7% 👀
empty_transaction/op_revm_latest 3.50 µs 3.54 µs +0.5% [-0.3%, +1.4%] ±3.1%
empty_transaction/op_revm_pinned 2.89 µs 2.88 µs +0.1% [-1.0%, +1.1%] ±3.5%
empty_transaction/revm_latest 2.65 µs 2.56 µs -3.5% [-4.5%, -2.4%] ±2.6% 🚀
empty_transaction/revm_pinned 1.85 µs 1.83 µs -1.1% [-1.8%, -0.4%] ±2.7% 👀
empty_transaction/rex4 3.64 µs 3.67 µs +0.9% [-0.1%, +1.8%] ±2.8%
empty_transaction/rex5 3.72 µs 3.74 µs +0.6% [-0.0%, +1.3%] ±2.6%
exp_256bit/mini_rex 234.89 µs 234.96 µs +0.0% [-0.0%, +0.1%] ±0.5%
exp_256bit/rex5 235.30 µs 235.28 µs -0.0% [-0.1%, +0.1%] ±0.5%
gas_detention_computation/equivalence/compute_only_500 44.84 µs 45.01 µs +0.2% [-0.0%, +0.5%] ±0.7%
gas_detention_computation/equivalence/volatile_then_compute_500 44.95 µs 45.04 µs +0.3% [-0.0%, +0.8%] ±1.0%
gas_detention_computation/mini_rex/compute_only_500 50.91 µs 50.87 µs +0.3% [-1.3%, +2.3%] ±6.1%
gas_detention_computation/mini_rex/volatile_then_compute_500 51.05 µs 50.98 µs -1.2% [-4.7%, +2.9%] ±16.5%
gas_detention_computation/rex4/compute_only_500 53.09 µs 52.90 µs -2.4% [-6.0%, +0.2%] ±18.8%
gas_detention_computation/rex4/volatile_then_compute_500 52.98 µs 53.07 µs -1.2% [-6.2%, +3.8%] ±21.7%
gas_detention_computation/rex5/compute_only_500 53.17 µs 52.92 µs -3.2% [-7.1%, -0.2%] ±19.7% 👀
gas_detention_computation/rex5/volatile_then_compute_500 53.05 µs 53.02 µs -0.8% [-2.2%, +0.5%] ±4.8%
keccak256_1KB/mini_rex 286.10 µs 286.14 µs -0.0% [-0.1%, +0.1%] ±0.5%
keccak256_1KB/rex5 286.43 µs 286.43 µs -0.0% [-0.1%, +0.0%] ±0.5%
keccak256_32B/mini_rex 47.71 µs 47.60 µs -0.3% [-0.5%, -0.1%] ±0.6% 👀
keccak256_32B/rex5 47.84 µs 47.75 µs -0.3% [-0.4%, -0.1%] ±0.6% 👀
log_opcodes/equivalence/log0_256b 10.70 µs 10.72 µs -0.6% [-1.9%, +0.8%] ±3.2%
log_opcodes/equivalence/log0_32b 10.73 µs 10.71 µs -0.2% [-1.2%, +0.7%] ±3.3%
log_opcodes/equivalence/log2_32b 16.40 µs 16.41 µs -0.1% [-0.8%, +0.7%] ±2.0%
log_opcodes/equivalence/log4_256b 20.49 µs 20.48 µs -0.1% [-0.9%, +0.8%] ±2.4%
log_opcodes/equivalence/log4_32b 20.50 µs 20.44 µs -0.2% [-0.7%, +0.5%] ±1.5%
log_opcodes/mini_rex/log0_256b 11.93 µs 11.90 µs -0.7% [-1.7%, +0.5%] ±3.5%
log_opcodes/mini_rex/log0_32b 11.93 µs 11.88 µs -0.6% [-1.4%, +0.1%] ±2.2%
log_opcodes/mini_rex/log2_32b 17.99 µs 17.86 µs -0.4% [-0.8%, +0.1%] ±1.5%
log_opcodes/mini_rex/log4_256b 22.23 µs 22.24 µs +0.1% [-0.6%, +0.9%] ±3.0%
log_opcodes/mini_rex/log4_32b 22.26 µs 22.21 µs -0.1% [-0.6%, +0.4%] ±1.5%
log_opcodes/op_revm_latest/log0_256b 10.68 µs 10.73 µs +0.1% [-1.0%, +1.4%] ±3.9%
log_opcodes/op_revm_latest/log0_32b 10.82 µs 10.84 µs +0.1% [-1.1%, +1.6%] ±4.6%
log_opcodes/op_revm_latest/log2_32b 16.48 µs 16.58 µs +0.5% [-0.5%, +1.5%] ±3.0%
log_opcodes/op_revm_latest/log4_256b 20.63 µs 20.59 µs +0.3% [-0.7%, +1.3%] ±3.8%
log_opcodes/op_revm_latest/log4_32b 20.49 µs 20.48 µs -0.3% [-0.9%, +0.2%] ±2.0%
log_opcodes/op_revm_pinned/log0_256b 10.07 µs 10.06 µs -0.6% [-1.8%, +0.5%] ±2.8%
log_opcodes/op_revm_pinned/log0_32b 10.15 µs 10.13 µs +0.3% [-0.5%, +1.2%] ±3.1%
log_opcodes/op_revm_pinned/log2_32b 15.73 µs 15.70 µs -0.2% [-0.8%, +0.3%] ±2.1%
log_opcodes/op_revm_pinned/log4_256b 19.83 µs 19.84 µs -0.1% [-0.6%, +0.5%] ±2.2%
log_opcodes/op_revm_pinned/log4_32b 19.81 µs 19.81 µs +0.2% [-0.3%, +0.8%] ±1.1%
log_opcodes/revm_latest/log0_256b 9.62 µs 9.48 µs -1.6% [-3.1%, -0.1%] ±5.1% 👀
log_opcodes/revm_latest/log0_32b 9.81 µs 9.74 µs -1.2% [-2.4%, -0.2%] ±3.4% 👀
log_opcodes/revm_latest/log2_32b 15.44 µs 15.39 µs -0.7% [-1.6%, +0.1%] ±2.0%
log_opcodes/revm_latest/log4_256b 19.50 µs 19.55 µs -0.2% [-1.6%, +0.8%] ±3.3%
log_opcodes/revm_latest/log4_32b 19.46 µs 19.38 µs -0.4% [-1.1%, +0.3%] ±2.1%
log_opcodes/revm_pinned/log0_256b 8.93 µs 8.89 µs -0.7% [-1.6%, +0.1%] ±2.8%
log_opcodes/revm_pinned/log0_32b 8.69 µs 8.69 µs +0.3% [-0.7%, +1.3%] ±2.6%
log_opcodes/revm_pinned/log2_32b 14.58 µs 14.57 µs -0.1% [-1.1%, +0.8%] ±2.3%
log_opcodes/revm_pinned/log4_256b 18.66 µs 18.67 µs +0.1% [-0.4%, +0.6%] ±2.0%
log_opcodes/revm_pinned/log4_32b 18.65 µs 18.58 µs -0.3% [-0.6%, +0.0%] ±1.0%
log_opcodes/rex4/log0_256b 12.31 µs 12.20 µs -0.9% [-2.0%, +0.3%] ±3.5%
log_opcodes/rex4/log0_32b 12.26 µs 12.15 µs -0.9% [-1.8%, -0.1%] ±2.4% 👀
log_opcodes/rex4/log2_32b 18.47 µs 18.42 µs -0.0% [-0.5%, +0.5%] ±1.7%
log_opcodes/rex4/log4_256b 22.85 µs 22.87 µs +0.4% [-0.5%, +1.6%] ±2.9%
log_opcodes/rex4/log4_32b 22.84 µs 22.87 µs +0.1% [-0.4%, +0.6%] ±1.9%
log_opcodes/rex5/log0_256b 12.37 µs 12.32 µs -0.5% [-1.6%, +0.7%] ±3.1%
log_opcodes/rex5/log0_32b 12.29 µs 12.21 µs -0.8% [-1.5%, -0.2%] ±1.7% 👀
log_opcodes/rex5/log2_32b 18.45 µs 18.45 µs -0.1% [-0.6%, +0.4%] ±2.1%
log_opcodes/rex5/log4_256b 22.93 µs 23.02 µs +0.3% [-0.5%, +1.0%] ±2.1%
log_opcodes/rex5/log4_32b 22.87 µs 22.83 µs -0.0% [-0.5%, +0.6%] ±2.0%
mixed_workload/equivalence 17.95 µs 18.04 µs +0.5% [-0.3%, +1.3%] ±1.4%
mixed_workload/mini_rex 25.47 µs 25.64 µs +0.6% [-0.7%, +1.7%] ±3.8%
mixed_workload/op_revm_latest 15.68 µs 15.55 µs -0.1% [-1.1%, +1.1%] ±3.0%
mixed_workload/op_revm_pinned 17.41 µs 17.47 µs +0.4% [-0.5%, +1.3%] ±3.3%
mixed_workload/revm_latest 14.62 µs 14.54 µs -0.6% [-1.7%, +0.7%] ±3.4%
mixed_workload/revm_pinned 16.23 µs 16.29 µs +0.0% [-0.6%, +0.7%] ±1.7%
mixed_workload/rex4 25.65 µs 25.67 µs -0.8% [-2.2%, +0.7%] ±4.6%
mixed_workload/rex5 25.67 µs 25.68 µs +0.3% [-0.9%, +1.6%] ±4.0%
oracle_sload/equivalence/oracle_sload_50 16.25 µs 16.24 µs +0.1% [-0.6%, +0.7%] ±1.7%
oracle_sload/equivalence/regular_sload_50 16.27 µs 16.24 µs -0.0% [-0.6%, +0.5%] ±1.6%
oracle_sload/mini_rex/oracle_sload_50 17.02 µs 17.06 µs -0.3% [-0.9%, +0.3%] ±1.9%
oracle_sload/mini_rex/regular_sload_50 17.03 µs 17.02 µs -0.4% [-1.2%, +0.2%] ±2.4%
oracle_sload/rex4/oracle_sload_50 17.52 µs 17.54 µs +0.3% [-0.3%, +0.8%] ±2.2%
oracle_sload/rex4/regular_sload_50 17.12 µs 17.27 µs +0.3% [-0.2%, +0.7%] ±1.7%
oracle_sload/rex5/oracle_sload_50 17.48 µs 17.52 µs +0.3% [-0.2%, +0.9%] ±2.4%
oracle_sload/rex5/regular_sload_50 17.13 µs 17.28 µs +0.4% [-0.2%, +0.9%] ±1.5%
precompile_blake2f_1round/mini_rex 80.33 µs 80.34 µs +0.1% [-0.5%, +0.8%] ±2.0%
precompile_blake2f_1round/rex5 86.96 µs 87.05 µs -0.4% [-1.0%, +0.2%] ±1.8%
precompile_bls12_381_g1add/mini_rex 456.82 µs 457.63 µs +0.2% [-0.0%, +0.3%] ±0.7%
precompile_bls12_381_g1add/rex5 464.83 µs 465.17 µs +0.1% [-0.1%, +0.2%] ±0.7%
precompile_bls12_381_g1msm/mini_rex 17.67 ms 17.66 ms -0.0% [-0.1%, +0.0%] ±0.5%
precompile_bls12_381_g1msm/rex5 17.68 ms 17.66 ms -0.1% [-0.1%, -0.0%] ±0.5% 👀
precompile_bls12_381_g2add/mini_rex 653.47 µs 656.39 µs +0.4% [+0.2%, +0.6%] ±0.6% 👀
precompile_bls12_381_g2add/rex5 661.33 µs 663.17 µs +0.2% [+0.0%, +0.4%] ±0.5% 👀
precompile_bls12_381_g2msm/mini_rex 34.38 ms 34.38 ms -0.0% [-0.2%, +0.0%] ±0.5%
precompile_bls12_381_g2msm/rex5 34.39 ms 34.40 ms -0.0% [-0.1%, +0.1%] ±0.5%
precompile_bls12_381_map_fp2_to_g2/mini_rex 15.32 ms 15.33 ms -0.0% [-0.1%, +0.1%] ±0.5%
precompile_bls12_381_map_fp2_to_g2/rex5 15.33 ms 15.34 ms -0.0% [-0.1%, +0.0%] ±0.5%
precompile_bls12_381_map_fp_to_g1/mini_rex 4.77 ms 4.77 ms -0.0% [-0.1%, +0.0%] ±0.5%
precompile_bls12_381_map_fp_to_g1/rex5 4.78 ms 4.78 ms -0.0% [-0.1%, +0.1%] ±0.5%
precompile_bls12_381_pairing/mini_rex 106.21 ms 106.18 ms +0.0% [-0.1%, +0.1%] ±0.5%
precompile_bls12_381_pairing/rex5 106.21 ms 106.16 ms -0.0% [-0.1%, +0.1%] ±0.5%
precompile_ecadd/mini_rex 390.84 µs 391.28 µs +0.1% [-0.2%, +0.3%] ±1.0%
precompile_ecadd/rex5 398.92 µs 398.77 µs -0.0% [-0.3%, +0.3%] ±0.8%
precompile_ecmul/mini_rex 406.11 µs 402.29 µs -1.0% [-1.1%, -0.8%] ±0.5% 🚀
precompile_ecmul/rex5 413.72 µs 410.05 µs -1.0% [-1.1%, -0.8%] ±0.6% 🚀
precompile_ecpairing/mini_rex 112.98 ms 113.01 ms -0.1% [-0.5%, +0.3%] ±1.2%
precompile_ecpairing/rex5 113.76 ms 113.15 ms -0.3% [-0.7%, +0.0%] ±1.2%
precompile_ecrecover/mini_rex 4.01 ms 4.02 ms +0.0% [-0.0%, +0.1%] ±0.5%
precompile_ecrecover/rex5 4.02 ms 4.02 ms +0.1% [+0.0%, +0.1%] ±0.5% 👀
precompile_kzg_point_evaluation/mini_rex 124.82 ms 124.64 ms -0.2% [-0.3%, -0.1%] ±0.5% 👀
precompile_kzg_point_evaluation/rex5 124.83 ms 124.65 ms -0.2% [-0.3%, -0.1%] ±0.5% 👀
precompile_modexp_32B/mini_rex 2.93 ms 2.95 ms +2.0% [+0.7%, +3.7%] ±6.3% 👀
precompile_modexp_32B/rex5 2.94 ms 2.96 ms +0.2% [-2.0%, +1.9%] ±3.4%
precompile_ripemd160_1KB/mini_rex 414.23 µs 415.44 µs +0.3% [+0.1%, +0.4%] ±0.5% 👀
precompile_ripemd160_1KB/rex5 421.59 µs 422.32 µs +0.1% [+0.0%, +0.3%] ±0.5% 👀
precompile_ripemd160_32B/mini_rex 100.98 µs 101.67 µs +0.9% [-0.1%, +1.9%] ±2.8%
precompile_ripemd160_32B/rex5 107.42 µs 106.49 µs -0.4% [-1.1%, +0.3%] ±2.3%
precompile_sha256_1KB/mini_rex 142.42 µs 143.48 µs +0.8% [+0.3%, +1.4%] ±1.5% 👀
precompile_sha256_1KB/rex5 149.87 µs 149.40 µs -0.2% [-0.5%, +0.1%] ±1.2%
precompile_sha256_32B/mini_rex 82.63 µs 83.48 µs +0.8% [+0.2%, +1.5%] ±2.3% 👀
precompile_sha256_32B/rex5 89.41 µs 89.32 µs -0.5% [-1.0%, +0.0%] ±2.3%
rex5_pre_block/bootstrap 18.82 µs 18.77 µs +0.3% [-0.8%, +1.6%] ±3.8%
rex5_pre_block/no_change 12.94 µs 12.78 µs -0.5% [-1.6%, +0.7%] ±2.8%
selfdestruct/equivalence 4.85 µs 4.84 µs -0.4% [-1.1%, +0.4%] ±2.9%
selfdestruct/rex2 5.14 µs 5.16 µs -0.1% [-0.7%, +0.5%] ±3.0%
selfdestruct/rex4 5.21 µs 5.22 µs -0.1% [-0.7%, +0.5%] ±2.5%
simple_ether_transfer/equivalence 3.60 µs 3.67 µs +2.0% [+1.1%, +2.8%] ±2.4% 👀
simple_ether_transfer/mini_rex 3.87 µs 3.88 µs +0.6% [-0.1%, +1.3%] ±1.8%
simple_ether_transfer/op_revm_latest 3.60 µs 3.62 µs +0.3% [-0.4%, +1.0%] ±3.1%
simple_ether_transfer/op_revm_pinned 3.07 µs 3.07 µs -0.1% [-1.2%, +0.9%] ±3.7%
simple_ether_transfer/revm_latest 2.73 µs 2.62 µs -4.1% [-5.3%, -3.0%] ±4.0% 🚀
simple_ether_transfer/revm_pinned 2.08 µs 2.05 µs -1.3% [-2.2%, -0.5%] ±2.3% 👀
simple_ether_transfer/rex4 3.88 µs 3.89 µs +0.4% [-0.4%, +1.1%] ±2.5%
simple_ether_transfer/rex5 3.89 µs 3.91 µs +0.5% [-0.2%, +1.2%] ±2.8%
snailtracer/equivalence 59.91 ms 60.79 ms +1.5% [-0.1%, +3.1%] ±6.0%
snailtracer/mini_rex 78.86 ms 79.89 ms +5.8% [+0.7%, +14.9%] ±5.0% ⚠️
snailtracer/op_revm_latest 66.16 ms 66.88 ms +0.4% [-0.8%, +1.5%] ±5.0%
snailtracer/op_revm_pinned 58.79 ms 58.80 ms -1.0% [-3.5%, +1.0%] ±9.1%
snailtracer/revm_latest 68.80 ms 67.25 ms -2.5% [-4.1%, -1.1%] ±4.4% 👀
snailtracer/revm_pinned 53.27 ms 54.43 ms +2.6% [+1.7%, +3.6%] ±3.5% 👀
snailtracer/rex4 86.60 ms 87.79 ms +4.8% [+0.6%, +12.5%] ±3.6% ⚠️
snailtracer/rex5 86.75 ms 87.16 ms +0.8% [-0.1%, +1.7%] ±2.7%
sstore_heavy/equivalence/sload_100 27.04 µs 27.08 µs +0.7% [+0.0%, +1.6%] ±2.7% 👀
sstore_heavy/equivalence/sstore_100 37.81 µs 37.75 µs +0.2% [-0.6%, +1.0%] ±3.2%
sstore_heavy/equivalence/sstore_sload_100 49.29 µs 49.11 µs -0.4% [-1.1%, +0.2%] ±2.7%
sstore_heavy/mini_rex/sload_100 28.20 µs 28.27 µs +0.7% [+0.0%, +1.5%] ±3.0% 👀
sstore_heavy/mini_rex/sstore_100 69.37 µs 69.66 µs +0.3% [-0.2%, +0.9%] ±1.9%
sstore_heavy/mini_rex/sstore_sload_100 81.39 µs 81.54 µs +0.1% [-0.4%, +0.6%] ±1.9%
sstore_heavy/op_revm_latest/sload_100 17.97 µs 17.86 µs -0.5% [-1.8%, +0.8%] ±3.2%
sstore_heavy/op_revm_latest/sstore_100 23.40 µs 23.46 µs +0.7% [-0.4%, +1.8%] ±3.3%
sstore_heavy/op_revm_latest/sstore_sload_100 31.97 µs 31.97 µs +0.3% [-0.5%, +1.2%] ±3.1%
sstore_heavy/op_revm_pinned/sload_100 25.87 µs 26.12 µs +0.6% [+0.1%, +1.1%] ±1.8% 👀
sstore_heavy/op_revm_pinned/sstore_100 37.25 µs 37.44 µs +0.4% [-0.1%, +0.9%] ±1.8%
sstore_heavy/op_revm_pinned/sstore_sload_100 48.11 µs 48.25 µs +0.5% [-0.3%, +1.3%] ±2.4%
sstore_heavy/revm_latest/sload_100 16.92 µs 16.78 µs +0.3% [-0.9%, +1.7%] ±3.6%
sstore_heavy/revm_latest/sstore_100 22.61 µs 22.49 µs -1.0% [-2.0%, +0.0%] ±2.8%
sstore_heavy/revm_latest/sstore_sload_100 30.90 µs 30.82 µs -0.2% [-0.9%, +0.5%] ±2.5%
sstore_heavy/revm_pinned/sload_100 24.90 µs 24.85 µs +0.4% [-0.6%, +1.6%] ±4.2%
sstore_heavy/revm_pinned/sstore_100 36.00 µs 36.08 µs +0.3% [-0.5%, +1.1%] ±3.1%
sstore_heavy/revm_pinned/sstore_sload_100 46.88 µs 46.58 µs -0.4% [-1.7%, +0.9%] ±5.2%
sstore_heavy/rex4/sload_100 28.41 µs 28.66 µs +0.1% [-1.1%, +1.3%] ±4.7%
sstore_heavy/rex4/sstore_100 69.06 µs 69.01 µs +0.0% [-0.6%, +0.6%] ±2.3%
sstore_heavy/rex4/sstore_sload_100 81.82 µs 81.81 µs -0.5% [-1.2%, +0.1%] ±2.2%
sstore_heavy/rex5/sload_100 28.44 µs 28.66 µs +0.1% [-1.2%, +1.3%] ±4.7%
sstore_heavy/rex5/sstore_100 69.08 µs 69.09 µs +0.1% [-0.5%, +0.7%] ±2.2%
sstore_heavy/rex5/sstore_sload_100 81.86 µs 81.97 µs -0.5% [-1.2%, +0.2%] ±2.2%
staticcall_selfdestruct/rex5/selfdestruct_child/500 474.55 µs 473.49 µs -0.6% [-1.3%, +0.1%] ±3.0%
staticcall_selfdestruct/rex5/stop_child/500 448.33 µs 446.69 µs -0.3% [-1.2%, +0.6%] ±3.4%
subcall_1000_nested/equivalence 829.07 µs 820.72 µs -1.9% [-3.4%, -0.6%] ±6.4% 👀
subcall_1000_nested/mini_rex 1.14 ms 1.14 ms -0.9% [-3.1%, +1.0%] ±4.5%
subcall_1000_nested/op_revm_latest 564.17 µs 545.81 µs -2.9% [-4.0%, -1.9%] ±4.0% 👀
subcall_1000_nested/op_revm_pinned 740.58 µs 744.03 µs +0.8% [-0.2%, +1.9%] ±3.6%
subcall_1000_nested/revm_latest 548.35 µs 579.86 µs +5.8% [+4.2%, +7.5%] ±4.7% ⚠️
subcall_1000_nested/revm_pinned 745.33 µs 748.16 µs +0.3% [-2.6%, +2.3%] ±6.1%
subcall_1000_nested/rex4 1.25 ms 1.26 ms +0.4% [-1.4%, +1.9%] ±4.6%
subcall_1000_nested/rex5 1.24 ms 1.25 ms +0.1% [-1.6%, +1.6%] ±4.6%
subcall_1000_no_value/equivalence 415.97 µs 422.67 µs +2.0% [+0.0%, +4.0%] ±5.1% 👀
subcall_1000_no_value/mini_rex 571.20 µs 614.28 µs +8.4% [+7.2%, +9.9%] ±4.0% ⚠️
subcall_1000_no_value/op_revm_latest 298.47 µs 295.25 µs -0.9% [-2.9%, +1.3%] ±7.3%
subcall_1000_no_value/op_revm_pinned 370.10 µs 382.40 µs +3.7% [+1.6%, +5.9%] ±5.7% 👀
subcall_1000_no_value/revm_latest 300.97 µs 319.97 µs +6.9% [+5.1%, +9.0%] ±4.9% ⚠️
subcall_1000_no_value/revm_pinned 368.64 µs 376.38 µs +1.4% [-1.6%, +4.3%] ±10.5%
subcall_1000_no_value/rex4 642.08 µs 670.30 µs +4.1% [+2.9%, +5.2%] ±3.7% ⚠️
subcall_1000_no_value/rex5 623.54 µs 656.14 µs +5.2% [+4.3%, +6.0%] ±2.4% ⚠️
subcall_1000_transfer_1wei/equivalence 317.66 µs 314.27 µs -1.0% [-1.9%, +0.0%] ±3.2%
subcall_1000_transfer_1wei/mini_rex 499.03 µs 494.98 µs +0.0% [-0.9%, +1.2%] ±3.4%
subcall_1000_transfer_1wei/op_revm_latest 218.81 µs 232.56 µs +7.4% [+5.5%, +9.3%] ±6.2% ⚠️
subcall_1000_transfer_1wei/op_revm_pinned 299.58 µs 299.58 µs -0.5% [-1.4%, +0.5%] ±3.8%
subcall_1000_transfer_1wei/revm_latest 219.22 µs 217.89 µs +0.6% [-0.9%, +2.2%] ±4.2%
subcall_1000_transfer_1wei/revm_pinned 297.61 µs 302.54 µs +2.7% [+1.8%, +3.5%] ±3.9% 👀
subcall_1000_transfer_1wei/rex4 542.83 µs 539.95 µs -0.7% [-1.8%, +0.5%] ±3.6%
subcall_1000_transfer_1wei/rex5 521.07 µs 521.85 µs +0.1% [-1.5%, +1.6%] ±4.3%
system_contract_100x/rex4/access_control 80.69 µs 80.93 µs +0.4% [-0.4%, +1.3%] ±2.8%
system_contract_100x/rex4/limit_control 80.57 µs 80.71 µs +0.1% [-0.7%, +1.0%] ±2.6%
system_contract_100x/rex4/regular_contract 91.68 µs 91.40 µs +0.3% [-0.5%, +1.3%] ±3.2%
system_contract_100x/rex5/access_control 80.80 µs 80.66 µs +0.4% [-0.4%, +1.4%] ±2.5%
system_contract_100x/rex5/limit_control 80.80 µs 80.45 µs +0.1% [-0.8%, +1.1%] ±2.4%
system_contract_100x/rex5/regular_contract 91.91 µs 91.30 µs -0.4% [-1.2%, +0.6%] ±2.6%
system_contract_single/rex4/access_control 5.90 µs 5.88 µs +0.1% [-0.5%, +0.8%] ±3.0%
system_contract_single/rex4/limit_control 5.88 µs 5.88 µs +0.2% [-0.5%, +0.9%] ±2.9%
system_contract_single/rex4/regular_contract 6.80 µs 6.78 µs -0.1% [-0.8%, +0.5%] ±2.1%
system_contract_single/rex5/access_control 5.91 µs 5.88 µs -0.1% [-0.8%, +0.6%] ±2.8%
system_contract_single/rex5/limit_control 5.91 µs 5.91 µs +0.0% [-0.7%, +0.9%] ±2.2%
system_contract_single/rex5/regular_contract 6.78 µs 6.76 µs -0.1% [-0.8%, +0.6%] ±2.0%
transfer_multi_1000/equivalence 1.69 ms 1.65 ms -2.3% [-3.0%, -1.5%] ±4.1% 👀
transfer_multi_1000/mini_rex 1.95 ms 1.87 ms -4.4% [-5.6%, -3.0%] ±2.5% 🚀
transfer_multi_1000/op_revm_latest 1.13 ms 1.13 ms +0.6% [-1.2%, +2.5%] ±4.9%
transfer_multi_1000/op_revm_pinned 1.55 ms 1.56 ms -0.1% [-1.8%, +1.5%] ±4.9%
transfer_multi_1000/revm_latest 705.14 µs 707.41 µs -0.2% [-1.0%, +0.5%] ±3.5%
transfer_multi_1000/revm_pinned 1.09 ms 1.05 ms -2.8% [-4.2%, -1.4%] ±3.9% 👀
transfer_multi_1000/rex4 1.98 ms 1.89 ms -4.4% [-5.2%, -3.6%] ±2.6% 🚀
transfer_multi_1000/rex5 1.99 ms 1.89 ms -4.3% [-5.4%, -3.2%] ±4.2% 🚀
volatile_data/equivalence/baseline_add 12.49 µs 12.53 µs +0.3% [-0.1%, +0.6%] ±1.4%
volatile_data/equivalence/coinbase 5.79 µs 5.78 µs -0.3% [-0.8%, +0.4%] ±2.2%
volatile_data/equivalence/number 5.69 µs 5.69 µs +0.2% [-0.4%, +1.0%] ±2.5%
volatile_data/equivalence/timestamp 5.80 µs 5.80 µs +0.4% [-0.2%, +1.1%] ±3.0%
volatile_data/mini_rex/baseline_add 13.90 µs 13.91 µs -1.5% [-4.3%, +1.3%] ±13.0%
volatile_data/mini_rex/coinbase 7.02 µs 7.01 µs +0.3% [-0.2%, +0.8%] ±2.8%
volatile_data/mini_rex/number 6.80 µs 6.81 µs +0.1% [-0.5%, +0.7%] ±2.3%
volatile_data/mini_rex/timestamp 6.86 µs 6.86 µs +0.7% [-0.1%, +1.6%] ±2.4%
volatile_data/rex4/baseline_add 14.37 µs 14.35 µs -1.4% [-4.5%, +1.0%] ±15.2%
volatile_data/rex4/coinbase 7.29 µs 7.32 µs +0.9% [+0.5%, +1.5%] ±2.1% 👀
volatile_data/rex4/number 7.02 µs 7.02 µs -0.1% [-0.6%, +0.4%] ±1.8%
volatile_data/rex4/timestamp 7.07 µs 7.08 µs +0.2% [-0.2%, +0.7%] ±2.1%
volatile_data/rex5/baseline_add 14.38 µs 14.39 µs +0.3% [-0.0%, +0.6%] ±3.2%
volatile_data/rex5/coinbase 7.27 µs 7.37 µs +1.4% [+0.8%, +1.9%] ±1.9% 👀
volatile_data/rex5/number 7.05 µs 7.07 µs +0.5% [-0.5%, +1.5%] ±3.0%
volatile_data/rex5/timestamp 7.08 µs 7.07 µs +0.2% [-0.3%, +0.8%] ±2.3%
weth9_transfer/equivalence 17.87 µs 17.84 µs +0.0% [-0.3%, +0.3%] ±1.0%
weth9_transfer/mini_rex 19.59 µs 19.61 µs -0.1% [-0.8%, +0.4%] ±2.0%
weth9_transfer/op_revm_latest 19.78 µs 19.75 µs -0.1% [-0.4%, +0.2%] ±0.9%
weth9_transfer/op_revm_pinned 17.17 µs 17.16 µs -0.0% [-0.5%, +0.4%] ±1.6%
weth9_transfer/revm_latest 18.81 µs 18.70 µs -0.3% [-0.5%, -0.1%] ±1.0% 👀
weth9_transfer/revm_pinned 16.00 µs 16.00 µs -0.4% [-1.3%, +0.2%] ±1.2%
weth9_transfer/rex4 19.89 µs 19.89 µs +0.4% [-0.2%, +1.1%] ±1.0%
weth9_transfer/rex5 19.88 µs 19.92 µs +0.3% [-0.1%, +0.7%] ±1.0%
Methodology

Paired, order-interleaved A/B. Each round runs the feature and baseline binaries back-to-back on the same runner; the verdict is the mean of the per-round paired Δ% with a 95% bootstrap CI over the rounds. A change is flagged only when its CI excludes 0 and |Δ| clears the bench's A/A noise floor (that bench's own round-to-round jitter), so minutes-apart machine drift no longer reads as a regression and a real sub-5% change is no longer buried in it.

🚀 significant speedup · ❌/⚠️ significant regression · 👀 directional but below the A/A noise floor · ⚪ within noise.

Produced by this run.

@claude claude Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Re-review update

  • Reviewed the incremental change since the prior review (commit 608c32d): only a merge from main (9b70a02) was added; no changes to the PR-scope diff.
  • The PR-scope diff remains the semantically inert swap of two adjacent private helpers (storage_addr_from_to, storage_addr_for_callcode) in crates/mega-evm/src/evm/instructions.rs — still just a code-layout probe for the /benchmark relink floor.
  • No new actionable findings.
  • Still open from earlier reviews: none.

@claude claude Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Re-review update

  • Reviewed the incremental change since the prior review at commit 9b70a02: only a second merge from main (f486554) was added; no changes to the PR-scope diff.
  • The PR-scope diff remains the semantically inert swap of two adjacent private helpers (storage_addr_from_to, storage_addr_for_callcode) in crates/mega-evm/src/evm/instructions.rs — still just a code-layout probe for the /benchmark relink floor, and still explicitly not meant to merge.
  • No new actionable findings.
  • Still open from earlier reviews: none.

@codspeed-hq

codspeed-hq Bot commented Jul 13, 2026

Copy link
Copy Markdown

Merging this PR will not alter performance

✅ 306 untouched benchmarks


Comparing cz/ci/relink-floor-probe (f486554) with main (97adc52)

Open in CodSpeed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agent Generated by AI agents api:unchanged No change to the public interface or API comp:core Changes to the `mega-evm` core crate rust Pull requests that update rust code spec:unchanged No change to any `mega-evm`'s behavior

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant