Skip to content

perf(evm): batch runtime stack boundary access - #599

Open
ZR74 wants to merge 2 commits into
DTVMStack:mainfrom
ZR74:codex/stack-boundary-batch
Open

perf(evm): batch runtime stack boundary access#599
ZR74 wants to merge 2 commits into
DTVMStack:mainfrom
ZR74:codex/stack-boundary-batch

Conversation

@ZR74

@ZR74 ZR74 commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

1. Does this PR affect any open issues?(Y/N) and add issue references (e.g. "fix #123", "re #123".):

  • N
  • Y

2. What is the scope of this PR (e.g. component or file name):

EVM multipass frontend runtime-stack boundary lowering, frontend tests, differential tests, and compiler documentation.

3. Provide a description of the PR(e.g. more details, effects, motivations or doc link):

  • Affects user behaviors
  • Contains CI/CD configuration changes
  • Contains documentation changes
  • Contains experimental features
  • Performance regression: Consumes more CPU
  • Performance regression: Consumes more Memory
  • Other: EVM compiler performance optimization

The multipass frontend previously materialized non-lifted block boundaries with per-slot runtime-stack operations. This repeated address calculations and runtime top/size maintenance for every live value.

This PR makes batched boundary access the standard lowering:

  • add frontend-internal peekStackBatch, dropStackBatch, and pushStackBatch operations;
  • batch non-lifted block-entry live-in loads using one base-address calculation and one depth update;
  • batch non-lifted block-exit stores in bottom-to-top logical order and update top/size once per batch;
  • preserve full operand-stack SSA as the preferred path, so batching covers non-lifted blocks when SSA is enabled and all block boundaries when SSA is disabled;
  • add focused empty, 1-slot, 16-slot, and 17-slot tests, differential coverage, and compiler documentation.

There are no changes to EVMInstance, the EVMC ABI, gas accounting, exception behavior, or dynamic-jump dispatch.

Experimental results:

Metric Result
Synthetic 16-slot / 8-boundary MIR instructions 5147 -> 3131 (-39.2%)
Synthetic CgIR instructions 4128 -> 2614 (-36.7%)
JIT compilation, geometric mean -2.645% (95% CI: [-3.202%, -2.098%])
Emitted code, geometric mean -0.168% (95% CI: [-0.216%, -0.122%])
Hot execution, geometric mean -0.142% (95% CI: [-0.375%, +0.082%])
Frequency-weighted hot execution -0.243% (95% CI: [-0.626%, +0.087%])

The formal Osaka benchmark used CPU 24, 29 unique code hashes, 12 fresh-process cold rounds, three warmups per variant, and 100 ms hot calibration. Both compile/code-size and hot-execution regression gates passed. The detailed methodology and reproduction commands are documented in docs/changes/2026-07-29-evm-stack-boundary-batch/README.md.

4. Are there any breaking changes?(Y/N) and describe the breaking changes(e.g. more details, motivations or doc link):

  • N
  • Y

5. Are there test cases for these changes?(Y/N) select and add more details, references or doc links:

  • Unit test
  • Integration test
  • Benchmark (add benchmark stats below)
  • Manual test (add detailed scripts or steps below)
  • Other

Validation after making batching unconditional:

  • SSA disabled (V011): frontend 148/148, differential 74/74;
  • SSA enabled (V111): frontend 148/148, differential 74/74;
  • V111 state tests: 1798/1798;
  • forced JIT-to-interpreter fallback: 8/8;
  • Osaka transaction-exact replay: 100/100 across 29 code hashes;
  • changed-file cmake-format, clang-format -Werror, and git diff --check: passed.

6. Release note

Improve EVM multipass compilation by batching runtime-stack loads and stores at basic-block boundaries.

Batch non-lifted block entry loads, depth drops, and exit stores so each boundary updates runtime stack metadata once. Keep full stack SSA unchanged and cover both SSA-on residual paths and SSA-off execution with frontend and differential tests.
Copilot AI lite review requested due to automatic review settings August 6, 2026 16:06

Copilot AI 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.

Pull request overview

This PR improves EVM multipass frontend compilation performance by batching runtime-stack loads/stores at basic-block boundaries, reducing repeated address calculations and stack top/size maintenance while preserving existing stack-SSA behavior and external ABI semantics.

Changes:

  • Add EVMMirBuilder batch stack boundary helpers (peekStackBatch, dropStackBatch, pushStackBatch) and use them in the bytecode visitor’s non-lifted boundary protocol.
  • Add targeted frontend and differential tests covering empty/1/16/17-slot batches, ordering, and underflow/overflow parity with the interpreter.
  • Document the batching contract in compiler module docs and add a validated change proposal entry.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated no comments.

