Skip to content

fix(compiler): fix the remaining EVM SSA stack-lift crashes - #25

Closed
abmcar wants to merge 4 commits into
fix/evm-ssa-lift-phi-crashesfrom
fix/evm-ssa-lift-more-crashes
Closed

fix(compiler): fix the remaining EVM SSA stack-lift crashes#25
abmcar wants to merge 4 commits into
fix/evm-ssa-lift-phi-crashesfrom
fix/evm-ssa-lift-more-crashes

Conversation

@abmcar

@abmcar abmcar commented Jun 9, 2026

Copy link
Copy Markdown
Owner

What

Follow-up to DTVMStack#530. Fixes the remaining crashes in the EVM multipass JIT's SSA
stack-lift path (ZEN_ENABLE_EVM_STACK_SSA_LIFT, default OFF). After this
change, SSA-lift compiles the full EEST state-test suite and the mainnet-replay
corpus crash-free, producing results identical to the default build.

Stacked on DTVMStack#530. Base is the DTVMStack#530 branch; this PR's diff is only the
follow-up commits. Review/merge after DTVMStack#530. (Once DTVMStack#530 lands on upstream
main, this will be retargeted to main.)

The remaining bugs

  1. Dynamic-jump shape-class entry-depth gate — a block that is both a
    dynamic-jump target and a dynamic-jump source whose own JUMP net-pops the
    stack (entry depth ≠ exit depth) had its shallow exit stack assigned as a
    deeper region's entry state → EntryDepth == Values.size() abort. Gate the
    shape-class fallback on the source's exit depth matching the class entry
    depth (evm_analyzer.h).

  2. JUMPDEST double-begin — when a JUMP/JUMPI terminator falls through
    into a JUMPDEST, both the terminator handler and the main loop begin the
    same block. Benign with the flag OFF; with SSA-lift ON it adds a self-edge
    PredBlockPC == BlockPC (→ getPhiIncomingSlot abort) and re-restores the
    lifted entry state (→ depth-mismatch abort). Detect the re-begin
    (RunStartPC == CurrentBlockEntryPC, gated on CurrentBlockLifted), skip the
    redundant edge, and drain the stale logical-stack copy (evm_bytecode_visitor.h).

  3. Operand identity key on a non-U256 operandgetOperandIdentityKey
    dereferenced getU256VarComponents() on a compile-time type check alone, so
    an empty/deferred operand hit the "Not a multi-component U256" assert. Add a
    runtime isU256MultiComponent() guard (evm_lifted_stack_lifter.h).

All three are reachable only on the lift path; the default (flag-off) build is
unaffected.

Validation

Suite Flag Result
multipass evmone-unittests ON 223/223
multipass evmone-statetest -k fork_Cancun (EEST) ON 2723/2723, 0 failed, no SIGABRT
227-fixture mainnet-replay corpus ON no SIGABRT; fail-set identical to OFF (0 regressions)
multipass evmone-unittests OFF 223/223
multipass evmone-statetest -k fork_Cancun OFF 2723/2723
tools/format.sh check passes

The lift-path EEST result matches the default-build baseline exactly.

Known residual (not a crash)

The EEST run still emits five benign PredBlockPC == BlockPC self-edge cases on
single-predecessor blocks (no merge phis, no abort, all tests pass). Clearing
them would need a broader audit of the terminator/JUMPDEST begin handshake
rather than a surgical change.

🤖 Generated with Claude Code

abmcar and others added 4 commits June 9, 2026 21:31
…gate

A block that is simultaneously a dynamic-jump target and a dynamic-jump source
whose own JUMP net-pops the stack (entry depth != exit depth) crashed the SSA
stack-lift path: getCompatibleDynamicJumpTargetBlocksForSourceBlock reused the
block's target shape class as its outgoing/source class, assuming it
re-dispatches at the depth it entered. For such a block that is false, so its
drained (shallower) exit stack was assigned as a deeper region's entry state,
tripping the EntryDepth == Values.size() assertion (silent SIGABRT in release).

Gate the target-class fallback on the source block's ResolvedExitStackDepth
matching the candidate shape class's entry depth (new helper
getDynamicJumpShapeClassEntryDepth). This enforces the source side of the
SSA-lift invariant source-exit-depth == target-entry-depth == shape-class-entry-depth,
which the previous code checked only on the target side. A genuine jump-table
dispatcher (entry depth == exit depth) still passes unchanged.

Fixes the SIGABRT on stEIP1153_transientStorage/transStorageOK (now 48/48).
Reachable only on the lift path; default (flag-off) build unaffected.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
… entry state

When a JUMP/JUMPI terminator falls through into a JUMPDEST, the terminator
handler calls handleBeginBlock for the (canonicalized) fallthrough target
before the JUMPDEST opcode is decoded. The main decode loop then reaches that
JUMPDEST and the JUMPDEST handler begins the same block a second time. With the
SSA stack-lift path enabled this double-begin corrupts two pieces of state:

1. The JUMPDEST handler re-runs the fallthrough entry-edge assignment with
   CurrentBlockEntryPC == the JUMPDEST's own PC, recording a self-edge
   (PredBlockPC == BlockPC) that is absent from the block's predecessor order.
   assignStackMergeOperand then looks the predecessor up in the phi
   incoming-slot map, misses, and aborts (getPhiIncomingSlot ZEN_ASSERT).
   Reproduces on stEIP3651_warmcoinbase/coinbaseWarmAccountCallGasFail.

2. The second handleBeginBlock re-restores the lifted logical entry state onto
   a logical stack that the first begin already populated, doubling the stack
   depth. The next entry-state transfer then mismatches the successor's
   analyzer-computed entry depth and aborts (assignEntryState ZEN_ASSERT).
   Reproduces on stBadOpcode/measureGas.

Both symptoms share one root cause: the block was already begun by the
predecessor terminator. Detect this (RunStartPC == CurrentBlockEntryPC, gated on
CurrentBlockLifted) and, instead of re-assigning the entry edge, drain the
stale logical-stack copy so the re-begin below restores the lifted entry state
exactly once in the canonical JUMPDEST body block. handleJumpDest still runs to
wire the body branch.

The guard is gated on CurrentBlockLifted, which is only set when the SSA-lift
flag is enabled, so the flag-OFF decode path keeps its existing structure
unchanged. Verified: EEST statetest -k fork_Cancun 2723/2723 (matches OFF
baseline), multipass evmone-unittests 223/223 on a flag-OFF rebuild.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…perands

getOperandIdentityKey computes a stable identity for each stack operand flowing
into a lifted block's entry state. Its final branch dereferenced
getU256VarComponents() whenever the Operand type exposes that accessor (an
`if constexpr` compile-time check), without first confirming the operand is
actually a multi-component U256 value at runtime. getU256VarComponents()
asserts IsU256MultiComponent, so an operand that reached this branch while being
empty/deferred (its Instr and Var accessors both returned null but it is not a
constant and not multi-component) aborted the compile.

Reproduces on the mainnet-replay cancun-suite fixture
0x6919aef1fbf4ed160e7e6797fbc732723c05427becdea2e72f69118e427fd832: with
SSA-lift ON it hits "Not a multi-component U256" (evm_mir_compiler.h:255); with
SSA-lift OFF the same fixture compiles and runs (and fails only on a
pre-existing state-root mismatch shared by both builds).

Add a runtime isU256MultiComponent() check before taking the var-component
branch; non-multi-component operands fall through to the opaque-key path as
intended. The change lives entirely inside an SSA-lift-only code path
(ZEN_ENABLE_EVM_STACK_SSA_LIFT), so the flag-OFF path is unaffected. Verified:
replay corpus no longer crashes and its ON/OFF failing-test sets are identical
(0 regressions); EEST statetest -k fork_Cancun 2723/2723; multipass
evmone-unittests 223/223 on a flag-OFF rebuild.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@abmcar

abmcar commented Jun 9, 2026

Copy link
Copy Markdown
Owner Author

Closing — a fork-internal PR is not a useful target. The follow-up will go to upstream DTVMStack/DTVM instead.

@abmcar abmcar closed this Jun 9, 2026
@github-actions

github-actions Bot commented Jun 9, 2026

Copy link
Copy Markdown

Performance Check Passed (interpreter)

Performance Benchmark Results (threshold: 25%)