Show a summary per file
File Description
src/tests/evm_jit_frontend_tests.cpp Adds mock batch-stack protocol + unit tests for ordering, skip-top semantics, and update-count behavior.
src/tests/evm_differential_tests.cpp Adds differential stress/edge-case coverage to validate boundary batching correctness vs interpreter.
src/compiler/evm_frontend/evm_mir_compiler.h Exposes batch stack APIs on EVMMirBuilder.
src/compiler/evm_frontend/evm_mir_compiler.cpp Implements batched runtime-stack peek/drop/push lowering and single-update top/size maintenance.
src/action/evm_bytecode_visitor.h Switches non-lifted boundary lowering to the batched protocol and uses batched exit materialization.
docs/modules/compiler/spec.md Documents the batched boundary contract and scope/invariants.
docs/changes/README.md Registers the new change proposal entry.
docs/changes/2026-07-29-evm-stack-boundary-batch/README.md Adds the full change proposal with contract, validation, and reproduction details.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Use batched runtime-stack access for every non-lifted boundary and remove the experimental build gate and scalar fallback. Full stack SSA continues to take priority.
@ZR74
ZR74 force-pushed the codex/stack-boundary-batch branch from 6f90e56 to 7a032dd Compare August 7, 2026 05:27
@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown

⚡ Performance Regression Check Results

✅ Performance Check Passed (interpreter)

Performance Benchmark Results (threshold: 25%)

Benchmark Baseline (us) Current (us) Change Status
total/main/blake2b_huff/8415nulls 2.78 2.52 -9.4% PASS
total/main/blake2b_huff/empty 0.04 0.04 -1.3% PASS
total/main/blake2b_shifts/8415nulls 14.95 16.78 +12.3% PASS
total/main/sha1_divs/5311 8.38 8.63 +3.0% PASS
total/main/sha1_divs/empty 0.10 0.10 +0.9% PASS
total/main/sha1_shifts/5311 5.46 5.50 +0.8% PASS
total/main/sha1_shifts/empty 0.05 0.05 +10.5% PASS
total/main/snailtracer/benchmark 92.58 91.32 -1.3% PASS
total/main/structarray_alloc/nfts_rank 1.19 1.29 +8.2% PASS
total/main/swap_math/insufficient_liquidity 0.00 0.00 +2.2% PASS
total/main/swap_math/received 0.01 0.01 +0.5% PASS
total/main/swap_math/spent 0.01 0.01 -6.6% PASS
total/main/weierstrudel/1 0.34 0.32 -3.6% PASS
total/main/weierstrudel/15 3.68 3.80 +3.3% PASS
total/micro/JUMPDEST_n0/empty 3.04 3.04 -0.0% PASS
total/micro/jump_around/empty 0.10 0.08 -13.5% PASS
total/micro/loop_with_many_jumpdests/empty 67.38 68.12 +1.1% PASS
total/micro/memory_grow_mload/by1 0.17 0.17 -3.2% PASS
total/micro/memory_grow_mload/by16 0.21 0.20 -6.4% PASS
total/micro/memory_grow_mload/by32 0.12 0.12 -0.0% PASS
total/micro/memory_grow_mload/nogrow 0.09 0.09 +6.8% PASS
total/micro/memory_grow_mstore/by1 0.20 0.18 -9.7% PASS
total/micro/memory_grow_mstore/by16 0.12 0.12 +0.3% PASS
total/micro/memory_grow_mstore/by32 0.24 0.24 +0.8% PASS
total/micro/memory_grow_mstore/nogrow 0.19 0.18 -3.9% PASS
total/micro/signextend/one 0.26 0.27 +3.3% PASS
total/micro/signextend/zero 0.46 0.45 -1.0% PASS
total/synth/ADD/b0 2.25 2.25 -0.2% PASS
total/synth/ADD/b1 2.76 2.85 +3.5% PASS
total/synth/ADDRESS/a0 6.64 6.42 -3.3% PASS
total/synth/ADDRESS/a1 5.98 6.17 +3.3% PASS
total/synth/AND/b0 1.84 1.84 +0.0% PASS
total/synth/AND/b1 2.35 2.51 +6.9% PASS
total/synth/BYTE/b0 6.90 6.89 -0.1% PASS
total/synth/BYTE/b1 9.12 8.94 -1.7% PASS
total/synth/CALLDATASIZE/a0 4.91 4.99 +1.6% PASS
total/synth/CALLDATASIZE/a1 3.69 4.18 +13.3% PASS
total/synth/CALLER/a0 6.59 6.40 -2.8% PASS
total/synth/CALLER/a1 6.91 7.16 +3.6% PASS
total/synth/CALLVALUE/a0 3.80 4.28 +12.7% PASS
total/synth/CALLVALUE/a1 5.87 6.55 +11.6% PASS
total/synth/CODESIZE/a0 5.82 5.82 -0.1% PASS
total/synth/CODESIZE/a1 6.33 6.58 +4.1% PASS
total/synth/DUP1/d0 1.62 4.76 +193.5% PASS
total/synth/DUP1/d1 1.86 2.10 +12.9% PASS
total/synth/DUP10/d0 1.63 3.41 +109.5% PASS
total/synth/DUP10/d1 1.68 2.01 +19.8% PASS
total/synth/DUP11/d0 1.04 1.58 +51.5% PASS
total/synth/DUP11/d1 1.67 2.36 +41.3% PASS
total/synth/DUP12/d0 1.71 2.40 +40.6% PASS
total/synth/DUP12/d1 1.30 1.57 +21.4% PASS
total/synth/DUP13/d0 1.62 2.40 +48.4% PASS
total/synth/DUP13/d1 1.87 2.34 +25.4% PASS
total/synth/DUP14/d0 1.29 3.64 +181.7% PASS
total/synth/DUP14/d1 1.76 2.31 +31.0% PASS
total/synth/DUP15/d0 1.55 6.50 +320.2% PASS
total/synth/DUP15/d1 1.30 1.58 +21.5% PASS
total/synth/DUP16/d0 1.54 5.28 +243.6% PASS
total/synth/DUP16/d1 1.74 2.28 +30.9% PASS
total/synth/DUP2/d0 1.03 1.57 +52.8% PASS
total/synth/DUP2/d1 1.62 2.33 +43.9% PASS
total/synth/DUP3/d0 1.68 2.22 +32.7% PASS
total/synth/DUP3/d1 1.12 1.59 +41.1% PASS
total/synth/DUP4/d0 1.63 2.05 +25.6% PASS
total/synth/DUP4/d1 1.75 2.47 +41.2% PASS
total/synth/DUP5/d0 1.30 1.58 +21.5% PASS
total/synth/DUP5/d1 1.85 2.22 +20.3% PASS
total/synth/DUP6/d0 1.67 2.26 +34.8% PASS
total/synth/DUP6/d1 1.03 1.58 +53.2% PASS
total/synth/DUP7/d0 1.55 2.32 +49.3% PASS
total/synth/DUP7/d1 1.55 2.48 +60.0% PASS
total/synth/DUP8/d0 1.03 1.58 +52.6% PASS
total/synth/DUP8/d1 1.69 2.43 +43.7% PASS
total/synth/DUP9/d0 1.65 2.03 +23.0% PASS
total/synth/DUP9/d1 1.30 1.58 +21.5% PASS
total/synth/EQ/b0 5.36 5.37 +0.2% PASS
total/synth/EQ/b1 5.57 5.71 +2.5% PASS
total/synth/GAS/a0 3.85 4.19 +8.8% PASS
total/synth/GAS/a1 6.86 7.71 +12.4% PASS
total/synth/GT/b0 5.73 5.69 -0.6% PASS
total/synth/GT/b1 5.64 5.70 +1.1% PASS
total/synth/ISZERO/u0 8.42 8.31 -1.3% PASS
total/synth/JUMPDEST/n0 3.04 3.04 +0.0% PASS
total/synth/LT/b0 5.74 5.67 -1.3% PASS
total/synth/LT/b1 4.78 4.78 +0.2% PASS
total/synth/MSIZE/a0 6.02 5.67 -5.9% PASS
total/synth/MSIZE/a1 6.38 6.43 +0.8% PASS
total/synth/MUL/b0 6.41 6.35 -0.9% PASS
total/synth/MUL/b1 5.97 5.97 +0.0% PASS
total/synth/NOT/u0 2.21 2.51 +13.7% PASS
total/synth/OR/b0 2.23 3.12 +40.1% PASS
total/synth/OR/b1 1.76 1.95 +10.8% PASS
total/synth/PC/a0 5.00 5.03 +0.7% PASS
total/synth/PC/a1 3.57 4.20 +17.6% PASS
total/synth/PUSH1/p0 2.07 1.96 -5.4% PASS
total/synth/PUSH1/p1 1.60 2.05 +28.3% PASS
total/synth/PUSH10/p0 2.13 2.14 +0.6% PASS
total/synth/PUSH10/p1 1.63 2.05 +25.5% PASS
total/synth/PUSH11/p0 2.15 2.17 +1.2% PASS
total/synth/PUSH11/p1 2.15 2.72 +26.3% PASS
total/synth/PUSH12/p0 1.47 1.46 -0.6% PASS
total/synth/PUSH12/p1 2.12 2.72 +28.4% PASS
total/synth/PUSH13/p0 2.05 2.05 +0.2% PASS
total/synth/PUSH13/p1 1.89 2.07 +9.8% PASS
total/synth/PUSH14/p0 2.02 2.06 +2.0% PASS
total/synth/PUSH14/p1 2.08 2.59 +24.7% PASS
total/synth/PUSH15/p0 1.47 1.46 -0.1% PASS
total/synth/PUSH15/p1 2.48 2.59 +4.4% PASS
total/synth/PUSH16/p0 2.20 2.06 -6.6% PASS
total/synth/PUSH16/p1 1.64 2.06 +25.8% PASS
total/synth/PUSH17/p0 1.98 1.99 +0.9% PASS
total/synth/PUSH17/p1 2.04 2.58 +26.6% PASS
total/synth/PUSH18/p0 1.45 1.46 +0.4% PASS
total/synth/PUSH18/p1 2.09 2.60 +24.5% PASS
total/synth/PUSH19/p0 2.02 2.03 +0.6% PASS
total/synth/PUSH19/p1 1.67 2.05 +23.2% PASS
total/synth/PUSH2/p0 2.01 1.99 -1.2% PASS
total/synth/PUSH2/p1 2.30 2.40 +4.2% PASS
total/synth/PUSH20/p0 2.07 2.10 +1.5% PASS
total/synth/PUSH20/p1 2.04 2.56 +25.4% PASS
total/synth/PUSH21/p0 1.48 1.47 -0.6% PASS
total/synth/PUSH21/p1 2.37 2.67 +12.4% PASS
total/synth/PUSH22/p0 2.09 2.15 +3.2% PASS
total/synth/PUSH22/p1 1.88 2.05 +8.8% PASS
total/synth/PUSH23/p0 2.07 2.34 +13.4% PASS
total/synth/PUSH23/p1 2.32 2.84 +22.6% PASS
total/synth/PUSH24/p0 1.46 1.48 +1.0% PASS
total/synth/PUSH24/p1 2.19 2.56 +17.1% PASS
total/synth/PUSH25/p0 2.06 1.98 -4.0% PASS
total/synth/PUSH25/p1 1.60 2.05 +28.1% PASS
total/synth/PUSH26/p0 2.01 1.90 -5.5% PASS
total/synth/PUSH26/p1 2.15 2.53 +17.5% PASS
total/synth/PUSH27/p0 1.48 1.48 -0.0% PASS
total/synth/PUSH27/p1 2.26 2.67 +18.0% PASS
total/synth/PUSH28/p0 2.21 1.98 -10.2% PASS
total/synth/PUSH28/p1 1.81 2.07 +14.1% PASS
total/synth/PUSH29/p0 2.13 1.98 -7.1% PASS
total/synth/PUSH29/p1 2.34 2.65 +13.2% PASS
total/synth/PUSH3/p0 1.46 1.45 -0.4% PASS
total/synth/PUSH3/p1 2.16 2.63 +22.1% PASS
total/synth/PUSH30/p0 1.48 1.52 +2.1% PASS
total/synth/PUSH30/p1 2.34 2.68 +14.4% PASS
total/synth/PUSH31/p0 2.00 2.00 -0.2% PASS
total/synth/PUSH31/p1 1.62 2.06 +27.3% PASS
total/synth/PUSH32/p0 2.01 2.17 +7.7% PASS
total/synth/PUSH32/p1 2.27 2.41 +6.4% PASS
total/synth/PUSH4/p0 2.04 2.07 +1.3% PASS
total/synth/PUSH4/p1 1.87 2.05 +9.8% PASS
total/synth/PUSH5/p0 2.05 2.16 +5.5% PASS
total/synth/PUSH5/p1 2.29 2.66 +16.3% PASS
total/synth/PUSH6/p0 1.46 1.47 +0.3% PASS
total/synth/PUSH6/p1 2.08 2.70 +30.1% PASS
total/synth/PUSH7/p0 2.18 2.05 -6.0% PASS
total/synth/PUSH7/p1 1.60 2.05 +27.9% PASS
total/synth/PUSH8/p0 2.09 1.98 -5.2% PASS
total/synth/PUSH8/p1 2.22 2.69 +21.6% PASS
total/synth/PUSH9/p0 1.46 1.47 +0.7% PASS
total/synth/PUSH9/p1 2.18 2.73 +25.5% PASS
total/synth/RETURNDATASIZE/a0 3.44 3.56 +3.7% PASS
total/synth/RETURNDATASIZE/a1 5.74 5.85 +1.9% PASS
total/synth/SAR/b0 4.34 4.36 +0.3% PASS
total/synth/SAR/b1 7.66 7.22 -5.8% PASS
total/synth/SGT/b0 4.25 4.24 -0.3% PASS
total/synth/SGT/b1 3.63 3.63 +0.1% PASS
total/synth/SHL/b0 4.20 4.19 -0.3% PASS
total/synth/SHL/b1 1.81 1.94 +7.1% PASS
total/synth/SHR/b0 4.06 3.98 -2.0% PASS
total/synth/SHR/b1 3.26 3.40 +4.3% PASS
total/synth/SIGNEXTEND/b0 3.59 3.98 +10.8% PASS
total/synth/SIGNEXTEND/b1 6.10 6.59 +8.0% PASS
total/synth/SLT/b0 3.94 3.94 -0.2% PASS
total/synth/SLT/b1 4.18 4.42 +5.8% PASS
total/synth/SUB/b0 2.72 2.66 -2.2% PASS
total/synth/SUB/b1 2.81 2.89 +3.0% PASS
total/synth/SWAP1/s0 1.85 2.03 +10.1% PASS
total/synth/SWAP10/s0 1.87 2.05 +9.8% PASS
total/synth/SWAP11/s0 2.72 3.34 +22.9% PASS
total/synth/SWAP12/s0 2.57 3.13 +21.6% PASS
total/synth/SWAP13/s0 1.86 2.06 +10.4% PASS
total/synth/SWAP14/s0 2.85 3.16 +11.0% PASS
total/synth/SWAP15/s0 2.60 3.06 +17.9% PASS
total/synth/SWAP16/s0 1.87 2.06 +10.2% PASS
total/synth/SWAP2/s0 2.67 3.12 +16.9% PASS
total/synth/SWAP3/s0 2.68 3.05 +13.8% PASS
total/synth/SWAP4/s0 1.85 2.04 +10.1% PASS
total/synth/SWAP5/s0 2.66 3.12 +17.4% PASS
total/synth/SWAP6/s0 2.76 3.11 +12.6% PASS
total/synth/SWAP7/s0 1.86 2.05 +10.3% PASS
total/synth/SWAP8/s0 2.72 3.09 +13.5% PASS
total/synth/SWAP9/s0 2.68 3.16 +18.1% PASS
total/synth/XOR/b0 2.16 2.04 -5.6% PASS
total/synth/XOR/b1 2.12 2.35 +10.7% PASS
total/synth/loop_v1 9.30 8.56 -8.0% PASS
total/synth/loop_v2 9.10 8.71 -4.3% PASS