Benchmark Baseline (us) Current (us) Change Status
total/main/blake2b_huff/8415nulls 3.82 3.73 -2.4% PASS
total/main/blake2b_huff/empty 0.06 0.06 -2.7% PASS
total/main/blake2b_shifts/8415nulls 20.66 20.61 -0.2% PASS
total/main/sha1_divs/5311 11.55 12.32 +6.7% PASS
total/main/sha1_divs/empty 0.15 0.15 +0.0% PASS
total/main/sha1_shifts/5311 9.48 9.18 -3.2% PASS
total/main/sha1_shifts/empty 0.08 0.08 +9.8% PASS
total/main/snailtracer/benchmark 107.54 105.99 -1.4% PASS
total/main/structarray_alloc/nfts_rank 1.38 1.39 +1.1% PASS
total/main/swap_math/insufficient_liquidity 0.00 0.00 +1.9% PASS
total/main/swap_math/received 0.01 0.01 -0.5% PASS
total/main/swap_math/spent 0.01 0.01 +6.1% PASS
total/main/weierstrudel/1 0.40 0.40 -0.5% PASS
total/main/weierstrudel/15 4.38 4.40 +0.4% PASS
total/micro/JUMPDEST_n0/empty 2.86 2.86 +0.2% PASS
total/micro/jump_around/empty 0.11 0.11 -1.0% PASS
total/micro/loop_with_many_jumpdests/empty 63.03 64.99 +3.1% PASS
total/micro/memory_grow_mload/by1 0.22 0.23 +2.3% PASS
total/micro/memory_grow_mload/by16 0.25 0.25 -3.1% PASS
total/micro/memory_grow_mload/by32 0.14 0.14 -0.3% PASS
total/micro/memory_grow_mload/nogrow 0.12 0.12 +1.0% PASS
total/micro/memory_grow_mstore/by1 0.23 0.23 +1.1% PASS
total/micro/memory_grow_mstore/by16 0.14 0.14 +0.5% PASS
total/micro/memory_grow_mstore/by32 0.28 0.29 +3.7% PASS
total/micro/memory_grow_mstore/nogrow 0.25 0.24 -1.4% PASS
total/micro/signextend/one 0.28 0.29 +5.9% PASS
total/micro/signextend/zero 0.48 0.48 +0.5% PASS
total/synth/ADD/b0 3.24 3.23 -0.3% PASS
total/synth/ADD/b1 6.03 5.98 -0.7% PASS
total/synth/ADDRESS/a0 6.65 6.43 -3.3% PASS
total/synth/ADDRESS/a1 5.25 5.23 -0.5% PASS
total/synth/AND/b0 2.87 2.87 -0.1% PASS
total/synth/AND/b1 5.32 5.48 +3.1% PASS
total/synth/BYTE/b0 6.05 6.05 -0.0% PASS
total/synth/BYTE/b1 8.31 8.42 +1.4% PASS
total/synth/CALLDATASIZE/a0 5.47 5.62 +2.7% PASS
total/synth/CALLDATASIZE/a1 3.50 3.47 -0.8% PASS
total/synth/CALLER/a0 6.66 6.68 +0.3% PASS
total/synth/CALLER/a1 6.78 6.53 -3.8% PASS
total/synth/CALLVALUE/a0 3.57 3.39 -5.2% PASS
total/synth/CALLVALUE/a1 6.44 6.37 -1.1% PASS
total/synth/CODESIZE/a0 6.93 6.63 -4.3% PASS
total/synth/CODESIZE/a1 6.62 6.27 -5.4% PASS
total/synth/DUP1/d0 1.99 1.99 -0.2% PASS
total/synth/DUP1/d1 2.13 2.16 +1.4% PASS
total/synth/DUP10/d0 1.99 1.95 -1.8% PASS
total/synth/DUP10/d1 2.09 2.11 +1.2% PASS
total/synth/DUP11/d0 1.23 1.13 -7.8% PASS
total/synth/DUP11/d1 2.13 2.10 -1.3% PASS
total/synth/DUP12/d0 1.94 1.98 +2.0% PASS
total/synth/DUP12/d1 1.65 1.65 -0.0% PASS
total/synth/DUP13/d0 1.98 2.06 +4.1% PASS
total/synth/DUP13/d1 2.15 2.08 -3.1% PASS
total/synth/DUP14/d0 1.11 1.23 +10.8% PASS
total/synth/DUP14/d1 2.15 2.16 +0.3% PASS
total/synth/DUP15/d0 2.04 1.94 -5.2% PASS
total/synth/DUP15/d1 1.66 1.64 -0.9% PASS
total/synth/DUP16/d0 1.98 1.99 +0.3% PASS
total/synth/DUP16/d1 2.11 2.21 +5.1% PASS
total/synth/DUP2/d0 1.13 1.24 +9.9% PASS
total/synth/DUP2/d1 2.28 2.09 -8.3% PASS
total/synth/DUP3/d0 1.96 1.99 +1.6% PASS
total/synth/DUP3/d1 1.65 1.56 -5.8% PASS
total/synth/DUP4/d0 2.01 2.00 -0.1% PASS
total/synth/DUP4/d1 2.14 2.34 +9.2% PASS
total/synth/DUP5/d0 1.23 1.23 -0.2% PASS
total/synth/DUP5/d1 2.15 2.12 -1.8% PASS
total/synth/DUP6/d0 2.02 2.06 +1.9% PASS
total/synth/DUP6/d1 1.45 1.65 +13.9% PASS
total/synth/DUP7/d0 1.98 2.00 +1.2% PASS
total/synth/DUP7/d1 2.30 2.10 -8.7% PASS
total/synth/DUP8/d0 1.23 1.23 +0.1% PASS
total/synth/DUP8/d1 2.13 2.13 -0.1% PASS
total/synth/DUP9/d0 2.02 1.99 -1.6% PASS
total/synth/DUP9/d1 1.45 1.60 +10.0% PASS
total/synth/EQ/b0 6.07 6.29 +3.6% PASS
total/synth/EQ/b1 6.36 6.25 -1.7% PASS
total/synth/GAS/a0 3.93 3.93 -0.0% PASS
total/synth/GAS/a1 7.28 7.33 +0.7% PASS
total/synth/GT/b0 6.39 6.41 +0.3% PASS
total/synth/GT/b1 6.56 6.54 -0.2% PASS
total/synth/ISZERO/u0 9.97 10.08 +1.2% PASS
total/synth/JUMPDEST/n0 2.86 2.86 -0.1% PASS
total/synth/LT/b0 6.35 6.21 -2.1% PASS
total/synth/LT/b1 5.42 5.44 +0.3% PASS
total/synth/MSIZE/a0 6.06 6.05 -0.3% PASS
total/synth/MSIZE/a1 6.39 6.18 -3.3% PASS
total/synth/MUL/b0 7.97 7.87 -1.2% PASS
total/synth/MUL/b1 5.91 5.91 +0.0% PASS
total/synth/NOT/u0 7.93 8.14 +2.7% PASS
total/synth/OR/b0 5.11 5.24 +2.5% PASS
total/synth/OR/b1 3.38 3.70 +9.4% PASS
total/synth/PC/a0 5.40 5.42 +0.3% PASS
total/synth/PC/a1 3.49 3.47 -0.7% PASS
total/synth/PUSH1/p0 2.31 2.34 +1.0% PASS
total/synth/PUSH1/p1 1.74 1.76 +1.0% PASS
total/synth/PUSH10/p0 2.26 2.22 -1.6% PASS
total/synth/PUSH10/p1 1.56 1.80 +15.0% PASS
total/synth/PUSH11/p0 2.33 2.33 -0.2% PASS
total/synth/PUSH11/p1 2.43 2.58 +6.4% PASS
total/synth/PUSH12/p0 1.32 1.32 -0.2% PASS
total/synth/PUSH12/p1 2.45 2.34 -4.6% PASS
total/synth/PUSH13/p0 2.39 2.28 -4.4% PASS
total/synth/PUSH13/p1 1.71 1.75 +2.0% PASS
total/synth/PUSH14/p0 2.33 2.55 +9.7% PASS
total/synth/PUSH14/p1 2.40 2.44 +1.9% PASS
total/synth/PUSH15/p0 1.32 1.32 +0.1% PASS
total/synth/PUSH15/p1 2.42 2.59 +6.7% PASS
total/synth/PUSH16/p0 2.28 2.38 +4.3% PASS
total/synth/PUSH16/p1 1.78 1.80 +1.1% PASS
total/synth/PUSH17/p0 2.34 2.88 +23.4% PASS
total/synth/PUSH17/p1 2.30 2.41 +4.7% PASS
total/synth/PUSH18/p0 1.33 1.32 -0.3% PASS
total/synth/PUSH18/p1 2.46 2.54 +3.3% PASS
total/synth/PUSH19/p0 2.35 2.35 +0.1% PASS
total/synth/PUSH19/p1 1.54 1.76 +14.1% PASS
total/synth/PUSH2/p0 2.22 2.23 +0.7% PASS
total/synth/PUSH2/p1 2.44 2.50 +2.4% PASS
total/synth/PUSH20/p0 2.26 2.39 +5.5% PASS
total/synth/PUSH20/p1 2.38 2.35 -1.5% PASS
total/synth/PUSH21/p0 1.32 1.32 +0.4% PASS
total/synth/PUSH21/p1 2.44 2.35 -3.8% PASS
total/synth/PUSH22/p0 2.25 2.18 -3.3% PASS
total/synth/PUSH22/p1 1.62 1.81 +11.2% PASS
total/synth/PUSH23/p0 2.22 2.42 +9.4% PASS
total/synth/PUSH23/p1 2.43 2.40 -1.2% PASS
total/synth/PUSH24/p0 1.31 1.32 +0.7% PASS
total/synth/PUSH24/p1 2.42 2.40 -0.8% PASS
total/synth/PUSH25/p0 2.39 2.31 -3.3% PASS
total/synth/PUSH25/p1 1.79 1.71 -4.3% PASS
total/synth/PUSH26/p0 2.70 2.28 -15.6% PASS
total/synth/PUSH26/p1 2.47 2.46 -0.3% PASS
total/synth/PUSH27/p0 1.32 1.32 +0.4% PASS
total/synth/PUSH27/p1 2.54 2.49 -2.0% PASS
total/synth/PUSH28/p0 2.44 2.26 -7.1% PASS
total/synth/PUSH28/p1 1.58 1.78 +12.6% PASS
total/synth/PUSH29/p0 2.44 2.43 -0.4% PASS
total/synth/PUSH29/p1 2.56 2.47 -3.3% PASS
total/synth/PUSH3/p0 1.32 1.32 +0.1% PASS
total/synth/PUSH3/p1 2.47 2.46 -0.3% PASS
total/synth/PUSH30/p0 1.58 1.49 -5.9% PASS
total/synth/PUSH30/p1 2.43 2.55 +5.0% PASS
total/synth/PUSH31/p0 2.40 2.27 -5.2% PASS
total/synth/PUSH31/p1 1.78 1.81 +1.8% PASS
total/synth/PUSH32/p0 2.32 2.24 -3.3% PASS
total/synth/PUSH32/p1 2.48 2.43 -1.9% PASS
total/synth/PUSH4/p0 2.39 2.38 -0.6% PASS
total/synth/PUSH4/p1 1.74 1.70 -2.8% PASS
total/synth/PUSH5/p0 2.51 2.32 -7.2% PASS
total/synth/PUSH5/p1 2.49 2.35 -5.6% PASS
total/synth/PUSH6/p0 1.33 1.32 -1.4% PASS
total/synth/PUSH6/p1 2.38 2.36 -0.9% PASS
total/synth/PUSH7/p0 2.26 2.27 +0.3% PASS
total/synth/PUSH7/p1 1.64 1.80 +10.0% PASS
total/synth/PUSH8/p0 2.33 2.42 +3.9% PASS
total/synth/PUSH8/p1 2.42 2.48 +2.5% PASS
total/synth/PUSH9/p0 1.30 1.32 +1.6% PASS
total/synth/PUSH9/p1 2.39 2.58 +8.1% PASS
total/synth/RETURNDATASIZE/a0 3.54 3.60 +1.5% PASS
total/synth/RETURNDATASIZE/a1 6.44 6.32 -1.9% PASS
total/synth/SAR/b0 3.93 3.94 +0.3% PASS
total/synth/SAR/b1 7.41 7.45 +0.5% PASS
total/synth/SGT/b0 5.71 5.70 -0.1% PASS
total/synth/SGT/b1 4.14 4.14 +0.1% PASS
total/synth/SHL/b0 7.05 7.45 +5.7% PASS
total/synth/SHL/b1 3.65 3.85 +5.7% PASS
total/synth/SHR/b0 6.85 6.87 +0.3% PASS
total/synth/SHR/b1 6.34 6.27 -1.0% PASS
total/synth/SIGNEXTEND/b0 3.37 3.36 -0.3% PASS
total/synth/SIGNEXTEND/b1 6.55 6.38 -2.7% PASS
total/synth/SLT/b0 4.30 4.29 -0.1% PASS
total/synth/SLT/b1 5.90 5.51 -6.7% PASS
total/synth/SUB/b0 5.96 6.00 +0.7% PASS
total/synth/SUB/b1 6.07 5.78 -4.8% PASS
total/synth/SWAP1/s0 3.52 3.52 +0.0% PASS
total/synth/SWAP10/s0 3.53 3.54 +0.1% PASS
total/synth/SWAP11/s0 3.40 3.49 +2.5% PASS
total/synth/SWAP12/s0 3.45 3.43 -0.3% PASS
total/synth/SWAP13/s0 3.54 3.54 -0.0% PASS
total/synth/SWAP14/s0 3.43 3.47 +1.1% PASS
total/synth/SWAP15/s0 3.48 3.59 +3.2% PASS
total/synth/SWAP16/s0 3.55 3.55 -0.0% PASS
total/synth/SWAP2/s0 3.50 3.40 -2.9% PASS
total/synth/SWAP3/s0 3.43 3.76 +9.8% PASS
total/synth/SWAP4/s0 3.52 3.53 +0.1% PASS
total/synth/SWAP5/s0 3.50 3.50 +0.6% PASS
total/synth/SWAP6/s0 3.45 3.49 +1.1% PASS
total/synth/SWAP7/s0 3.53 3.53 +0.1% PASS
total/synth/SWAP8/s0 3.46 3.75 +8.5% PASS
total/synth/SWAP9/s0 3.50 3.52 +0.6% PASS
total/synth/XOR/b0 5.17 5.14 -0.7% PASS
total/synth/XOR/b1 5.33 5.33 -0.0% PASS
total/synth/loop_v1 12.75 11.89 -6.8% PASS
total/synth/loop_v2 12.16 12.00 -1.3% PASS

Summary: 194 benchmarks, 0 regressions

@github-actions

github-actions Bot commented Jun 9, 2026

Copy link
Copy Markdown

Performance Check Passed (multipass)

Performance Benchmark Results (threshold: 25%)

Benchmark Baseline (us) Current (us) Change Status
total/main/blake2b_huff/8415nulls 1.54 1.55 +0.4% PASS
total/main/blake2b_huff/empty 0.02 0.03 +6.0% PASS
total/main/blake2b_shifts/8415nulls 17.00 17.08 +0.5% PASS
total/main/sha1_divs/5311 12.91 13.02 +0.8% PASS
total/main/sha1_divs/empty 0.16 0.16 -1.6% PASS
total/main/sha1_shifts/5311 9.87 9.79 -0.7% PASS
total/main/sha1_shifts/empty 0.07 0.07 -5.6% PASS
total/main/snailtracer/benchmark 121.97 121.40 -0.4% PASS
total/main/structarray_alloc/nfts_rank 1.19 1.26 +5.2% PASS
total/main/swap_math/insufficient_liquidity 0.00 0.00 -4.7% PASS
total/main/swap_math/received 0.01 0.01 +0.9% PASS
total/main/swap_math/spent 0.01 0.01 +0.3% PASS
total/main/weierstrudel/1 0.40 0.40 -0.2% PASS
total/main/weierstrudel/15 4.36 4.41 +1.1% PASS
total/micro/JUMPDEST_n0/empty 0.00 0.00 +1.3% PASS
total/micro/jump_around/empty 0.06 0.06 -0.2% PASS
total/micro/loop_with_many_jumpdests/empty 0.01 0.01 +2.8% PASS
total/micro/memory_grow_mload/by1 0.02 0.02 -2.5% PASS
total/micro/memory_grow_mload/by16 0.02 0.02 +1.1% PASS
total/micro/memory_grow_mload/by32 0.01 0.01 -0.2% PASS
total/micro/memory_grow_mload/nogrow 0.01 0.01 +1.5% PASS
total/micro/memory_grow_mstore/by1 0.02 0.02 +0.4% PASS
total/micro/memory_grow_mstore/by16 0.01 0.01 -3.3% PASS
total/micro/memory_grow_mstore/by32 0.02 0.02 -2.5% PASS
total/micro/memory_grow_mstore/nogrow 0.02 0.02 +0.0% PASS
total/micro/signextend/one 0.14 0.13 -0.7% PASS
total/micro/signextend/zero 0.25 0.25 -0.7% PASS
total/synth/ADD/b0 0.00 0.00 +0.1% PASS
total/synth/ADD/b1 0.00 0.00 -3.2% PASS
total/synth/ADDRESS/a0 0.21 0.22 +2.9% PASS
total/synth/ADDRESS/a1 0.15 0.15 -0.1% PASS
total/synth/AND/b0 0.00 0.00 -0.2% PASS
total/synth/AND/b1 0.00 0.00 -2.4% PASS
total/synth/BYTE/b0 0.00 0.00 +0.6% PASS
total/synth/BYTE/b1 0.00 0.00 -2.9% PASS
total/synth/CALLDATASIZE/a0 0.13 0.12 -4.6% PASS
total/synth/CALLDATASIZE/a1 0.08 0.08 -0.3% PASS
total/synth/CALLER/a0 0.22 0.21 -5.4% PASS
total/synth/CALLER/a1 0.23 0.23 +0.2% PASS
total/synth/CALLVALUE/a0 0.21 0.21 +0.0% PASS
total/synth/CALLVALUE/a1 0.29 0.28 -4.6% PASS
total/synth/CODESIZE/a0 0.12 0.12 -0.4% PASS
total/synth/CODESIZE/a1 0.12 0.12 +0.3% PASS
total/synth/DUP1/d0 0.00 0.00 -2.1% PASS
total/synth/DUP1/d1 0.00 0.00 -0.0% PASS
total/synth/DUP10/d0 0.00 0.00 -3.6% PASS
total/synth/DUP10/d1 0.00 0.00 +1.2% PASS
total/synth/DUP11/d0 0.00 0.00 +0.3% PASS
total/synth/DUP11/d1 0.00 0.00 +0.8% PASS
total/synth/DUP12/d0 0.00 0.00 +0.5% PASS
total/synth/DUP12/d1 0.00 0.00 +0.4% PASS
total/synth/DUP13/d0 0.00 0.00 +1.2% PASS
total/synth/DUP13/d1 0.00 0.00 +1.2% PASS
total/synth/DUP14/d0 0.00 0.00 +0.7% PASS
total/synth/DUP14/d1 0.00 0.00 -1.5% PASS
total/synth/DUP15/d0 0.00 0.00 -0.3% PASS
total/synth/DUP15/d1 0.00 0.00 -0.1% PASS
total/synth/DUP16/d0 0.00 0.00 -1.7% PASS
total/synth/DUP16/d1 0.00 0.00 +0.8% PASS
total/synth/DUP2/d0 0.00 0.00 +0.7% PASS
total/synth/DUP2/d1 0.00 0.00 +0.5% PASS
total/synth/DUP3/d0 0.00 0.00 +0.7% PASS
total/synth/DUP3/d1 0.00 0.00 -0.2% PASS
total/synth/DUP4/d0 0.00 0.00 -0.8% PASS
total/synth/DUP4/d1 0.00 0.00 +0.6% PASS
total/synth/DUP5/d0 0.00 0.00 -0.2% PASS
total/synth/DUP5/d1 0.00 0.00 -1.7% PASS
total/synth/DUP6/d0 0.00 0.00 +0.2% PASS
total/synth/DUP6/d1 0.00 0.00 +1.4% PASS
total/synth/DUP7/d0 0.00 0.00 -1.5% PASS
total/synth/DUP7/d1 0.00 0.00 -0.5% PASS
total/synth/DUP8/d0 0.00 0.00 +0.1% PASS
total/synth/DUP8/d1 0.00 0.00 -0.4% PASS
total/synth/DUP9/d0 0.00 0.00 +0.4% PASS
total/synth/DUP9/d1 0.00 0.00 +0.2% PASS
total/synth/EQ/b0 0.00 0.00 -2.7% PASS
total/synth/EQ/b1 0.00 0.00 +3.6% PASS
total/synth/GAS/a0 0.52 0.52 +0.4% PASS
total/synth/GAS/a1 0.77 0.80 +3.7% PASS
total/synth/GT/b0 0.00 0.00 -2.4% PASS
total/synth/GT/b1 0.00 0.00 -0.4% PASS
total/synth/ISZERO/u0 0.00 0.00 -1.3% PASS
total/synth/JUMPDEST/n0 0.00 0.00 +0.7% PASS
total/synth/LT/b0 0.00 0.00 +1.4% PASS
total/synth/LT/b1 0.00 0.00 -0.5% PASS
total/synth/MSIZE/a0 0.00 0.00 -1.0% PASS
total/synth/MSIZE/a1 0.00 0.00 +0.3% PASS
total/synth/MUL/b0 0.00 0.00 +0.1% PASS
total/synth/MUL/b1 0.00 0.00 +0.2% PASS
total/synth/NOT/u0 0.00 0.00 +0.6% PASS
total/synth/OR/b0 0.00 0.00 +2.1% PASS
total/synth/OR/b1 0.00 0.00 +0.3% PASS
total/synth/PC/a0 0.00 0.00 +0.7% PASS
total/synth/PC/a1 0.00 0.00 +0.4% PASS
total/synth/PUSH1/p0 0.00 0.00 +0.8% PASS
total/synth/PUSH1/p1 0.00 0.00 +0.0% PASS
total/synth/PUSH10/p0 0.00 0.00 +9.1% PASS
total/synth/PUSH10/p1 0.00 0.00 +2.9% PASS
total/synth/PUSH11/p0 0.00 0.00 +3.5% PASS
total/synth/PUSH11/p1 0.00 0.00 +6.8% PASS
total/synth/PUSH12/p0 0.00 0.00 -4.9% PASS
total/synth/PUSH12/p1 0.00 0.00 -1.7% PASS
total/synth/PUSH13/p0 0.00 0.00 +7.7% PASS
total/synth/PUSH13/p1 0.00 0.00 +5.2% PASS
total/synth/PUSH14/p0 0.00 0.00 -7.0% PASS
total/synth/PUSH14/p1 0.00 0.00 -0.3% PASS
total/synth/PUSH15/p0 0.00 0.00 +6.4% PASS
total/synth/PUSH15/p1 0.00 0.00 -2.9% PASS
total/synth/PUSH16/p0 0.00 0.00 +2.9% PASS
total/synth/PUSH16/p1 0.00 0.00 +0.6% PASS
total/synth/PUSH17/p0 0.00 0.00 -4.2% PASS
total/synth/PUSH17/p1 0.00 0.00 -2.5% PASS
total/synth/PUSH18/p0 0.00 0.00 -0.4% PASS
total/synth/PUSH18/p1 0.00 0.00 +3.0% PASS
total/synth/PUSH19/p0 0.00 0.00 +4.5% PASS
total/synth/PUSH19/p1 0.00 0.00 +1.9% PASS
total/synth/PUSH2/p0 0.00 0.00 -0.7% PASS
total/synth/PUSH2/p1 0.00 0.00 -0.3% PASS
total/synth/PUSH20/p0 0.00 0.00 -3.6% PASS
total/synth/PUSH20/p1 0.00 0.00 +1.6% PASS
total/synth/PUSH21/p0 0.00 0.00 -1.6% PASS
total/synth/PUSH21/p1 0.00 0.00 +6.5% PASS
total/synth/PUSH22/p0 2.47 2.47 -0.1% PASS
total/synth/PUSH22/p1 1.67 1.59 -5.0% PASS
total/synth/PUSH23/p0 2.50 2.48 -0.7% PASS
total/synth/PUSH23/p1 2.50 2.51 +0.1% PASS
total/synth/PUSH24/p0 1.39 1.41 +0.9% PASS
total/synth/PUSH24/p1 2.51 2.50 -0.5% PASS
total/synth/PUSH25/p0 2.49 2.48 -0.4% PASS
total/synth/PUSH25/p1 1.67 1.61 -3.6% PASS
total/synth/PUSH26/p0 2.48 2.47 -0.5% PASS
total/synth/PUSH26/p1 2.58 2.52 -2.2% PASS
total/synth/PUSH27/p0 1.41 1.43 +0.9% PASS
total/synth/PUSH27/p1 2.58 2.51 -2.8% PASS
total/synth/PUSH28/p0 2.48 2.48 +0.0% PASS
total/synth/PUSH28/p1 1.71 1.60 -6.1% PASS
total/synth/PUSH29/p0 2.48 2.48 -0.1% PASS
total/synth/PUSH29/p1 2.51 2.70 +7.6% PASS
total/synth/PUSH3/p0 0.00 0.00 -1.6% PASS
total/synth/PUSH3/p1 0.00 0.00 -0.9% PASS
total/synth/PUSH30/p0 1.47 1.42 -3.5% PASS
total/synth/PUSH30/p1 2.51 2.53 +0.6% PASS
total/synth/PUSH31/p0 2.49 2.48 -0.3% PASS
total/synth/PUSH31/p1 1.62 1.72 +6.0% PASS
total/synth/PUSH32/p0 2.49 2.48 -0.6% PASS
total/synth/PUSH32/p1 2.53 2.46 -2.7% PASS
total/synth/PUSH4/p0 0.00 0.00 -4.4% PASS
total/synth/PUSH4/p1 0.00 0.00 -2.4% PASS
total/synth/PUSH5/p0 0.00 0.00 +0.7% PASS
total/synth/PUSH5/p1 0.00 0.00 +0.8% PASS
total/synth/PUSH6/p0 0.00 0.00 +0.2% PASS
total/synth/PUSH6/p1 0.00 0.00 -1.0% PASS
total/synth/PUSH7/p0 0.00 0.00 +0.5% PASS
total/synth/PUSH7/p1 0.00 0.00 +1.3% PASS
total/synth/PUSH8/p0 0.00 0.00 +8.8% PASS
total/synth/PUSH8/p1 0.00 0.00 +0.3% PASS
total/synth/PUSH9/p0 0.00 0.00 -1.0% PASS
total/synth/PUSH9/p1 0.00 0.00 +0.7% PASS
total/synth/RETURNDATASIZE/a0 0.04 0.04 -0.1% PASS
total/synth/RETURNDATASIZE/a1 0.05 0.05 +14.6% PASS
total/synth/SAR/b0 0.00 0.00 +0.1% PASS
total/synth/SAR/b1 0.00 0.00 -1.7% PASS
total/synth/SGT/b0 0.00 0.00 +4.2% PASS
total/synth/SGT/b1 0.00 0.00 -0.7% PASS
total/synth/SHL/b0 0.00 0.00 -1.0% PASS
total/synth/SHL/b1 0.00 0.00 -0.7% PASS
total/synth/SHR/b0 0.00 0.00 -2.0% PASS
total/synth/SHR/b1 0.00 0.00 +1.7% PASS
total/synth/SIGNEXTEND/b0 0.00 0.00 -1.2% PASS
total/synth/SIGNEXTEND/b1 0.00 0.00 +0.4% PASS
total/synth/SLT/b0 0.00 0.00 -0.7% PASS
total/synth/SLT/b1 0.00 0.00 -2.1% PASS
total/synth/SUB/b0 0.00 0.00 -0.7% PASS
total/synth/SUB/b1 0.00 0.00 +3.0% PASS
total/synth/SWAP1/s0 0.00 0.00 +0.1% PASS
total/synth/SWAP10/s0 0.00 0.00 -0.3% PASS
total/synth/SWAP11/s0 0.00 0.00 -2.0% PASS
total/synth/SWAP12/s0 0.00 0.00 +1.0% PASS
total/synth/SWAP13/s0 0.00 0.00 +1.0% PASS
total/synth/SWAP14/s0 0.00 0.00 -1.7% PASS
total/synth/SWAP15/s0 0.00 0.00 -0.4% PASS
total/synth/SWAP16/s0 0.00 0.00 -0.4% PASS
total/synth/SWAP2/s0 0.00 0.00 -1.9% PASS
total/synth/SWAP3/s0 0.00 0.00 +1.4% PASS
total/synth/SWAP4/s0 0.00 0.00 +0.5% PASS
total/synth/SWAP5/s0 0.00 0.00 -1.2% PASS
total/synth/SWAP6/s0 0.00 0.00 +1.2% PASS
total/synth/SWAP7/s0 0.00 0.00 -0.3% PASS
total/synth/SWAP8/s0 0.00 0.00 -1.8% PASS
total/synth/SWAP9/s0 0.00 0.00 +0.5% PASS
total/synth/XOR/b0 0.00 0.00 +6.9% PASS
total/synth/XOR/b1 0.00 0.00 +1.9% PASS
total/synth/loop_v1 12.86 12.54 -2.5% PASS
total/synth/loop_v2 12.70 12.58 -1.0% PASS