Summary: 194 benchmarks, 0 regressions


✅ Performance Check Passed (multipass)

Performance Benchmark Results (threshold: 25%)

Benchmark Baseline (us) Current (us) Change Status
total/main/blake2b_huff/8415nulls 1.28 1.25 -2.7% PASS
total/main/blake2b_huff/empty 0.02 0.02 -0.2% PASS
total/main/blake2b_shifts/8415nulls 4.28 4.28 -0.1% PASS
total/main/sha1_divs/5311 0.86 0.87 +1.3% PASS
total/main/sha1_divs/empty 0.01 0.01 +0.8% PASS
total/main/sha1_shifts/5311 0.76 0.79 +3.3% PASS
total/main/sha1_shifts/empty 0.01 0.01 -0.0% PASS
total/main/snailtracer/benchmark 47.60 47.90 +0.6% PASS
total/main/structarray_alloc/nfts_rank 0.27 0.27 +0.6% PASS
total/main/swap_math/insufficient_liquidity 0.00 0.00 +0.1% PASS
total/main/swap_math/received 0.01 0.01 -2.0% PASS
total/main/swap_math/spent 0.01 0.01 -2.7% PASS
total/main/weierstrudel/1 0.33 0.33 +0.9% PASS
total/main/weierstrudel/15 3.74 3.67 -2.0% PASS
total/micro/JUMPDEST_n0/empty 0.00 0.00 -0.1% PASS
total/micro/jump_around/empty 0.07 0.07 +0.4% PASS
total/micro/loop_with_many_jumpdests/empty 0.01 0.01 +4.7% PASS
total/micro/memory_grow_mload/by1 0.02 0.02 +0.2% PASS
total/micro/memory_grow_mload/by16 0.02 0.02 +7.2% PASS
total/micro/memory_grow_mload/by32 0.01 0.01 -0.0% PASS
total/micro/memory_grow_mload/nogrow 0.01 0.01 -0.7% PASS
total/micro/memory_grow_mstore/by1 0.02 0.02 +0.3% PASS
total/micro/memory_grow_mstore/by16 0.01 0.01 +0.8% PASS
total/micro/memory_grow_mstore/by32 0.02 0.02 +0.0% PASS
total/micro/memory_grow_mstore/nogrow 0.02 0.02 +0.5% PASS
total/micro/signextend/one 0.07 0.07 +0.3% PASS
total/micro/signextend/zero 0.18 0.17 -3.9% PASS
total/synth/ADD/b0 0.00 0.00 +4.2% PASS
total/synth/ADD/b1 0.00 0.00 +4.5% PASS
total/synth/ADDRESS/a0 0.23 0.27 +16.7% PASS
total/synth/ADDRESS/a1 0.15 0.15 -0.2% PASS
total/synth/AND/b0 0.00 0.00 +4.1% PASS
total/synth/AND/b1 0.00 0.00 +4.8% PASS
total/synth/BYTE/b0 0.00 0.00 +4.6% PASS
total/synth/BYTE/b1 0.00 0.00 +4.7% PASS
total/synth/CALLDATASIZE/a0 0.12 0.12 -0.0% PASS
total/synth/CALLDATASIZE/a1 0.07 0.07 +0.1% PASS
total/synth/CALLER/a0 0.25 0.22 -12.7% PASS
total/synth/CALLER/a1 0.23 0.22 -5.0% PASS
total/synth/CALLVALUE/a0 0.19 0.19 +0.7% PASS
total/synth/CALLVALUE/a1 0.29 0.28 -1.9% PASS
total/synth/CODESIZE/a0 0.12 0.13 +2.4% PASS
total/synth/CODESIZE/a1 0.13 0.12 -2.6% PASS
total/synth/DUP1/d0 0.00 0.00 +6.4% PASS
total/synth/DUP1/d1 0.00 0.00 +6.2% PASS
total/synth/DUP10/d0 0.00 0.00 +4.4% PASS
total/synth/DUP10/d1 0.00 0.00 +10.8% PASS
total/synth/DUP11/d0 0.00 0.00 +4.4% PASS
total/synth/DUP11/d1 0.00 0.00 +5.8% PASS
total/synth/DUP12/d0 0.00 0.00 +6.4% PASS
total/synth/DUP12/d1 0.00 0.00 +3.0% PASS
total/synth/DUP13/d0 0.00 0.00 +6.6% PASS
total/synth/DUP13/d1 0.00 0.00 +6.3% PASS
total/synth/DUP14/d0 0.00 0.00 +4.6% PASS
total/synth/DUP14/d1 0.00 0.00 +5.4% PASS
total/synth/DUP15/d0 0.00 0.00 +2.9% PASS
total/synth/DUP15/d1 0.00 0.00 +2.2% PASS
total/synth/DUP16/d0 0.00 0.00 +6.0% PASS
total/synth/DUP16/d1 0.00 0.00 +4.4% PASS
total/synth/DUP2/d0 0.00 0.00 +2.9% PASS
total/synth/DUP2/d1 0.00 0.00 +6.7% PASS
total/synth/DUP3/d0 0.00 0.00 +6.4% PASS
total/synth/DUP3/d1 0.00 0.00 +2.0% PASS
total/synth/DUP4/d0 0.00 0.00 +6.8% PASS
total/synth/DUP4/d1 0.00 0.00 +5.2% PASS
total/synth/DUP5/d0 0.00 0.00 +4.9% PASS
total/synth/DUP5/d1 0.00 0.00 +4.6% PASS
total/synth/DUP6/d0 0.00 0.00 +3.5% PASS
total/synth/DUP6/d1 0.00 0.00 +1.2% PASS
total/synth/DUP7/d0 0.00 0.00 +6.0% PASS
total/synth/DUP7/d1 0.00 0.00 +5.1% PASS
total/synth/DUP8/d0 0.00 0.00 +4.3% PASS
total/synth/DUP8/d1 0.00 0.00 +7.8% PASS
total/synth/DUP9/d0 0.00 0.00 +5.3% PASS
total/synth/DUP9/d1 0.00 0.00 +3.5% PASS
total/synth/EQ/b0 0.00 0.00 +5.2% PASS
total/synth/EQ/b1 0.00 0.00 +7.0% PASS
total/synth/GAS/a0 0.76 0.77 +0.4% PASS
total/synth/GAS/a1 0.91 0.98 +6.9% PASS
total/synth/GT/b0 0.00 0.00 +6.5% PASS
total/synth/GT/b1 0.00 0.00 +6.0% PASS
total/synth/ISZERO/u0 0.00 0.00 +5.5% PASS
total/synth/JUMPDEST/n0 0.00 0.00 +0.4% PASS
total/synth/LT/b0 0.00 0.00 +5.9% PASS
total/synth/LT/b1 0.00 0.00 +2.2% PASS
total/synth/MSIZE/a0 0.00 0.00 +7.6% PASS
total/synth/MSIZE/a1 0.00 0.00 +3.5% PASS
total/synth/MUL/b0 0.00 0.00 +6.0% PASS
total/synth/MUL/b1 0.00 0.00 +2.5% PASS
total/synth/NOT/u0 0.00 0.00 +6.9% PASS
total/synth/OR/b0 0.00 0.00 +4.7% PASS
total/synth/OR/b1 0.00 0.00 +2.8% PASS
total/synth/PC/a0 0.00 0.00 +4.9% PASS
total/synth/PC/a1 0.00 0.00 +2.4% PASS
total/synth/PUSH1/p0 0.00 0.00 +3.5% PASS
total/synth/PUSH1/p1 0.00 0.00 +3.5% PASS
total/synth/PUSH10/p0 0.00 0.00 +4.5% PASS
total/synth/PUSH10/p1 0.00 0.00 +3.4% PASS
total/synth/PUSH11/p0 0.00 0.00 +1.1% PASS
total/synth/PUSH11/p1 0.00 0.00 +3.9% PASS
total/synth/PUSH12/p0 0.00 0.00 +4.9% PASS
total/synth/PUSH12/p1 0.00 0.00 +4.9% PASS
total/synth/PUSH13/p0 0.00 0.00 +4.1% PASS
total/synth/PUSH13/p1 0.00 0.00 +3.3% PASS
total/synth/PUSH14/p0 0.00 0.00 +1.7% PASS
total/synth/PUSH14/p1 0.00 0.00 +4.2% PASS
total/synth/PUSH15/p0 0.00 0.00 +3.8% PASS
total/synth/PUSH15/p1 0.00 0.00 -1.0% PASS
total/synth/PUSH16/p0 0.00 0.00 +1.0% PASS
total/synth/PUSH16/p1 0.00 0.00 +0.1% PASS
total/synth/PUSH17/p0 0.00 0.00 +4.2% PASS
total/synth/PUSH17/p1 0.00 0.00 +3.8% PASS
total/synth/PUSH18/p0 0.00 0.00 +0.9% PASS
total/synth/PUSH18/p1 0.00 0.00 +5.3% PASS
total/synth/PUSH19/p0 0.00 0.00 +13.4% PASS
total/synth/PUSH19/p1 0.00 0.00 +1.9% PASS
total/synth/PUSH2/p0 0.00 0.00 +3.8% PASS
total/synth/PUSH2/p1 0.00 0.00 +3.0% PASS
total/synth/PUSH20/p0 0.00 0.00 +5.5% PASS
total/synth/PUSH20/p1 0.00 0.00 +5.6% PASS
total/synth/PUSH21/p0 0.00 0.00 +2.9% PASS
total/synth/PUSH21/p1 0.00 0.00 +3.4% PASS
total/synth/PUSH22/p0 1.67 1.87 +11.8% PASS
total/synth/PUSH22/p1 1.64 1.75 +6.7% PASS
total/synth/PUSH23/p0 1.71 1.94 +13.6% PASS
total/synth/PUSH23/p1 1.95 2.22 +14.0% PASS
total/synth/PUSH24/p0 1.20 1.32 +9.9% PASS
total/synth/PUSH24/p1 1.95 2.24 +14.5% PASS
total/synth/PUSH25/p0 1.66 1.91 +15.1% PASS
total/synth/PUSH25/p1 1.64 1.75 +6.6% PASS
total/synth/PUSH26/p0 1.72 1.85 +7.8% PASS
total/synth/PUSH26/p1 1.88 2.28 +20.9% PASS
total/synth/PUSH27/p0 1.20 1.32 +9.8% PASS
total/synth/PUSH27/p1 1.92 2.18 +13.8% PASS
total/synth/PUSH28/p0 1.73 1.85 +7.2% PASS
total/synth/PUSH28/p1 1.66 1.79 +8.0% PASS
total/synth/PUSH29/p0 1.66 1.88 +12.9% PASS
total/synth/PUSH29/p1 1.85 2.26 +22.0% PASS
total/synth/PUSH3/p0 0.00 0.00 +4.5% PASS
total/synth/PUSH3/p1 0.00 0.00 +3.0% PASS
total/synth/PUSH30/p0 1.25 1.38 +10.3% PASS
total/synth/PUSH30/p1 1.90 2.22 +17.0% PASS
total/synth/PUSH31/p0 1.70 1.88 +10.4% PASS
total/synth/PUSH31/p1 1.68 1.84 +9.6% PASS
total/synth/PUSH32/p0 1.67 1.88 +12.5% PASS
total/synth/PUSH32/p1 1.96 2.33 +19.3% PASS
total/synth/PUSH4/p0 0.00 0.00 +1.5% PASS
total/synth/PUSH4/p1 0.00 0.00 +2.8% PASS
total/synth/PUSH5/p0 0.00 0.00 +6.9% PASS
total/synth/PUSH5/p1 0.00 0.00 +3.9% PASS
total/synth/PUSH6/p0 0.00 0.00 +3.2% PASS
total/synth/PUSH6/p1 0.00 0.00 +3.0% PASS
total/synth/PUSH7/p0 0.00 0.00 +1.8% PASS
total/synth/PUSH7/p1 0.00 0.00 +2.9% PASS
total/synth/PUSH8/p0 0.00 0.00 +2.7% PASS
total/synth/PUSH8/p1 0.00 0.00 +5.0% PASS
total/synth/PUSH9/p0 0.00 0.00 +3.9% PASS
total/synth/PUSH9/p1 0.00 0.00 +5.5% PASS
total/synth/RETURNDATASIZE/a0 0.03 0.03 +0.7% PASS
total/synth/RETURNDATASIZE/a1 0.06 0.06 +0.9% PASS
total/synth/SAR/b0 0.00 0.00 +4.7% PASS
total/synth/SAR/b1 0.00 0.00 +6.4% PASS
total/synth/SGT/b0 0.00 0.00 +6.5% PASS
total/synth/SGT/b1 0.00 0.00 +2.9% PASS
total/synth/SHL/b0 0.00 0.00 +6.5% PASS
total/synth/SHL/b1 0.00 0.00 +2.8% PASS
total/synth/SHR/b0 0.00 0.00 -1.9% PASS
total/synth/SHR/b1 0.00 0.00 +6.1% PASS
total/synth/SIGNEXTEND/b0 0.00 0.00 +4.5% PASS
total/synth/SIGNEXTEND/b1 0.00 0.00 +7.1% PASS
total/synth/SLT/b0 0.00 0.00 +4.3% PASS
total/synth/SLT/b1 0.00 0.00 +4.2% PASS
total/synth/SUB/b0 0.00 0.00 +4.0% PASS
total/synth/SUB/b1 0.00 0.00 +6.1% PASS
total/synth/SWAP1/s0 0.00 0.00 +5.2% PASS
total/synth/SWAP10/s0 0.00 0.00 +4.3% PASS
total/synth/SWAP11/s0 0.00 0.00 +6.2% PASS
total/synth/SWAP12/s0 0.00 0.00 +4.8% PASS
total/synth/SWAP13/s0 0.00 0.00 +4.9% PASS
total/synth/SWAP14/s0 0.00 0.00 +6.5% PASS
total/synth/SWAP15/s0 0.00 0.00 +4.9% PASS
total/synth/SWAP16/s0 0.00 0.00 +5.6% PASS
total/synth/SWAP2/s0 0.00 0.00 +2.8% PASS
total/synth/SWAP3/s0 0.00 0.00 +5.3% PASS
total/synth/SWAP4/s0 0.00 0.00 +4.3% PASS
total/synth/SWAP5/s0 0.00 0.00 +8.3% PASS
total/synth/SWAP6/s0 0.00 0.00 +6.3% PASS
total/synth/SWAP7/s0 0.00 0.00 +5.5% PASS
total/synth/SWAP8/s0 0.00 0.00 +5.3% PASS
total/synth/SWAP9/s0 0.00 0.00 +5.3% PASS
total/synth/XOR/b0 0.00 0.00 +5.7% PASS
total/synth/XOR/b1 0.00 0.00 +5.1% PASS
total/synth/loop_v1 8.22 8.79 +6.9% PASS
total/synth/loop_v2 8.22 8.52 +3.6% PASS

Summary: 194 benchmarks, 0 regressions


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.

2 participants