Summary: 194 benchmarks, 0 regressions

@github-actions

github-actions Bot commented Jun 9, 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 3.82 3.73 -2.4% PASS
total/main/blake2b_huff/empty 0.06 0.06 -2.7% PASS
total/main/blake2b_shifts/8415nulls 20.66 20.61 -0.2% PASS
total/main/sha1_divs/5311 11.55 12.32 +6.7% PASS
total/main/sha1_divs/empty 0.15 0.15 +0.0% PASS
total/main/sha1_shifts/5311 9.48 9.18 -3.2% PASS
total/main/sha1_shifts/empty 0.08 0.08 +9.8% PASS
total/main/snailtracer/benchmark 107.54 105.99 -1.4% PASS
total/main/structarray_alloc/nfts_rank 1.38 1.39 +1.1% PASS
total/main/swap_math/insufficient_liquidity 0.00 0.00 +1.9% PASS
total/main/swap_math/received 0.01 0.01 -0.5% PASS
total/main/swap_math/spent 0.01 0.01 +6.1% PASS
total/main/weierstrudel/1 0.40 0.40 -0.5% PASS
total/main/weierstrudel/15 4.38 4.40 +0.4% PASS
total/micro/JUMPDEST_n0/empty 2.86 2.86 +0.2% PASS
total/micro/jump_around/empty 0.11 0.11 -1.0% PASS
total/micro/loop_with_many_jumpdests/empty 63.03 64.99 +3.1% PASS
total/micro/memory_grow_mload/by1 0.22 0.23 +2.3% PASS
total/micro/memory_grow_mload/by16 0.25 0.25 -3.1% PASS
total/micro/memory_grow_mload/by32 0.14 0.14 -0.3% PASS
total/micro/memory_grow_mload/nogrow 0.12 0.12 +1.0% PASS
total/micro/memory_grow_mstore/by1 0.23 0.23 +1.1% PASS
total/micro/memory_grow_mstore/by16 0.14 0.14 +0.5% PASS
total/micro/memory_grow_mstore/by32 0.28 0.29 +3.7% PASS
total/micro/memory_grow_mstore/nogrow 0.25 0.24 -1.4% PASS
total/micro/signextend/one 0.28 0.29 +5.9% PASS
total/micro/signextend/zero 0.48 0.48 +0.5% PASS
total/synth/ADD/b0 3.24 3.23 -0.3% PASS
total/synth/ADD/b1 6.03 5.98 -0.7% PASS
total/synth/ADDRESS/a0 6.65 6.43 -3.3% PASS
total/synth/ADDRESS/a1 5.25 5.23 -0.5% PASS
total/synth/AND/b0 2.87 2.87 -0.1% PASS
total/synth/AND/b1 5.32 5.48 +3.1% PASS
total/synth/BYTE/b0 6.05 6.05 -0.0% PASS
total/synth/BYTE/b1 8.31 8.42 +1.4% PASS
total/synth/CALLDATASIZE/a0 5.47 5.62 +2.7% PASS
total/synth/CALLDATASIZE/a1 3.50 3.47 -0.8% PASS
total/synth/CALLER/a0 6.66 6.68 +0.3% PASS
total/synth/CALLER/a1 6.78 6.53 -3.8% PASS
total/synth/CALLVALUE/a0 3.57 3.39 -5.2% PASS
total/synth/CALLVALUE/a1 6.44 6.37 -1.1% PASS
total/synth/CODESIZE/a0 6.93 6.63 -4.3% PASS
total/synth/CODESIZE/a1 6.62 6.27 -5.4% PASS
total/synth/DUP1/d0 1.99 1.99 -0.2% PASS
total/synth/DUP1/d1 2.13 2.16 +1.4% PASS
total/synth/DUP10/d0 1.99 1.95 -1.8% PASS
total/synth/DUP10/d1 2.09 2.11 +1.2% PASS
total/synth/DUP11/d0 1.23 1.13 -7.8% PASS
total/synth/DUP11/d1 2.13 2.10 -1.3% PASS
total/synth/DUP12/d0 1.94 1.98 +2.0% PASS
total/synth/DUP12/d1 1.65 1.65 -0.0% PASS
total/synth/DUP13/d0 1.98 2.06 +4.1% PASS
total/synth/DUP13/d1 2.15 2.08 -3.1% PASS
total/synth/DUP14/d0 1.11 1.23 +10.8% PASS
total/synth/DUP14/d1 2.15 2.16 +0.3% PASS
total/synth/DUP15/d0 2.04 1.94 -5.2% PASS
total/synth/DUP15/d1 1.66 1.64 -0.9% PASS
total/synth/DUP16/d0 1.98 1.99 +0.3% PASS
total/synth/DUP16/d1 2.11 2.21 +5.1% PASS
total/synth/DUP2/d0 1.13 1.24 +9.9% PASS
total/synth/DUP2/d1 2.28 2.09 -8.3% PASS
total/synth/DUP3/d0 1.96 1.99 +1.6% PASS
total/synth/DUP3/d1 1.65 1.56 -5.8% PASS
total/synth/DUP4/d0 2.01 2.00 -0.1% PASS
total/synth/DUP4/d1 2.14 2.34 +9.2% PASS
total/synth/DUP5/d0 1.23 1.23 -0.2% PASS
total/synth/DUP5/d1 2.15 2.12 -1.8% PASS
total/synth/DUP6/d0 2.02 2.06 +1.9% PASS
total/synth/DUP6/d1 1.45 1.65 +13.9% PASS
total/synth/DUP7/d0 1.98 2.00 +1.2% PASS
total/synth/DUP7/d1 2.30 2.10 -8.7% PASS
total/synth/DUP8/d0 1.23 1.23 +0.1% PASS
total/synth/DUP8/d1 2.13 2.13 -0.1% PASS
total/synth/DUP9/d0 2.02 1.99 -1.6% PASS
total/synth/DUP9/d1 1.45 1.60 +10.0% PASS
total/synth/EQ/b0 6.07 6.29 +3.6% PASS
total/synth/EQ/b1 6.36 6.25 -1.7% PASS
total/synth/GAS/a0 3.93 3.93 -0.0% PASS
total/synth/GAS/a1 7.28 7.33 +0.7% PASS
total/synth/GT/b0 6.39 6.41 +0.3% PASS
total/synth/GT/b1 6.56 6.54 -0.2% PASS
total/synth/ISZERO/u0 9.97 10.08 +1.2% PASS
total/synth/JUMPDEST/n0 2.86 2.86 -0.1% PASS
total/synth/LT/b0 6.35 6.21 -2.1% PASS
total/synth/LT/b1 5.42 5.44 +0.3% PASS
total/synth/MSIZE/a0 6.06 6.05 -0.3% PASS
total/synth/MSIZE/a1 6.39 6.18 -3.3% PASS
total/synth/MUL/b0 7.97 7.87 -1.2% PASS
total/synth/MUL/b1 5.91 5.91 +0.0% PASS
total/synth/NOT/u0 7.93 8.14 +2.7% PASS
total/synth/OR/b0 5.11 5.24 +2.5% PASS
total/synth/OR/b1 3.38 3.70 +9.4% PASS
total/synth/PC/a0 5.40 5.42 +0.3% PASS
total/synth/PC/a1 3.49 3.47 -0.7% PASS
total/synth/PUSH1/p0 2.31 2.34 +1.0% PASS
total/synth/PUSH1/p1 1.74 1.76 +1.0% PASS
total/synth/PUSH10/p0 2.26 2.22 -1.6% PASS
total/synth/PUSH10/p1 1.56 1.80 +15.0% PASS
total/synth/PUSH11/p0 2.33 2.33 -0.2% PASS
total/synth/PUSH11/p1 2.43 2.58 +6.4% PASS
total/synth/PUSH12/p0 1.32 1.32 -0.2% PASS
total/synth/PUSH12/p1 2.45 2.34 -4.6% PASS
total/synth/PUSH13/p0 2.39 2.28 -4.4% PASS
total/synth/PUSH13/p1 1.71 1.75 +2.0% PASS
total/synth/PUSH14/p0 2.33 2.55 +9.7% PASS
total/synth/PUSH14/p1 2.40 2.44 +1.9% PASS
total/synth/PUSH15/p0 1.32 1.32 +0.1% PASS
total/synth/PUSH15/p1 2.42 2.59 +6.7% PASS
total/synth/PUSH16/p0 2.28 2.38 +4.3% PASS
total/synth/PUSH16/p1 1.78 1.80 +1.1% PASS
total/synth/PUSH17/p0 2.34 2.88 +23.4% PASS
total/synth/PUSH17/p1 2.30 2.41 +4.7% PASS
total/synth/PUSH18/p0 1.33 1.32 -0.3% PASS
total/synth/PUSH18/p1 2.46 2.54 +3.3% PASS
total/synth/PUSH19/p0 2.35 2.35 +0.1% PASS
total/synth/PUSH19/p1 1.54 1.76 +14.1% PASS
total/synth/PUSH2/p0 2.22 2.23 +0.7% PASS
total/synth/PUSH2/p1 2.44 2.50 +2.4% PASS
total/synth/PUSH20/p0 2.26 2.39 +5.5% PASS
total/synth/PUSH20/p1 2.38 2.35 -1.5% PASS
total/synth/PUSH21/p0 1.32 1.32 +0.4% PASS
total/synth/PUSH21/p1 2.44 2.35 -3.8% PASS
total/synth/PUSH22/p0 2.25 2.18 -3.3% PASS
total/synth/PUSH22/p1 1.62 1.81 +11.2% PASS
total/synth/PUSH23/p0 2.22 2.42 +9.4% PASS
total/synth/PUSH23/p1 2.43 2.40 -1.2% PASS
total/synth/PUSH24/p0 1.31 1.32 +0.7% PASS
total/synth/PUSH24/p1 2.42 2.40 -0.8% PASS
total/synth/PUSH25/p0 2.39 2.31 -3.3% PASS
total/synth/PUSH25/p1 1.79 1.71 -4.3% PASS
total/synth/PUSH26/p0 2.70 2.28 -15.6% PASS
total/synth/PUSH26/p1 2.47 2.46 -0.3% PASS
total/synth/PUSH27/p0 1.32 1.32 +0.4% PASS
total/synth/PUSH27/p1 2.54 2.49 -2.0% PASS
total/synth/PUSH28/p0 2.44 2.26 -7.1% PASS
total/synth/PUSH28/p1 1.58 1.78 +12.6% PASS
total/synth/PUSH29/p0 2.44 2.43 -0.4% PASS
total/synth/PUSH29/p1 2.56 2.47 -3.3% PASS
total/synth/PUSH3/p0 1.32 1.32 +0.1% PASS
total/synth/PUSH3/p1 2.47 2.46 -0.3% PASS
total/synth/PUSH30/p0 1.58 1.49 -5.9% PASS
total/synth/PUSH30/p1 2.43 2.55 +5.0% PASS
total/synth/PUSH31/p0 2.40 2.27 -5.2% PASS
total/synth/PUSH31/p1 1.78 1.81 +1.8% PASS
total/synth/PUSH32/p0 2.32 2.24 -3.3% PASS
total/synth/PUSH32/p1 2.48 2.43 -1.9% PASS
total/synth/PUSH4/p0 2.39 2.38 -0.6% PASS
total/synth/PUSH4/p1 1.74 1.70 -2.8% PASS
total/synth/PUSH5/p0 2.51 2.32 -7.2% PASS
total/synth/PUSH5/p1 2.49 2.35 -5.6% PASS
total/synth/PUSH6/p0 1.33 1.32 -1.4% PASS
total/synth/PUSH6/p1 2.38 2.36 -0.9% PASS
total/synth/PUSH7/p0 2.26 2.27 +0.3% PASS
total/synth/PUSH7/p1 1.64 1.80 +10.0% PASS
total/synth/PUSH8/p0 2.33 2.42 +3.9% PASS
total/synth/PUSH8/p1 2.42 2.48 +2.5% PASS
total/synth/PUSH9/p0 1.30 1.32 +1.6% PASS
total/synth/PUSH9/p1 2.39 2.58 +8.1% PASS
total/synth/RETURNDATASIZE/a0 3.54 3.60 +1.5% PASS
total/synth/RETURNDATASIZE/a1 6.44 6.32 -1.9% PASS
total/synth/SAR/b0 3.93 3.94 +0.3% PASS
total/synth/SAR/b1 7.41 7.45 +0.5% PASS
total/synth/SGT/b0 5.71 5.70 -0.1% PASS
total/synth/SGT/b1 4.14 4.14 +0.1% PASS
total/synth/SHL/b0 7.05 7.45 +5.7% PASS
total/synth/SHL/b1 3.65 3.85 +5.7% PASS
total/synth/SHR/b0 6.85 6.87 +0.3% PASS
total/synth/SHR/b1 6.34 6.27 -1.0% PASS
total/synth/SIGNEXTEND/b0 3.37 3.36 -0.3% PASS
total/synth/SIGNEXTEND/b1 6.55 6.38 -2.7% PASS
total/synth/SLT/b0 4.30 4.29 -0.1% PASS
total/synth/SLT/b1 5.90 5.51 -6.7% PASS
total/synth/SUB/b0 5.96 6.00 +0.7% PASS
total/synth/SUB/b1 6.07 5.78 -4.8% PASS
total/synth/SWAP1/s0 3.52 3.52 +0.0% PASS
total/synth/SWAP10/s0 3.53 3.54 +0.1% PASS
total/synth/SWAP11/s0 3.40 3.49 +2.5% PASS
total/synth/SWAP12/s0 3.45 3.43 -0.3% PASS
total/synth/SWAP13/s0 3.54 3.54 -0.0% PASS
total/synth/SWAP14/s0 3.43 3.47 +1.1% PASS
total/synth/SWAP15/s0 3.48 3.59 +3.2% PASS
total/synth/SWAP16/s0 3.55 3.55 -0.0% PASS
total/synth/SWAP2/s0 3.50 3.40 -2.9% PASS
total/synth/SWAP3/s0 3.43 3.76 +9.8% PASS
total/synth/SWAP4/s0 3.52 3.53 +0.1% PASS
total/synth/SWAP5/s0 3.50 3.50 +0.6% PASS
total/synth/SWAP6/s0 3.45 3.49 +1.1% PASS
total/synth/SWAP7/s0 3.53 3.53 +0.1% PASS
total/synth/SWAP8/s0 3.46 3.75 +8.5% PASS
total/synth/SWAP9/s0 3.50 3.52 +0.6% PASS
total/synth/XOR/b0 5.17 5.14 -0.7% PASS
total/synth/XOR/b1 5.33 5.33 -0.0% PASS
total/synth/loop_v1 12.75 11.89 -6.8% PASS
total/synth/loop_v2 12.16 12.00 -1.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.54 1.55 +0.4% PASS
total/main/blake2b_huff/empty 0.02 0.03 +6.0% PASS
total/main/blake2b_shifts/8415nulls 17.00 17.08 +0.5% PASS
total/main/sha1_divs/5311 12.91 13.02 +0.8% PASS
total/main/sha1_divs/empty 0.16 0.16 -1.6% PASS
total/main/sha1_shifts/5311 9.87 9.79 -0.7% PASS
total/main/sha1_shifts/empty 0.07 0.07 -5.6% PASS
total/main/snailtracer/benchmark 121.97 121.40 -0.4% PASS
total/main/structarray_alloc/nfts_rank 1.19 1.26 +5.2% PASS
total/main/swap_math/insufficient_liquidity 0.00 0.00 -4.7% PASS
total/main/swap_math/received 0.01 0.01 +0.9% PASS
total/main/swap_math/spent 0.01 0.01 +0.3% PASS
total/main/weierstrudel/1 0.40 0.40 -0.2% PASS
total/main/weierstrudel/15 4.36 4.41 +1.1% PASS
total/micro/JUMPDEST_n0/empty 0.00 0.00 +1.3% PASS
total/micro/jump_around/empty 0.06 0.06 -0.2% PASS
total/micro/loop_with_many_jumpdests/empty 0.01 0.01 +2.8% PASS
total/micro/memory_grow_mload/by1 0.02 0.02 -2.5% PASS
total/micro/memory_grow_mload/by16 0.02 0.02 +1.1% PASS
total/micro/memory_grow_mload/by32 0.01 0.01 -0.2% PASS
total/micro/memory_grow_mload/nogrow 0.01 0.01 +1.5% PASS
total/micro/memory_grow_mstore/by1 0.02 0.02 +0.4% PASS
total/micro/memory_grow_mstore/by16 0.01 0.01 -3.3% PASS
total/micro/memory_grow_mstore/by32 0.02 0.02 -2.5% PASS
total/micro/memory_grow_mstore/nogrow 0.02 0.02 +0.0% PASS
total/micro/signextend/one 0.14 0.13 -0.7% PASS
total/micro/signextend/zero 0.25 0.25 -0.7% PASS
total/synth/ADD/b0 0.00 0.00 +0.1% PASS
total/synth/ADD/b1 0.00 0.00 -3.2% PASS
total/synth/ADDRESS/a0 0.21 0.22 +2.9% PASS
total/synth/ADDRESS/a1 0.15 0.15 -0.1% PASS
total/synth/AND/b0 0.00 0.00 -0.2% PASS
total/synth/AND/b1 0.00 0.00 -2.4% PASS
total/synth/BYTE/b0 0.00 0.00 +0.6% PASS
total/synth/BYTE/b1 0.00 0.00 -2.9% PASS
total/synth/CALLDATASIZE/a0 0.13 0.12 -4.6% PASS
total/synth/CALLDATASIZE/a1 0.08 0.08 -0.3% PASS
total/synth/CALLER/a0 0.22 0.21 -5.4% PASS
total/synth/CALLER/a1 0.23 0.23 +0.2% PASS
total/synth/CALLVALUE/a0 0.21 0.21 +0.0% PASS
total/synth/CALLVALUE/a1 0.29 0.28 -4.6% PASS
total/synth/CODESIZE/a0 0.12 0.12 -0.4% PASS
total/synth/CODESIZE/a1 0.12 0.12 +0.3% PASS
total/synth/DUP1/d0 0.00 0.00 -2.1% PASS
total/synth/DUP1/d1 0.00 0.00 -0.0% PASS
total/synth/DUP10/d0 0.00 0.00 -3.6% PASS
total/synth/DUP10/d1 0.00 0.00 +1.2% PASS
total/synth/DUP11/d0 0.00 0.00 +0.3% PASS
total/synth/DUP11/d1 0.00 0.00 +0.8% PASS
total/synth/DUP12/d0 0.00 0.00 +0.5% PASS
total/synth/DUP12/d1 0.00 0.00 +0.4% PASS
total/synth/DUP13/d0 0.00 0.00 +1.2% PASS
total/synth/DUP13/d1 0.00 0.00 +1.2% PASS
total/synth/DUP14/d0 0.00 0.00 +0.7% PASS
total/synth/DUP14/d1 0.00 0.00 -1.5% PASS
total/synth/DUP15/d0 0.00 0.00 -0.3% PASS
total/synth/DUP15/d1 0.00 0.00 -0.1% PASS
total/synth/DUP16/d0 0.00 0.00 -1.7% PASS
total/synth/DUP16/d1 0.00 0.00 +0.8% PASS
total/synth/DUP2/d0 0.00 0.00 +0.7% PASS
total/synth/DUP2/d1 0.00 0.00 +0.5% PASS
total/synth/DUP3/d0 0.00 0.00 +0.7% PASS
total/synth/DUP3/d1 0.00 0.00 -0.2% PASS
total/synth/DUP4/d0 0.00 0.00 -0.8% PASS
total/synth/DUP4/d1 0.00 0.00 +0.6% PASS
total/synth/DUP5/d0 0.00 0.00 -0.2% PASS
total/synth/DUP5/d1 0.00 0.00 -1.7% PASS
total/synth/DUP6/d0 0.00 0.00 +0.2% PASS
total/synth/DUP6/d1 0.00 0.00 +1.4% PASS
total/synth/DUP7/d0 0.00 0.00 -1.5% PASS
total/synth/DUP7/d1 0.00 0.00 -0.5% PASS
total/synth/DUP8/d0 0.00 0.00 +0.1% PASS
total/synth/DUP8/d1 0.00 0.00 -0.4% PASS
total/synth/DUP9/d0 0.00 0.00 +0.4% PASS
total/synth/DUP9/d1 0.00 0.00 +0.2% PASS
total/synth/EQ/b0 0.00 0.00 -2.7% PASS
total/synth/EQ/b1 0.00 0.00 +3.6% PASS
total/synth/GAS/a0 0.52 0.52 +0.4% PASS
total/synth/GAS/a1 0.77 0.80 +3.7% PASS
total/synth/GT/b0 0.00 0.00 -2.4% PASS
total/synth/GT/b1 0.00 0.00 -0.4% PASS
total/synth/ISZERO/u0 0.00 0.00 -1.3% PASS
total/synth/JUMPDEST/n0 0.00 0.00 +0.7% PASS
total/synth/LT/b0 0.00 0.00 +1.4% PASS
total/synth/LT/b1 0.00 0.00 -0.5% PASS
total/synth/MSIZE/a0 0.00 0.00 -1.0% PASS
total/synth/MSIZE/a1 0.00 0.00 +0.3% PASS
total/synth/MUL/b0 0.00 0.00 +0.1% PASS
total/synth/MUL/b1 0.00 0.00 +0.2% PASS
total/synth/NOT/u0 0.00 0.00 +0.6% PASS
total/synth/OR/b0 0.00 0.00 +2.1% PASS
total/synth/OR/b1 0.00 0.00 +0.3% PASS
total/synth/PC/a0 0.00 0.00 +0.7% PASS
total/synth/PC/a1 0.00 0.00 +0.4% PASS
total/synth/PUSH1/p0 0.00 0.00 +0.8% PASS
total/synth/PUSH1/p1 0.00 0.00 +0.0% PASS
total/synth/PUSH10/p0 0.00 0.00 +9.1% PASS
total/synth/PUSH10/p1 0.00 0.00 +2.9% PASS
total/synth/PUSH11/p0 0.00 0.00 +3.5% PASS
total/synth/PUSH11/p1 0.00 0.00 +6.8% PASS
total/synth/PUSH12/p0 0.00 0.00 -4.9% PASS
total/synth/PUSH12/p1 0.00 0.00 -1.7% PASS
total/synth/PUSH13/p0 0.00 0.00 +7.7% PASS
total/synth/PUSH13/p1 0.00 0.00 +5.2% PASS
total/synth/PUSH14/p0 0.00 0.00 -7.0% PASS
total/synth/PUSH14/p1 0.00 0.00 -0.3% PASS
total/synth/PUSH15/p0 0.00 0.00 +6.4% PASS
total/synth/PUSH15/p1 0.00 0.00 -2.9% PASS
total/synth/PUSH16/p0 0.00 0.00 +2.9% PASS
total/synth/PUSH16/p1 0.00 0.00 +0.6% PASS
total/synth/PUSH17/p0 0.00 0.00 -4.2% PASS
total/synth/PUSH17/p1 0.00 0.00 -2.5% PASS
total/synth/PUSH18/p0 0.00 0.00 -0.4% PASS
total/synth/PUSH18/p1 0.00 0.00 +3.0% PASS
total/synth/PUSH19/p0 0.00 0.00 +4.5% PASS
total/synth/PUSH19/p1 0.00 0.00 +1.9% PASS
total/synth/PUSH2/p0 0.00 0.00 -0.7% PASS
total/synth/PUSH2/p1 0.00 0.00 -0.3% PASS
total/synth/PUSH20/p0 0.00 0.00 -3.6% PASS
total/synth/PUSH20/p1 0.00 0.00 +1.6% PASS
total/synth/PUSH21/p0 0.00 0.00 -1.6% PASS
total/synth/PUSH21/p1 0.00 0.00 +6.5% PASS
total/synth/PUSH22/p0 2.47 2.47 -0.1% PASS
total/synth/PUSH22/p1 1.67 1.59 -5.0% PASS
total/synth/PUSH23/p0 2.50 2.48 -0.7% PASS
total/synth/PUSH23/p1 2.50 2.51 +0.1% PASS
total/synth/PUSH24/p0 1.39 1.41 +0.9% PASS
total/synth/PUSH24/p1 2.51 2.50 -0.5% PASS
total/synth/PUSH25/p0 2.49 2.48 -0.4% PASS
total/synth/PUSH25/p1 1.67 1.61 -3.6% PASS
total/synth/PUSH26/p0 2.48 2.47 -0.5% PASS
total/synth/PUSH26/p1 2.58 2.52 -2.2% PASS
total/synth/PUSH27/p0 1.41 1.43 +0.9% PASS
total/synth/PUSH27/p1 2.58 2.51 -2.8% PASS
total/synth/PUSH28/p0 2.48 2.48 +0.0% PASS
total/synth/PUSH28/p1 1.71 1.60 -6.1% PASS
total/synth/PUSH29/p0 2.48 2.48 -0.1% PASS
total/synth/PUSH29/p1 2.51 2.70 +7.6% PASS
total/synth/PUSH3/p0 0.00 0.00 -1.6% PASS
total/synth/PUSH3/p1 0.00 0.00 -0.9% PASS
total/synth/PUSH30/p0 1.47 1.42 -3.5% PASS
total/synth/PUSH30/p1 2.51 2.53 +0.6% PASS
total/synth/PUSH31/p0 2.49 2.48 -0.3% PASS
total/synth/PUSH31/p1 1.62 1.72 +6.0% PASS
total/synth/PUSH32/p0 2.49 2.48 -0.6% PASS
total/synth/PUSH32/p1 2.53 2.46 -2.7% PASS
total/synth/PUSH4/p0 0.00 0.00 -4.4% PASS
total/synth/PUSH4/p1 0.00 0.00 -2.4% PASS
total/synth/PUSH5/p0 0.00 0.00 +0.7% PASS
total/synth/PUSH5/p1 0.00 0.00 +0.8% PASS
total/synth/PUSH6/p0 0.00 0.00 +0.2% PASS
total/synth/PUSH6/p1 0.00 0.00 -1.0% PASS
total/synth/PUSH7/p0 0.00 0.00 +0.5% PASS
total/synth/PUSH7/p1 0.00 0.00 +1.3% PASS
total/synth/PUSH8/p0 0.00 0.00 +8.8% PASS
total/synth/PUSH8/p1 0.00 0.00 +0.3% PASS
total/synth/PUSH9/p0 0.00 0.00 -1.0% PASS
total/synth/PUSH9/p1 0.00 0.00 +0.7% PASS
total/synth/RETURNDATASIZE/a0 0.04 0.04 -0.1% PASS
total/synth/RETURNDATASIZE/a1 0.05 0.05 +14.6% PASS
total/synth/SAR/b0 0.00 0.00 +0.1% PASS
total/synth/SAR/b1 0.00 0.00 -1.7% PASS
total/synth/SGT/b0 0.00 0.00 +4.2% PASS
total/synth/SGT/b1 0.00 0.00 -0.7% PASS
total/synth/SHL/b0 0.00 0.00 -1.0% PASS
total/synth/SHL/b1 0.00 0.00 -0.7% PASS
total/synth/SHR/b0 0.00 0.00 -2.0% PASS
total/synth/SHR/b1 0.00 0.00 +1.7% PASS
total/synth/SIGNEXTEND/b0 0.00 0.00 -1.2% PASS
total/synth/SIGNEXTEND/b1 0.00 0.00 +0.4% PASS
total/synth/SLT/b0 0.00 0.00 -0.7% PASS
total/synth/SLT/b1 0.00 0.00 -2.1% PASS
total/synth/SUB/b0 0.00 0.00 -0.7% PASS
total/synth/SUB/b1 0.00 0.00 +3.0% PASS
total/synth/SWAP1/s0 0.00 0.00 +0.1% PASS
total/synth/SWAP10/s0 0.00 0.00 -0.3% PASS
total/synth/SWAP11/s0 0.00 0.00 -2.0% PASS
total/synth/SWAP12/s0 0.00 0.00 +1.0% PASS
total/synth/SWAP13/s0 0.00 0.00 +1.0% PASS
total/synth/SWAP14/s0 0.00 0.00 -1.7% PASS
total/synth/SWAP15/s0 0.00 0.00 -0.4% PASS
total/synth/SWAP16/s0 0.00 0.00 -0.4% PASS
total/synth/SWAP2/s0 0.00 0.00 -1.9% PASS
total/synth/SWAP3/s0 0.00 0.00 +1.4% PASS
total/synth/SWAP4/s0 0.00 0.00 +0.5% PASS
total/synth/SWAP5/s0 0.00 0.00 -1.2% PASS
total/synth/SWAP6/s0 0.00 0.00 +1.2% PASS
total/synth/SWAP7/s0 0.00 0.00 -0.3% PASS
total/synth/SWAP8/s0 0.00 0.00 -1.8% PASS
total/synth/SWAP9/s0 0.00 0.00 +0.5% PASS
total/synth/XOR/b0 0.00 0.00 +6.9% PASS
total/synth/XOR/b1 0.00 0.00 +1.9% PASS
total/synth/loop_v1 12.86 12.54 -2.5% PASS
total/synth/loop_v2 12.70 12.58 -1.0% 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.

1 participant