Skip to content

perf(core): replace D*J dyn-jump edges with implicit predecessor count - #14

Closed
abmcar wants to merge 17 commits into
feat/gas-check-placementfrom
perf/spp-implicit-dyn-pred
Closed

perf(core): replace D*J dyn-jump edges with implicit predecessor count#14
abmcar wants to merge 17 commits into
feat/gas-check-placementfrom
perf/spp-implicit-dyn-pred

Conversation

@abmcar

@abmcar abmcar commented May 11, 2026

Copy link
Copy Markdown
Owner

Summary

PR DTVMStack#446 over-approximates dynamic jumps by inserting an explicit edge
from every dynamic-jump block to every JUMPDEST, then splitting each as
a critical edge. On a contract with D dynamic jumps and J JUMPDESTs,
this is O(D × J²) and dominates JIT-prep time on jump-heavy bytecode.

This PR replaces the materialised edges with a per-JUMPDEST scalar
ImplicitDynamicPredCount that gets folded into effectivePredCount
during the lemma 6.14 update. The soundness check (effectivePredCount > 1
disables shifting) behaves identically — we just never build the D×J edges.

To keep dyn-only JUMPDESTs (Solidity function returns, unreachable in
the static-only CFG) visible to the dominator / loop analyses, we seed
the reachability search from every JUMPDEST after the static reachable
set is built.

Results

Detailed analysis: docs/changes/2026-05-11-spp-cfg-implicit-dyn-pred/README.md.

Test plan

  • tools/format.sh check clean
  • cmake --build build --target dtvmapi clean (no new warnings)
  • evmone-unittests multipass: 223/223 pass
  • Bench geomean -6.15% with 0 benches above ±25% gate
  • CI perf check (will run on push)

🤖 Generated with Claude Code

abmcar and others added 17 commits April 25, 2026 10:40
Remove the all-or-nothing HasDynamicJump bailout in buildGasChunksSPP so that
contracts with a mix of resolvable and unresolvable jumps still get CFG-based
SPP shifting on the resolved portion. Factor the edge construction into a
reusable buildCFGEdges() that can be driven either with over-approximation or
with call-site-resolved targets.

Add resolveCallSiteTargets() which detects the Solidity internal-function
return pattern (SWAPn -> JUMP) and walks predecessors to find the enclosing
function entry JUMPDEST, then collects valid return addresses from all
matching call sites (PUSH ret -> PUSH func -> JUMP). The reverse-reachability
walk is bounded by MAX_REVERSE_REACHABILITY_DEPTH to cap compile-time cost.

Introduce decodePushAsJumpDest() as a shared PUSH-as-JUMPDEST decode helper
and add Prev2Pc / Prev2Opcode tracking on GasBlock so the 3-instruction
call-site window can be inspected without rescanning bytecode.

Tighten the SPP shifting guard so that a successor whose last opcode is a
isGasChunkTerminator bails out of shifting, preventing gas cost from being
moved across chunk boundaries.

GasChunkCost continues to write Blocks[Id].Cost (the original unshifted
per-block cost) exactly as PR DTVMStack#371 established: the interpreter gas chunk
fast path depends on unshifted costs, and exporting SPP-shifted metering to
the JIT is left as a follow-up on a separate JIT-only output path.

Test plan:
- format.sh check: clean
- evmone-unittests multipass: 223/223 pass
- evmone-unittests interpreter: 215/215 pass
- evmone-statetest --fork Cancun: 2723/2723 pass

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Measured via evmone-bench against upstream/main@a14a9de on the
external/total/(main|micro) benchmark set: geomean -10.13% across
27 benchmarks, with memory_grow_mload/mstore -19% to -24%, signextend
-19% to -20%, and snailtracer -7.53%.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add EVMBytecodeCache::GasChunkCostSPP as a second parallel cost array that
holds the SPP metering-shifted per-chunk cost computed by buildGasChunksSPP.
The interpreter continues reading the unshifted GasChunkCost (preserving
PR DTVMStack#371's interpreter-safety invariant) while the multipass JIT prefers the
shifted values when emitting gas checks.

Plumb the pointer through EVMFrontendContext::setGasChunkInfo, snapshot it in
EVMMirBuilder, and swap the three chunk-cost read sites:

- meterOpcode — primary per-chunk-start charge
- meterOpcodeRange (slow path) — JUMPDEST-skip cumulative sum
- JUMPDEST-run suffix-sum precompute inside the jump table builder

Swapping all three sites is safe because SPP's lemma614 shift can only
transfer gas from a single-predecessor successor into its parent. Every
JUMPDEST is a jump target (multi-predecessor), so SPP can never shift gas
*into* a JUMPDEST-run member from outside the run; the only intra-run shift
it can perform is from the trailing body chunk up into the last JUMPDEST,
which is still charged along every entry path into the run. Total gas along
any realizable execution path is preserved.

Test plan:
- format.sh check: clean
- evmone-unittests multipass: 223/223 pass
- evmone-unittests interpreter: 215/215 pass
- evmone-statetest --fork Cancun: 2723/2723 pass

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Phase 3 wires SPP-shifted gas costs into the multipass JIT but leaves the
expensive CFG / call-site / metering pipeline running for every module —
including interpreter-only ones that never read the shifted values. On CI
that manifests as a ~7% interpreter-mode regression on snailtracer and up
to +14% on smaller benchmarks where compile time dominates the total run.

Gate the pipeline:

- Add `bool EnableSPP` to `buildBytecodeCache`. When false, the function
  walks the basic gas-block scan, writes unshifted `Blocks[Id].Cost` into
  `GasChunkEnd` / `GasChunkCost`, and leaves `GasChunkCostSPP` empty.

- Track `EVMModule::CacheNeedsSPP`. It is set to `true` immediately before
  `performEVMJITCompile` runs (the only current SPP consumer). Pure
  interpreter-mode modules and JIT-fallback modules leave it `false`, so
  the lazy `initBytecodeCache` picks the cheap path.

- `evm_compiler.cpp` passes `nullptr` when the cache's `GasChunkCostSPP`
  vector is empty, so any JIT compile without SPP (defensive path) falls
  back to the unshifted table via the existing `GasChunkCostSPP ? ... :
  GasChunkCost` pattern in `meterOpcode` / `meterOpcodeRange` / the
  JUMPDEST-run suffix-sum builder.

Test plan:
- format.sh check: clean
- evmone-unittests multipass: 223/223 pass (9.4s vs 13.7s previously)
- evmone-unittests interpreter: 215/215 pass (0.4s vs 3.7s previously)
- evmone-statetest --fork Cancun: 2723/2723 pass (67s vs 103s previously)
- Local bench vs upstream/main (CI flags): geomean -14.29% (n=27)

The test-suite runtime drop is the dominant signal that gating works —
interpreter mode no longer runs the SPP pipeline, so every module load in
the test suite gets back the ~90% of cache-build time the pipeline used
to consume.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The previous two-pass CFG build used call-site-resolved targets to
replace over-approximate edges for dynamic jumps. This created an
under-approximate CFG when resolution was incomplete, allowing
lemma614Update to shift gas along non-existent edges and produce
unsafe metering on missed paths.

Fix: always over-approximate dynamic jumps in buildCFGEdges (edges to
all JUMPDESTs). Remove the second-pass CFG rebuild. Export resolved
targets through ResolvedJumpTargets for downstream consumers (MIR
direct-branch optimization with runtime guard) instead of using them
for CFG refinement.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Reflect Phase 5 (soundness fix): always over-approximate CFG for
dynamic jumps, export ResolvedJumpTargets for downstream MIR use,
document reverse BFS cross-function risk as benign.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
resolveCallSiteTargets() and its ResolvedJumpTargets export had no
downstream consumer — the resolved targets were computed but never
read. Remove the function, its helper isSwapOpcode(), the cache
field, and the output parameter to eliminate dead work (O(N×200) BFS
per JIT-compiled contract).

The call-site enumeration algorithm can be restored from git history
when a consumer (e.g. MIR direct-branch optimization) is implemented.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Previous run had +70% SHL/SHR/SAR synth regressions due to noisy
neighbor on shared GitHub Actions runner — same baseline, same code,
different run produced 11.8ms vs 20.2ms for SHL/b0.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…al design

Address codex review on PR DTVMStack#446:
- Rewrite the gas-check-placement change doc to describe the final design
  only: mixed-precision CFG (over-approximate dynamic jumps), separate
  GasChunkCostSPP array for the JIT, and interpreter-mode gating. Drop
  the call-site / ResolvedJumpTargets narrative — that exploration was
  reverted by c26bf7c and lives in git history, not the change doc.
- Update src/evm/evm_cache.md so GasChunkCost is documented as the
  unshifted interpreter cost and the new GasChunkCostSPP field is
  documented as the SPP-shifted JIT cost. Match the field semantics in
  src/evm/evm_cache.cpp:1161-1165 and src/evm/evm_cache.h:22-27.
Add docs/design/evm-gas-mechanism.md with mermaid diagrams covering:
- shared EVMBytecodeCache layout and the GasChunkCost vs
  GasChunkCostSPP split,
- interpreter chunk fast path (pre-charge at chunk start) with
  per-opcode fallback,
- JIT meterOpcode/meterGas dMIR emission and shared OOG block,
- SPP cost shifting (Lemma 6.14), per-path total preservation,
  mixed-precision CFG with over-approximated dynamic jumps,
- pipeline gating via EVMModule::CacheNeedsSPP.

Addresses zoowii's review request on PR DTVMStack#446 to document the
latest interpreter and JIT gas mechanism.
Two reviewers flagged factual issues in docs/design/evm-gas-mechanism.md:

- JIT meterOpcode flowchart was wrong: when the chunk cache is
  populated and PC is mid-chunk, the function returns without
  emitting any MIR (evm_mir_compiler.cpp:537), it does NOT fall
  through to the per-opcode metric. The per-opcode fallback only
  fires when the cache pointers are absent. Diagram now shows
  both branches separately.
- Chunk-terminator wording was inverted: SSTORE/CALL*/CREATE*/GAS
  end their own chunk (the terminator's static cost is included,
  evm_cache.cpp:329), they are not "before the boundary". Updated
  the chunk definition and the interpreter key-properties bullet.
- Memory expansion is not a chunk boundary; it is charged inside
  handlers via expandMemoryAndChargeGas. Removed the misleading
  "dynamic memory growth" entry.
- Gas-register sync sites are not limited to CALL/CREATE/return;
  syncGasToMemory is also called from balance/code/keccak/memory
  handlers. Listed concrete line numbers.
- Interpreter mermaid: chunk-start condition failure does not
  raise OOG directly; it falls into the slow per-opcode path.
- Failure-mode table updated to match.

Also drift-fixed line numbers for meterOpcode (524), meterOpcodeRange
(544), JumpDestRun precompute (1297-1335), and EVMModule
initBytecodeCache (133-136). Counted parallel arrays correctly (5).
Added precondition note to the SPP example. Replaced \\n with <br/>
and quoted diamond labels so GitHub renders the diagrams.
Records the 6 fix items (F1-F6) identified by the 2026-05-07 self-review
of PR DTVMStack#446 with concrete file:line citations, sequencing, and quality
gates.

The plan was iterated through 3 review rounds (Opus subagent + concrete
GraphQL verification of GitHub thread state) before this final form.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…approx invariant

GasBlock::Prev2Pc and Prev2Opcode were added to support a future 3-instruction
call-site window lookup, but the call-site enumeration that would have consumed
them was removed in commit c26bf7c (Phase 5 CFG soundness fix). Whole-repo grep
confirms zero readers; only the writers in buildGasBlocks remain. Removing both
fields shrinks GasBlock by ~9 bytes (one uint32_t + one uint8_t + alignment) and
removes dead bookkeeping from every cache build.

Also extends the buildCFGEdges function comment to make the soundness pairing
with lemma614Update explicit: the over-approximated dynamic-jump edges to all
JUMPDESTs work because lemma614Update's effectivePredCount > 1 guard refuses to
shift gas across multi-predecessor edges, so the over-approximation is absorbed
without breaking per-path totals.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The CacheNeedsSPP flag controls whether the bytecode cache builds with the
SPP metering pipeline. It must be set before any getBytecodeCache() call:
once the cache is lazily built, the EnableSPP decision is fixed for the
module's lifetime. Future lazy / on-demand JIT paths must flip this flag
before triggering the cache build, otherwise the JIT will silently fall
back to the unshifted GasChunkCost array.

Documentation only — no behavior change.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
… and F6 dropped

The change-doc Metrics section cited a 27-bench local evmone-bench run
(3 reps) whose numbers had drifted significantly from the CI Performance
Regression Check baseline. The "≤ +6% small regressions" framing
mis-categorized the actual jump-heavy regressions on weierstrudel /
jump_around / snailtracer, which sit in the +10–23% range on the CI
multipass table. Rewrite the section using the CI bot's authoritative
numbers and drop the unverified geomean claim.

Also update the review-fix plan to record:
- F1, F4, F5 implemented in commits 81efba3 and 691069a;
- F2, F3 applied to the PR body;
- F6 (open an upstream issue for addEdge O(deg²)) dropped — the concern
  was theoretical, no commit on this branch touches addEdge, no measured
  evidence of compile-time pain. Concern kept inline as a future-tuning
  reference.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
PR DTVMStack#446 over-approximates dynamic jumps by inserting an explicit edge
from every dynamic-jump block to every JUMPDEST, then splitting each as
a critical edge. On contracts with D dynamic jumps and J JUMPDESTs that
costs O(D*J^2), so compile time grows quadratically with J and dominates
JIT-prep on jump-heavy bytecode.

This change carries a per-JUMPDEST scalar ImplicitDynamicPredCount that
counts how many dynamic-jump blocks could reach it at runtime, and folds
it into effectivePredCount so the lemma 6.14 update behaves identically
without materialising the edges. To keep dyn-only JUMPDESTs visible to
dominator and loop analyses (Solidity function returns that are
unreachable in the static-only CFG), we seed reachability from every
JUMPDEST after the static reachable set is built.

Compile time on loop_full_of_jumpdests drops from 7.3s to 3.3s. Geomean
runtime is -6.15% across the 27 paper benches with zero benches above
the +/-25% CI gate.

See docs/changes/2026-05-11-spp-cfg-implicit-dyn-pred/README.md.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@abmcar
abmcar force-pushed the feat/gas-check-placement branch from b943a7a to 972615a Compare May 11, 2026 12:19
@abmcar

abmcar commented May 11, 2026

Copy link
Copy Markdown
Owner Author

Superseded — optimization commit squashed into PR DTVMStack#446 (after rebase onto upstream/main). See DTVMStack#446.

@abmcar abmcar closed this May 11, 2026
@github-actions

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 1.54 1.50 -2.1% PASS
total/main/blake2b_huff/empty 0.02 0.02 -0.2% PASS
total/main/blake2b_shifts/8415nulls 11.75 11.64 -0.9% PASS
total/main/sha1_divs/5311 5.07 5.09 +0.5% PASS
total/main/sha1_divs/empty 0.06 0.06 +0.9% PASS
total/main/sha1_shifts/5311 2.83 2.86 +0.8% PASS
total/main/sha1_shifts/empty 0.03 0.03 +0.5% PASS
total/main/snailtracer/benchmark 52.41 52.84 +0.8% PASS
total/main/structarray_alloc/nfts_rank 0.95 0.99 +4.0% PASS
total/main/swap_math/insufficient_liquidity 0.00 0.00 -0.6% PASS
total/main/swap_math/received 0.00 0.00 -0.1% PASS
total/main/swap_math/spent 0.00 0.00 -0.8% PASS
total/main/weierstrudel/1 0.29 0.29 -0.1% PASS
total/main/weierstrudel/15 3.14 3.15 +0.1% PASS
total/micro/JUMPDEST_n0/empty 1.80 2.28 +27.2% PASS
total/micro/jump_around/empty 0.09 0.09 +0.8% PASS
total/micro/loop_with_many_jumpdests/empty 34.83 34.87 +0.1% PASS
total/micro/memory_grow_mload/by1 0.09 0.08 -9.6% PASS
total/micro/memory_grow_mload/by16 0.10 0.09 -7.9% PASS
total/micro/memory_grow_mload/by32 0.11 0.11 -3.6% PASS
total/micro/memory_grow_mload/nogrow 0.09 0.09 -2.7% PASS
total/micro/memory_grow_mstore/by1 0.09 0.09 -0.4% PASS
total/micro/memory_grow_mstore/by16 0.10 0.10 +1.7% PASS
total/micro/memory_grow_mstore/by32 0.11 0.11 +0.0% PASS
total/micro/memory_grow_mstore/nogrow 0.09 0.09 +2.6% PASS
total/micro/signextend/one 0.23 0.23 +0.0% PASS
total/micro/signextend/zero 0.23 0.23 -0.0% PASS
total/synth/ADD/b0 1.98 1.98 -0.0% PASS
total/synth/ADD/b1 1.96 1.97 +0.3% PASS
total/synth/ADDRESS/a0 4.88 4.87 -0.1% PASS
total/synth/ADDRESS/a1 5.33 5.36 +0.5% PASS
total/synth/AND/b0 1.71 1.71 -0.0% PASS
total/synth/AND/b1 1.71 1.71 +0.0% PASS
total/synth/BYTE/b0 6.13 6.13 -0.0% PASS
total/synth/BYTE/b1 4.75 4.77 +0.6% PASS
total/synth/CALLDATASIZE/a0 3.50 3.50 -0.1% PASS
total/synth/CALLDATASIZE/a1 3.51 3.54 +0.9% PASS
total/synth/CALLER/a0 4.97 4.98 +0.1% PASS
total/synth/CALLER/a1 5.34 5.35 +0.3% PASS
total/synth/CALLVALUE/a0 3.50 3.26 -6.8% PASS
total/synth/CALLVALUE/a1 3.51 3.52 +0.2% PASS
total/synth/CODESIZE/a0 3.67 3.83 +4.3% PASS
total/synth/CODESIZE/a1 3.62 3.85 +6.4% PASS
total/synth/DUP1/d0 1.06 0.90 -15.3% PASS
total/synth/DUP1/d1 1.31 1.31 +0.1% PASS
total/synth/DUP10/d0 1.05 1.12 +6.6% PASS
total/synth/DUP10/d1 1.23 1.23 +0.2% PASS
total/synth/DUP11/d0 1.15 0.91 -20.8% PASS
total/synth/DUP11/d1 1.23 1.23 +0.2% PASS
total/synth/DUP12/d0 0.91 1.15 +26.4% PASS
total/synth/DUP12/d1 1.06 1.23 +16.6% PASS
total/synth/DUP13/d0 1.15 0.99 -14.0% PASS
total/synth/DUP13/d1 1.23 1.23 +0.3% PASS
total/synth/DUP14/d0 1.10 0.91 -17.6% PASS
total/synth/DUP14/d1 1.22 1.23 +1.3% PASS
total/synth/DUP15/d0 1.14 1.14 -0.0% PASS
total/synth/DUP15/d1 1.01 1.23 +22.4% PASS
total/synth/DUP16/d0 1.14 1.15 +0.3% PASS
total/synth/DUP16/d1 0.99 1.23 +24.9% PASS
total/synth/DUP2/d0 1.14 0.90 -21.2% PASS
total/synth/DUP2/d1 1.20 1.23 +2.9% PASS
total/synth/DUP3/d0 1.14 1.13 -0.9% PASS
total/synth/DUP3/d1 1.10 1.01 -8.3% PASS
total/synth/DUP4/d0 0.98 0.90 -8.3% PASS
total/synth/DUP4/d1 1.23 1.23 +0.2% PASS
total/synth/DUP5/d0 1.14 1.14 -0.2% PASS
total/synth/DUP5/d1 1.01 1.00 -0.7% PASS
total/synth/DUP6/d0 0.90 1.12 +24.1% PASS
total/synth/DUP6/d1 0.99 1.23 +24.0% PASS
total/synth/DUP7/d0 1.15 1.15 +0.1% PASS
total/synth/DUP7/d1 1.00 1.23 +23.9% PASS
total/synth/DUP8/d0 1.15 1.14 -0.2% PASS
total/synth/DUP8/d1 1.03 1.00 -3.2% PASS
total/synth/DUP9/d0 1.15 0.91 -21.0% PASS
total/synth/DUP9/d1 0.99 1.00 +1.2% PASS
total/synth/EQ/b0 2.76 2.76 +0.0% PASS
total/synth/EQ/b1 1.33 1.33 +0.5% PASS
total/synth/GAS/a0 3.91 3.91 -0.1% PASS
total/synth/GAS/a1 3.91 3.94 +0.7% PASS
total/synth/GT/b0 2.59 2.59 +0.1% PASS
total/synth/GT/b1 1.63 1.64 +0.2% PASS
total/synth/ISZERO/u0 1.15 1.15 +0.1% PASS
total/synth/JUMPDEST/n0 2.28 2.28 +0.1% PASS
total/synth/LT/b0 2.61 2.61 -0.0% PASS
total/synth/LT/b1 1.63 1.64 +0.3% PASS
total/synth/MSIZE/a0 4.25 4.25 +0.0% PASS
total/synth/MSIZE/a1 4.75 4.77 +0.5% PASS
total/synth/MUL/b0 5.34 5.34 -0.0% PASS
total/synth/MUL/b1 5.30 5.30 -0.0% PASS
total/synth/NOT/u0 1.69 1.70 +0.5% PASS
total/synth/OR/b0 1.64 1.64 +0.0% PASS
total/synth/OR/b1 1.71 1.71 +0.0% PASS
total/synth/PC/a0 3.26 3.26 +0.0% PASS
total/synth/PC/a1 4.11 4.13 +0.4% PASS
total/synth/PUSH1/p0 0.91 1.11 +22.5% PASS
total/synth/PUSH1/p1 1.23 1.23 -0.0% PASS
total/synth/PUSH10/p0 0.91 1.14 +25.6% PASS
total/synth/PUSH10/p1 1.29 1.28 -0.1% PASS
total/synth/PUSH11/p0 0.90 1.10 +21.9% PASS
total/synth/PUSH11/p1 1.29 1.29 +0.3% PASS
total/synth/PUSH12/p0 0.91 0.91 +0.4% PASS
total/synth/PUSH12/p1 1.30 1.29 -0.4% PASS
total/synth/PUSH13/p0 0.91 0.91 -0.2% PASS
total/synth/PUSH13/p1 1.31 1.28 -2.7% PASS
total/synth/PUSH14/p0 1.17 0.98 -15.7% PASS
total/synth/PUSH14/p1 1.30 1.28 -1.1% PASS
total/synth/PUSH15/p0 0.91 0.93 +2.7% PASS
total/synth/PUSH15/p1 1.42 1.35 -4.6% PASS
total/synth/PUSH16/p0 0.91 1.15 +26.5% PASS
total/synth/PUSH16/p1 1.29 1.29 +0.6% PASS
total/synth/PUSH17/p0 1.15 0.91 -20.8% PASS
total/synth/PUSH17/p1 1.30 1.29 -0.4% PASS
total/synth/PUSH18/p0 0.91 1.07 +17.3% PASS
total/synth/PUSH18/p1 1.29 1.30 +0.7% PASS
total/synth/PUSH19/p0 0.91 1.10 +21.8% PASS
total/synth/PUSH19/p1 1.22 1.30 +7.0% PASS
total/synth/PUSH2/p0 0.91 0.91 -0.0% PASS
total/synth/PUSH2/p1 1.24 1.24 -0.0% PASS
total/synth/PUSH20/p0 1.07 0.91 -15.0% PASS
total/synth/PUSH20/p1 1.29 1.30 +0.9% PASS
total/synth/PUSH21/p0 0.91 1.07 +17.4% PASS
total/synth/PUSH21/p1 1.29 1.29 -0.3% PASS
total/synth/PUSH22/p0 1.15 0.91 -20.6% PASS
total/synth/PUSH22/p1 1.30 1.30 +0.1% PASS
total/synth/PUSH23/p0 1.15 1.15 -0.1% PASS
total/synth/PUSH23/p1 1.30 1.31 +0.6% PASS
total/synth/PUSH24/p0 1.07 1.14 +6.6% PASS
total/synth/PUSH24/p1 1.30 1.30 +0.0% PASS
total/synth/PUSH25/p0 0.91 0.92 +0.5% PASS
total/synth/PUSH25/p1 1.31 1.29 -1.0% PASS
total/synth/PUSH26/p0 0.91 0.91 +0.2% PASS
total/synth/PUSH26/p1 1.29 1.31 +0.9% PASS
total/synth/PUSH27/p0 0.91 1.15 +25.6% PASS
total/synth/PUSH27/p1 1.31 1.31 -0.3% PASS
total/synth/PUSH28/p0 0.91 0.91 -0.4% PASS
total/synth/PUSH28/p1 1.31 1.32 +0.8% PASS
total/synth/PUSH29/p0 1.07 1.07 -0.4% PASS
total/synth/PUSH29/p1 1.30 1.30 +0.3% PASS
total/synth/PUSH3/p0 0.91 0.88 -2.4% PASS
total/synth/PUSH3/p1 1.25 1.26 +0.4% PASS
total/synth/PUSH30/p0 1.08 1.11 +2.2% PASS
total/synth/PUSH30/p1 1.31 1.30 -0.3% PASS
total/synth/PUSH31/p0 1.15 1.12 -2.2% PASS
total/synth/PUSH31/p1 1.45 1.42 -2.4% PASS
total/synth/PUSH32/p0 0.91 0.92 +1.4% PASS
total/synth/PUSH32/p1 1.32 1.32 -0.6% PASS
total/synth/PUSH4/p0 0.91 1.07 +17.5% PASS
total/synth/PUSH4/p1 1.28 1.28 +0.1% PASS
total/synth/PUSH5/p0 0.91 1.07 +18.0% PASS
total/synth/PUSH5/p1 1.28 1.27 -0.6% PASS
total/synth/PUSH6/p0 1.07 0.91 -15.1% PASS
total/synth/PUSH6/p1 1.29 1.29 +0.1% PASS
total/synth/PUSH7/p0 1.09 1.15 +5.0% PASS
total/synth/PUSH7/p1 1.29 1.29 +0.0% PASS
total/synth/PUSH8/p0 1.15 0.91 -21.1% PASS
total/synth/PUSH8/p1 1.29 1.28 -0.7% PASS
total/synth/PUSH9/p0 0.91 0.91 -0.5% PASS
total/synth/PUSH9/p1 1.30 1.30 +0.4% PASS
total/synth/RETURNDATASIZE/a0 3.83 3.59 -6.3% PASS
total/synth/RETURNDATASIZE/a1 3.83 3.85 +0.5% PASS
total/synth/SAR/b0 3.77 3.77 +0.0% PASS
total/synth/SAR/b1 4.26 4.28 +0.7% PASS
total/synth/SGT/b0 2.60 2.60 +0.0% PASS
total/synth/SGT/b1 1.63 1.63 +0.0% PASS
total/synth/SHL/b0 3.03 3.03 +0.0% PASS
total/synth/SHL/b1 1.64 1.64 +0.2% PASS
total/synth/SHR/b0 2.93 2.93 -0.0% PASS
total/synth/SHR/b1 1.51 1.52 +0.3% PASS
total/synth/SIGNEXTEND/b0 3.15 3.14 -0.4% PASS
total/synth/SIGNEXTEND/b1 3.51 3.39 -3.6% PASS
total/synth/SLT/b0 2.60 2.60 -0.1% PASS
total/synth/SLT/b1 1.72 1.72 +0.1% PASS
total/synth/SUB/b0 1.98 1.98 -0.1% PASS
total/synth/SUB/b1 1.96 1.97 +0.2% PASS
total/synth/SWAP1/s0 1.63 1.63 +0.1% PASS
total/synth/SWAP10/s0 1.64 1.65 +0.1% PASS
total/synth/SWAP11/s0 1.64 1.65 +0.3% PASS
total/synth/SWAP12/s0 1.65 1.65 +0.1% PASS
total/synth/SWAP13/s0 1.65 1.59 -3.5% PASS
total/synth/SWAP14/s0 1.56 1.51 -3.2% PASS
total/synth/SWAP15/s0 1.51 1.65 +9.5% PASS
total/synth/SWAP16/s0 1.65 1.65 +0.1% PASS
total/synth/SWAP2/s0 1.64 1.53 -6.3% PASS
total/synth/SWAP3/s0 1.50 1.64 +9.5% PASS
total/synth/SWAP4/s0 1.64 1.64 +0.0% PASS
total/synth/SWAP5/s0 1.49 1.64 +9.9% PASS
total/synth/SWAP6/s0 1.64 1.64 +0.1% PASS
total/synth/SWAP7/s0 1.64 1.64 +0.0% PASS
total/synth/SWAP8/s0 1.64 1.51 -8.3% PASS
total/synth/SWAP9/s0 1.50 1.64 +9.5% PASS
total/synth/XOR/b0 1.55 1.55 +0.1% PASS
total/synth/XOR/b1 1.55 1.55 +0.1% PASS
total/synth/loop_v1 4.43 4.44 +0.2% PASS
total/synth/loop_v2 4.44 4.45 +0.3% PASS

Summary: 194 benchmarks, 0 regressions

@github-actions

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 1.52 1.54 +1.0% PASS
total/main/blake2b_huff/empty 0.02 0.02 +1.6% PASS
total/main/blake2b_shifts/8415nulls 11.85 11.71 -1.2% PASS
total/main/sha1_divs/5311 5.09 5.10 +0.0% PASS
total/main/sha1_divs/empty 0.06 0.06 -0.4% PASS
total/main/sha1_shifts/5311 2.84 2.83 -0.3% PASS
total/main/sha1_shifts/empty 0.03 0.04 +2.8% PASS
total/main/snailtracer/benchmark 52.70 53.06 +0.7% PASS
total/main/structarray_alloc/nfts_rank 0.97 1.03 +6.1% PASS
total/main/swap_math/insufficient_liquidity 0.00 0.00 +0.4% PASS
total/main/swap_math/received 0.00 0.00 -0.5% PASS
total/main/swap_math/spent 0.00 0.00 -0.4% PASS
total/main/weierstrudel/1 0.29 0.29 -0.1% PASS
total/main/weierstrudel/15 3.15 3.17 +0.7% PASS
total/micro/JUMPDEST_n0/empty 1.80 2.28 +27.0% PASS
total/micro/jump_around/empty 0.10 0.10 +0.9% PASS
total/micro/loop_with_many_jumpdests/empty 27.44 27.45 +0.0% PASS
total/micro/memory_grow_mload/by1 0.09 0.09 +0.1% PASS
total/micro/memory_grow_mload/by16 0.10 0.10 -3.9% PASS
total/micro/memory_grow_mload/by32 0.11 0.11 -0.1% PASS
total/micro/memory_grow_mload/nogrow 0.09 0.09 -2.6% PASS
total/micro/memory_grow_mstore/by1 0.09 0.09 +2.3% PASS
total/micro/memory_grow_mstore/by16 0.10 0.10 -0.5% PASS
total/micro/memory_grow_mstore/by32 0.12 0.12 -0.5% PASS
total/micro/memory_grow_mstore/nogrow 0.09 0.09 +0.0% PASS
total/micro/signextend/one 0.23 0.23 +0.3% PASS
total/micro/signextend/zero 0.23 0.23 +0.3% PASS
total/synth/ADD/b0 1.95 1.98 +1.4% PASS
total/synth/ADD/b1 1.97 1.97 +0.0% PASS
total/synth/ADDRESS/a0 4.88 4.88 +0.1% PASS
total/synth/ADDRESS/a1 5.34 5.33 -0.2% PASS
total/synth/AND/b0 1.71 1.71 -0.0% PASS
total/synth/AND/b1 1.71 1.71 +0.0% PASS
total/synth/BYTE/b0 6.15 6.13 -0.2% PASS
total/synth/BYTE/b1 4.77 4.77 +0.1% PASS
total/synth/CALLDATASIZE/a0 3.50 3.50 +0.1% PASS
total/synth/CALLDATASIZE/a1 3.51 3.68 +4.8% PASS
total/synth/CALLER/a0 4.97 4.98 +0.1% PASS
total/synth/CALLER/a1 5.34 5.32 -0.3% PASS
total/synth/CALLVALUE/a0 3.50 3.51 +0.1% PASS
total/synth/CALLVALUE/a1 3.52 3.53 +0.3% PASS
total/synth/CODESIZE/a0 3.83 3.83 +0.0% PASS
total/synth/CODESIZE/a1 3.84 3.85 +0.4% PASS
total/synth/DUP1/d0 0.91 1.22 +34.6% PASS
total/synth/DUP1/d1 1.31 1.31 +0.0% PASS
total/synth/DUP10/d0 1.14 1.14 -0.1% PASS
total/synth/DUP10/d1 1.23 1.23 +0.0% PASS
total/synth/DUP11/d0 1.14 1.15 +0.2% PASS
total/synth/DUP11/d1 1.02 1.00 -1.0% PASS
total/synth/DUP12/d0 1.14 1.17 +2.6% PASS
total/synth/DUP12/d1 1.04 1.00 -3.9% PASS
total/synth/DUP13/d0 1.23 0.99 -19.4% PASS
total/synth/DUP13/d1 1.18 1.23 +4.6% PASS
total/synth/DUP14/d0 1.15 0.91 -20.9% PASS
total/synth/DUP14/d1 1.23 1.01 -17.9% PASS
total/synth/DUP15/d0 1.15 1.14 -0.5% PASS
total/synth/DUP15/d1 1.00 1.23 +22.9% PASS
total/synth/DUP16/d0 0.91 0.99 +9.0% PASS
total/synth/DUP16/d1 1.00 1.03 +2.3% PASS
total/synth/DUP2/d0 1.14 1.14 +0.1% PASS
total/synth/DUP2/d1 1.02 1.02 +0.0% PASS
total/synth/DUP3/d0 1.15 0.90 -21.5% PASS
total/synth/DUP3/d1 1.00 1.02 +1.9% PASS
total/synth/DUP4/d0 1.14 0.98 -14.0% PASS
total/synth/DUP4/d1 1.09 1.00 -8.1% PASS
total/synth/DUP5/d0 1.14 1.14 -0.0% PASS
total/synth/DUP5/d1 1.00 1.23 +22.8% PASS
total/synth/DUP6/d0 1.15 0.99 -14.0% PASS
total/synth/DUP6/d1 1.23 1.23 -0.1% PASS
total/synth/DUP7/d0 1.19 1.15 -3.9% PASS
total/synth/DUP7/d1 1.15 1.23 +7.0% PASS
total/synth/DUP8/d0 1.15 1.15 -0.3% PASS
total/synth/DUP8/d1 1.03 1.23 +19.1% PASS
total/synth/DUP9/d0 1.15 1.14 -0.2% PASS
total/synth/DUP9/d1 1.01 1.23 +22.3% PASS
total/synth/EQ/b0 2.76 2.76 -0.0% PASS
total/synth/EQ/b1 1.34 1.33 -0.0% PASS
total/synth/GAS/a0 3.91 3.92 +0.1% PASS
total/synth/GAS/a1 3.92 3.94 +0.3% PASS
total/synth/GT/b0 2.59 2.60 +0.1% PASS
total/synth/GT/b1 1.64 1.64 +0.1% PASS
total/synth/ISZERO/u0 1.15 1.15 +0.0% PASS
total/synth/JUMPDEST/n0 1.80 2.28 +26.9% PASS
total/synth/LT/b0 2.61 2.61 -0.0% PASS
total/synth/LT/b1 1.64 1.64 +0.0% PASS
total/synth/MSIZE/a0 4.25 4.25 +0.1% PASS
total/synth/MSIZE/a1 4.75 4.77 +0.3% PASS
total/synth/MUL/b0 5.36 5.35 -0.3% PASS
total/synth/MUL/b1 5.30 5.30 +0.0% PASS
total/synth/NOT/u0 1.68 1.69 +0.5% PASS
total/synth/OR/b0 1.64 1.64 +0.1% PASS
total/synth/OR/b1 1.71 1.71 +0.0% PASS
total/synth/PC/a0 3.26 3.26 -0.1% PASS
total/synth/PC/a1 4.11 4.11 +0.1% PASS
total/synth/PUSH1/p0 1.15 1.15 -0.0% PASS
total/synth/PUSH1/p1 1.23 1.23 -0.2% PASS
total/synth/PUSH10/p0 1.15 1.15 +0.1% PASS
total/synth/PUSH10/p1 1.29 1.29 +0.2% PASS
total/synth/PUSH11/p0 0.91 1.15 +26.6% PASS
total/synth/PUSH11/p1 1.29 1.29 +0.3% PASS
total/synth/PUSH12/p0 1.15 1.15 +0.0% PASS
total/synth/PUSH12/p1 1.29 1.29 +0.2% PASS
total/synth/PUSH13/p0 1.15 1.14 -0.4% PASS
total/synth/PUSH13/p1 1.29 1.28 -0.5% PASS
total/synth/PUSH14/p0 0.95 1.15 +21.7% PASS
total/synth/PUSH14/p1 1.30 1.30 +0.2% PASS
total/synth/PUSH15/p0 0.91 1.13 +23.5% PASS
total/synth/PUSH15/p1 1.41 1.38 -2.2% PASS
total/synth/PUSH16/p0 0.93 1.10 +18.1% PASS
total/synth/PUSH16/p1 1.29 1.29 +0.6% PASS
total/synth/PUSH17/p0 0.91 1.15 +26.6% PASS
total/synth/PUSH17/p1 1.30 1.28 -1.1% PASS
total/synth/PUSH18/p0 1.13 1.15 +1.3% PASS
total/synth/PUSH18/p1 1.29 1.29 -0.1% PASS
total/synth/PUSH19/p0 1.15 1.15 +0.1% PASS
total/synth/PUSH19/p1 1.28 1.29 +1.0% PASS
total/synth/PUSH2/p0 1.15 1.15 -0.2% PASS
total/synth/PUSH2/p1 1.24 1.24 -0.0% PASS
total/synth/PUSH20/p0 1.15 1.15 -0.0% PASS
total/synth/PUSH20/p1 1.30 1.30 -0.2% PASS
total/synth/PUSH21/p0 1.15 1.15 -0.0% PASS
total/synth/PUSH21/p1 1.29 1.29 -0.2% PASS
total/synth/PUSH22/p0 1.14 1.09 -4.3% PASS
total/synth/PUSH22/p1 1.29 1.30 +0.5% PASS
total/synth/PUSH23/p0 1.15 1.15 +0.0% PASS
total/synth/PUSH23/p1 1.30 1.31 +0.6% PASS
total/synth/PUSH24/p0 1.15 1.15 +0.1% PASS
total/synth/PUSH24/p1 1.29 1.30 +0.7% PASS
total/synth/PUSH25/p0 1.15 1.15 +0.2% PASS
total/synth/PUSH25/p1 1.30 1.31 +1.1% PASS
total/synth/PUSH26/p0 1.07 1.15 +7.5% PASS
total/synth/PUSH26/p1 1.30 1.31 +0.7% PASS
total/synth/PUSH27/p0 1.07 1.15 +7.1% PASS
total/synth/PUSH27/p1 1.30 1.30 +0.2% PASS
total/synth/PUSH28/p0 1.08 1.07 -1.2% PASS
total/synth/PUSH28/p1 1.30 1.30 -0.4% PASS
total/synth/PUSH29/p0 0.94 1.15 +22.3% PASS
total/synth/PUSH29/p1 1.30 1.32 +1.2% PASS
total/synth/PUSH3/p0 0.91 1.15 +26.5% PASS
total/synth/PUSH3/p1 1.28 1.27 -0.9% PASS
total/synth/PUSH30/p0 1.07 1.16 +8.2% PASS
total/synth/PUSH30/p1 1.31 1.33 +1.7% PASS
total/synth/PUSH31/p0 1.10 1.15 +4.8% PASS
total/synth/PUSH31/p1 1.46 1.43 -1.5% PASS
total/synth/PUSH32/p0 1.15 1.15 +0.0% PASS
total/synth/PUSH32/p1 1.30 1.31 +1.2% PASS
total/synth/PUSH4/p0 0.91 1.15 +26.3% PASS
total/synth/PUSH4/p1 1.28 1.28 +0.2% PASS
total/synth/PUSH5/p0 0.91 1.15 +26.7% PASS
total/synth/PUSH5/p1 1.28 1.28 +0.1% PASS
total/synth/PUSH6/p0 1.07 1.15 +7.5% PASS
total/synth/PUSH6/p1 1.28 1.29 +0.5% PASS
total/synth/PUSH7/p0 1.07 1.15 +7.2% PASS
total/synth/PUSH7/p1 1.28 1.28 -0.1% PASS
total/synth/PUSH8/p0 1.15 1.15 -0.2% PASS
total/synth/PUSH8/p1 1.28 1.29 +0.8% PASS
total/synth/PUSH9/p0 1.07 0.91 -14.7% PASS
total/synth/PUSH9/p1 1.28 1.30 +1.1% PASS
total/synth/RETURNDATASIZE/a0 3.83 3.83 +0.1% PASS
total/synth/RETURNDATASIZE/a1 3.84 3.85 +0.3% PASS
total/synth/SAR/b0 3.77 3.77 -0.0% PASS
total/synth/SAR/b1 4.26 4.28 +0.3% PASS
total/synth/SGT/b0 2.61 2.61 +0.0% PASS
total/synth/SGT/b1 1.64 1.64 +0.0% PASS
total/synth/SHL/b0 3.03 3.03 +0.0% PASS
total/synth/SHL/b1 1.64 1.64 +0.0% PASS
total/synth/SHR/b0 2.93 2.94 +0.0% PASS
total/synth/SHR/b1 1.52 1.52 +0.0% PASS
total/synth/SIGNEXTEND/b0 3.16 3.38 +6.9% PASS
total/synth/SIGNEXTEND/b1 3.52 3.53 +0.3% PASS
total/synth/SLT/b0 2.60 2.60 +0.0% PASS
total/synth/SLT/b1 1.72 1.72 +0.0% PASS
total/synth/SUB/b0 1.98 1.98 +0.0% PASS
total/synth/SUB/b1 1.97 1.97 +0.1% PASS
total/synth/SWAP1/s0 1.63 1.63 -0.1% PASS
total/synth/SWAP10/s0 1.65 1.65 +0.2% PASS
total/synth/SWAP11/s0 1.64 1.65 +0.1% PASS
total/synth/SWAP12/s0 1.65 1.65 +0.1% PASS
total/synth/SWAP13/s0 1.65 1.65 -0.1% PASS
total/synth/SWAP14/s0 1.65 1.65 +0.3% PASS
total/synth/SWAP15/s0 1.65 1.65 -0.0% PASS
total/synth/SWAP16/s0 1.65 1.64 -0.6% PASS
total/synth/SWAP2/s0 1.64 1.64 +0.1% PASS
total/synth/SWAP3/s0 1.64 1.49 -9.0% PASS
total/synth/SWAP4/s0 1.64 1.64 -0.2% PASS
total/synth/SWAP5/s0 1.64 1.64 -0.0% PASS
total/synth/SWAP6/s0 1.64 1.64 +0.1% PASS
total/synth/SWAP7/s0 1.64 1.64 -0.0% PASS
total/synth/SWAP8/s0 1.64 1.64 -0.1% PASS
total/synth/SWAP9/s0 1.64 1.64 +0.0% PASS
total/synth/XOR/b0 1.55 1.55 +0.1% PASS
total/synth/XOR/b1 1.55 1.55 -0.0% PASS
total/synth/loop_v1 4.44 4.44 -0.2% PASS
total/synth/loop_v2 4.43 4.44 +0.1% PASS

Summary: 194 benchmarks, 0 regressions

@github-actions

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.07 1.08 +0.4% PASS
total/main/blake2b_huff/empty 0.02 0.02 +0.9% PASS
total/main/blake2b_shifts/8415nulls 5.03 5.11 +1.6% PASS
total/main/sha1_divs/5311 0.63 0.63 +0.1% PASS
total/main/sha1_divs/empty 0.01 0.01 +1.5% PASS
total/main/sha1_shifts/5311 0.58 0.59 +1.4% PASS
total/main/sha1_shifts/empty 0.01 0.01 +0.8% PASS
total/main/snailtracer/benchmark 36.15 36.36 +0.6% PASS
total/main/structarray_alloc/nfts_rank 0.31 0.31 +1.6% PASS
total/main/swap_math/insufficient_liquidity 0.00 0.00 +1.7% PASS
total/main/swap_math/received 0.00 0.00 +1.3% PASS
total/main/swap_math/spent 0.00 0.00 -0.3% PASS
total/main/weierstrudel/1 0.26 0.26 +0.2% PASS
total/main/weierstrudel/15 3.02 3.00 -0.6% PASS
total/micro/JUMPDEST_n0/empty 0.00 0.00 +0.5% PASS
total/micro/jump_around/empty 0.03 0.03 +0.9% PASS
total/micro/loop_with_many_jumpdests/empty 0.00 0.00 +4.3% PASS
total/micro/memory_grow_mload/by1 0.01 0.01 +0.2% PASS
total/micro/memory_grow_mload/by16 0.01 0.01 -0.1% PASS
total/micro/memory_grow_mload/by32 0.01 0.01 -0.4% PASS
total/micro/memory_grow_mload/nogrow 0.01 0.01 +0.1% PASS
total/micro/memory_grow_mstore/by1 0.02 0.02 +0.5% PASS
total/micro/memory_grow_mstore/by16 0.02 0.02 -0.5% PASS
total/micro/memory_grow_mstore/by32 0.02 0.02 +0.1% PASS
total/micro/memory_grow_mstore/nogrow 0.02 0.02 +0.0% PASS
total/micro/signextend/one 0.08 0.08 -0.5% PASS
total/micro/signextend/zero 0.08 0.08 +0.1% PASS
total/synth/ADD/b0 0.00 0.00 +0.5% PASS
total/synth/ADD/b1 0.00 0.00 +0.4% PASS
total/synth/ADDRESS/a0 0.14 0.15 +3.8% PASS
total/synth/ADDRESS/a1 0.14 0.15 +4.8% PASS
total/synth/AND/b0 0.00 0.00 +0.6% PASS
total/synth/AND/b1 0.00 0.00 +1.0% PASS
total/synth/BYTE/b0 0.00 0.00 +0.4% PASS
total/synth/BYTE/b1 0.00 0.00 +0.5% PASS
total/synth/CALLDATASIZE/a0 0.07 0.07 -0.0% PASS
total/synth/CALLDATASIZE/a1 0.07 0.07 -0.0% PASS
total/synth/CALLER/a0 0.19 0.19 -2.1% PASS
total/synth/CALLER/a1 0.19 0.19 -1.9% PASS
total/synth/CALLVALUE/a0 0.30 0.30 +0.1% PASS
total/synth/CALLVALUE/a1 0.30 0.30 +0.2% PASS
total/synth/CODESIZE/a0 0.07 0.07 +0.0% PASS
total/synth/CODESIZE/a1 0.07 0.07 -0.0% PASS
total/synth/DUP1/d0 0.00 0.00 +0.3% PASS
total/synth/DUP1/d1 0.00 0.00 +0.4% PASS
total/synth/DUP10/d0 0.00 0.00 +1.0% PASS
total/synth/DUP10/d1 0.00 0.00 +0.6% PASS
total/synth/DUP11/d0 0.00 0.00 +0.4% PASS
total/synth/DUP11/d1 0.00 0.00 +0.6% PASS
total/synth/DUP12/d0 0.00 0.00 +0.3% PASS
total/synth/DUP12/d1 0.00 0.00 +0.6% PASS
total/synth/DUP13/d0 0.00 0.00 +0.5% PASS
total/synth/DUP13/d1 0.00 0.00 +0.8% PASS
total/synth/DUP14/d0 0.00 0.00 +0.5% PASS
total/synth/DUP14/d1 0.00 0.00 +0.5% PASS
total/synth/DUP15/d0 0.00 0.00 +0.6% PASS
total/synth/DUP15/d1 0.00 0.00 +0.7% PASS
total/synth/DUP16/d0 0.00 0.00 +0.4% PASS
total/synth/DUP16/d1 0.00 0.00 +0.8% PASS
total/synth/DUP2/d0 0.00 0.00 -0.2% PASS
total/synth/DUP2/d1 0.00 0.00 +0.6% PASS
total/synth/DUP3/d0 0.00 0.00 +0.5% PASS
total/synth/DUP3/d1 0.00 0.00 +0.9% PASS
total/synth/DUP4/d0 0.00 0.00 +0.9% PASS
total/synth/DUP4/d1 0.00 0.00 +0.9% PASS
total/synth/DUP5/d0 0.00 0.00 +0.2% PASS
total/synth/DUP5/d1 0.00 0.00 +0.5% PASS
total/synth/DUP6/d0 0.00 0.00 +0.6% PASS
total/synth/DUP6/d1 0.00 0.00 +0.5% PASS
total/synth/DUP7/d0 0.00 0.00 +0.1% PASS
total/synth/DUP7/d1 0.00 0.00 +0.3% PASS
total/synth/DUP8/d0 0.00 0.00 +1.0% PASS
total/synth/DUP8/d1 0.00 0.00 +0.7% PASS
total/synth/DUP9/d0 0.00 0.00 +0.3% PASS
total/synth/DUP9/d1 0.00 0.00 -0.0% PASS
total/synth/EQ/b0 0.00 0.00 +0.8% PASS
total/synth/EQ/b1 0.00 0.00 -0.1% PASS
total/synth/GAS/a0 0.86 0.86 +0.1% PASS
total/synth/GAS/a1 0.86 0.86 -0.0% PASS
total/synth/GT/b0 0.00 0.00 +0.9% PASS
total/synth/GT/b1 0.00 0.00 -0.0% PASS
total/synth/ISZERO/u0 0.00 0.00 +0.1% PASS
total/synth/JUMPDEST/n0 0.00 0.00 +0.3% PASS
total/synth/LT/b0 0.00 0.00 +0.6% PASS
total/synth/LT/b1 0.00 0.00 +0.4% PASS
total/synth/MSIZE/a0 0.00 0.00 +0.3% PASS
total/synth/MSIZE/a1 0.00 0.00 +0.3% PASS
total/synth/MUL/b0 0.00 0.00 +0.7% PASS
total/synth/MUL/b1 0.00 0.00 +0.6% PASS
total/synth/NOT/u0 0.00 0.00 +0.6% PASS
total/synth/OR/b0 0.00 0.00 +0.7% PASS
total/synth/OR/b1 0.00 0.00 +0.3% PASS
total/synth/PC/a0 0.00 0.00 +0.6% PASS
total/synth/PC/a1 0.00 0.00 +0.5% PASS
total/synth/PUSH1/p0 0.00 0.00 +0.6% PASS
total/synth/PUSH1/p1 0.00 0.00 +0.2% PASS
total/synth/PUSH10/p0 0.00 0.00 +0.6% PASS
total/synth/PUSH10/p1 0.00 0.00 +0.5% PASS
total/synth/PUSH11/p0 0.00 0.00 +0.5% PASS
total/synth/PUSH11/p1 0.00 0.00 +0.7% PASS
total/synth/PUSH12/p0 0.00 0.00 +0.8% PASS
total/synth/PUSH12/p1 0.00 0.00 +0.4% PASS
total/synth/PUSH13/p0 0.00 0.00 +0.6% PASS
total/synth/PUSH13/p1 0.00 0.00 +0.6% PASS
total/synth/PUSH14/p0 0.00 0.00 +0.7% PASS
total/synth/PUSH14/p1 0.00 0.00 +0.6% PASS
total/synth/PUSH15/p0 0.00 0.00 +0.5% PASS
total/synth/PUSH15/p1 0.00 0.00 +0.6% PASS
total/synth/PUSH16/p0 0.00 0.00 +0.6% PASS
total/synth/PUSH16/p1 0.00 0.00 +0.6% PASS
total/synth/PUSH17/p0 0.00 0.00 +0.6% PASS
total/synth/PUSH17/p1 0.00 0.00 +0.1% PASS
total/synth/PUSH18/p0 0.00 0.00 +0.9% PASS
total/synth/PUSH18/p1 0.00 0.00 +0.7% PASS
total/synth/PUSH19/p0 0.00 0.00 +0.8% PASS
total/synth/PUSH19/p1 0.00 0.00 +0.6% PASS
total/synth/PUSH2/p0 0.00 0.00 +0.1% PASS
total/synth/PUSH2/p1 0.00 0.00 +0.9% PASS
total/synth/PUSH20/p0 0.00 0.00 +0.5% PASS
total/synth/PUSH20/p1 0.00 0.00 +0.6% PASS
total/synth/PUSH21/p0 0.00 0.00 +0.9% PASS
total/synth/PUSH21/p1 0.00 0.00 +0.5% PASS
total/synth/PUSH22/p0 0.88 0.88 +0.2% PASS
total/synth/PUSH22/p1 1.13 1.11 -1.9% PASS
total/synth/PUSH23/p0 0.88 0.89 +0.8% PASS
total/synth/PUSH23/p1 1.11 1.11 -0.4% PASS
total/synth/PUSH24/p0 0.88 0.89 +0.3% PASS
total/synth/PUSH24/p1 1.12 1.12 +0.3% PASS
total/synth/PUSH25/p0 0.89 0.88 -1.3% PASS
total/synth/PUSH25/p1 1.12 1.12 +0.1% PASS
total/synth/PUSH26/p0 0.88 0.88 +0.2% PASS
total/synth/PUSH26/p1 1.13 1.13 -0.4% PASS
total/synth/PUSH27/p0 0.89 0.89 -0.4% PASS
total/synth/PUSH27/p1 1.12 1.14 +2.2% PASS
total/synth/PUSH28/p0 0.89 0.88 -0.2% PASS
total/synth/PUSH28/p1 1.13 1.12 -1.2% PASS
total/synth/PUSH29/p0 0.89 0.90 +0.3% PASS
total/synth/PUSH29/p1 1.12 1.15 +2.6% PASS
total/synth/PUSH3/p0 0.00 0.00 +0.6% PASS
total/synth/PUSH3/p1 0.00 0.00 +0.5% PASS
total/synth/PUSH30/p0 0.96 0.96 +0.3% PASS
total/synth/PUSH30/p1 1.13 1.13 -0.1% PASS
total/synth/PUSH31/p0 0.90 0.89 -1.4% PASS
total/synth/PUSH31/p1 1.20 1.19 -0.9% PASS
total/synth/PUSH32/p0 0.88 0.88 +0.1% PASS
total/synth/PUSH32/p1 1.13 1.13 +0.5% PASS
total/synth/PUSH4/p0 0.00 0.00 +0.7% PASS
total/synth/PUSH4/p1 0.00 0.00 +0.5% PASS
total/synth/PUSH5/p0 0.00 0.00 +0.7% PASS
total/synth/PUSH5/p1 0.00 0.00 +0.6% PASS
total/synth/PUSH6/p0 0.00 0.00 +0.5% PASS
total/synth/PUSH6/p1 0.00 0.00 +0.6% PASS
total/synth/PUSH7/p0 0.00 0.00 +0.6% PASS
total/synth/PUSH7/p1 0.00 0.00 +0.8% PASS
total/synth/PUSH8/p0 0.00 0.00 +0.4% PASS
total/synth/PUSH8/p1 0.00 0.00 +0.4% PASS
total/synth/PUSH9/p0 0.00 0.00 +0.6% PASS
total/synth/PUSH9/p1 0.00 0.00 +0.5% PASS
total/synth/RETURNDATASIZE/a0 0.03 0.03 -0.1% PASS
total/synth/RETURNDATASIZE/a1 0.03 0.03 -0.1% PASS
total/synth/SAR/b0 6.44 6.50 +1.0% PASS
total/synth/SAR/b1 7.71 7.72 +0.2% PASS
total/synth/SGT/b0 0.00 0.00 +0.5% PASS
total/synth/SGT/b1 0.00 0.00 +0.2% PASS
total/synth/SHL/b0 13.91 14.40 +3.5% PASS
total/synth/SHL/b1 17.83 17.85 +0.1% PASS
total/synth/SHR/b0 12.78 12.78 +0.0% PASS
total/synth/SHR/b1 21.54 21.49 -0.2% PASS
total/synth/SIGNEXTEND/b0 0.00 0.00 +0.4% PASS
total/synth/SIGNEXTEND/b1 0.00 0.00 +0.4% PASS
total/synth/SLT/b0 0.00 0.00 +0.4% PASS
total/synth/SLT/b1 0.00 0.00 +0.7% PASS
total/synth/SUB/b0 0.00 0.00 +0.4% PASS
total/synth/SUB/b1 0.00 0.00 +0.4% PASS
total/synth/SWAP1/s0 0.00 0.00 +0.2% PASS
total/synth/SWAP10/s0 0.00 0.00 +0.2% PASS
total/synth/SWAP11/s0 0.00 0.00 +0.4% PASS
total/synth/SWAP12/s0 0.00 0.00 +0.7% PASS
total/synth/SWAP13/s0 0.00 0.00 +0.8% PASS
total/synth/SWAP14/s0 0.00 0.00 +0.7% PASS
total/synth/SWAP15/s0 0.00 0.00 +0.4% PASS
total/synth/SWAP16/s0 0.00 0.00 +0.2% PASS
total/synth/SWAP2/s0 0.00 0.00 +0.3% PASS
total/synth/SWAP3/s0 0.00 0.00 +0.2% PASS
total/synth/SWAP4/s0 0.00 0.00 +0.4% PASS
total/synth/SWAP5/s0 0.00 0.00 +0.5% PASS
total/synth/SWAP6/s0 0.00 0.00 +0.6% PASS
total/synth/SWAP7/s0 0.00 0.00 +0.1% PASS
total/synth/SWAP8/s0 0.00 0.00 +0.9% PASS
total/synth/SWAP9/s0 0.00 0.00 +0.7% PASS
total/synth/XOR/b0 0.00 0.00 +0.6% PASS
total/synth/XOR/b1 0.00 0.00 +0.4% PASS
total/synth/loop_v1 1.20 1.20 -0.4% PASS
total/synth/loop_v2 1.11 1.12 +0.8% PASS

Summary: 194 benchmarks, 0 regressions

@github-actions

github-actions Bot commented May 11, 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 1.52 1.54 +1.0% PASS
total/main/blake2b_huff/empty 0.02 0.02 +1.6% PASS
total/main/blake2b_shifts/8415nulls 11.85 11.71 -1.2% PASS
total/main/sha1_divs/5311 5.09 5.10 +0.0% PASS
total/main/sha1_divs/empty 0.06 0.06 -0.4% PASS
total/main/sha1_shifts/5311 2.84 2.83 -0.3% PASS
total/main/sha1_shifts/empty 0.03 0.04 +2.8% PASS
total/main/snailtracer/benchmark 52.70 53.06 +0.7% PASS
total/main/structarray_alloc/nfts_rank 0.97 1.03 +6.1% PASS
total/main/swap_math/insufficient_liquidity 0.00 0.00 +0.4% PASS
total/main/swap_math/received 0.00 0.00 -0.5% PASS
total/main/swap_math/spent 0.00 0.00 -0.4% PASS
total/main/weierstrudel/1 0.29 0.29 -0.1% PASS
total/main/weierstrudel/15 3.15 3.17 +0.7% PASS
total/micro/JUMPDEST_n0/empty 1.80 2.28 +27.0% PASS
total/micro/jump_around/empty 0.10 0.10 +0.9% PASS
total/micro/loop_with_many_jumpdests/empty 27.44 27.45 +0.0% PASS
total/micro/memory_grow_mload/by1 0.09 0.09 +0.1% PASS
total/micro/memory_grow_mload/by16 0.10 0.10 -3.9% PASS
total/micro/memory_grow_mload/by32 0.11 0.11 -0.1% PASS
total/micro/memory_grow_mload/nogrow 0.09 0.09 -2.6% PASS
total/micro/memory_grow_mstore/by1 0.09 0.09 +2.3% PASS
total/micro/memory_grow_mstore/by16 0.10 0.10 -0.5% PASS
total/micro/memory_grow_mstore/by32 0.12 0.12 -0.5% PASS
total/micro/memory_grow_mstore/nogrow 0.09 0.09 +0.0% PASS
total/micro/signextend/one 0.23 0.23 +0.3% PASS
total/micro/signextend/zero 0.23 0.23 +0.3% PASS
total/synth/ADD/b0 1.95 1.98 +1.4% PASS
total/synth/ADD/b1 1.97 1.97 +0.0% PASS
total/synth/ADDRESS/a0 4.88 4.88 +0.1% PASS
total/synth/ADDRESS/a1 5.34 5.33 -0.2% PASS
total/synth/AND/b0 1.71 1.71 -0.0% PASS
total/synth/AND/b1 1.71 1.71 +0.0% PASS
total/synth/BYTE/b0 6.15 6.13 -0.2% PASS
total/synth/BYTE/b1 4.77 4.77 +0.1% PASS
total/synth/CALLDATASIZE/a0 3.50 3.50 +0.1% PASS
total/synth/CALLDATASIZE/a1 3.51 3.68 +4.8% PASS
total/synth/CALLER/a0 4.97 4.98 +0.1% PASS
total/synth/CALLER/a1 5.34 5.32 -0.3% PASS
total/synth/CALLVALUE/a0 3.50 3.51 +0.1% PASS
total/synth/CALLVALUE/a1 3.52 3.53 +0.3% PASS
total/synth/CODESIZE/a0 3.83 3.83 +0.0% PASS
total/synth/CODESIZE/a1 3.84 3.85 +0.4% PASS
total/synth/DUP1/d0 0.91 1.22 +34.6% PASS
total/synth/DUP1/d1 1.31 1.31 +0.0% PASS
total/synth/DUP10/d0 1.14 1.14 -0.1% PASS
total/synth/DUP10/d1 1.23 1.23 +0.0% PASS
total/synth/DUP11/d0 1.14 1.15 +0.2% PASS
total/synth/DUP11/d1 1.02 1.00 -1.0% PASS
total/synth/DUP12/d0 1.14 1.17 +2.6% PASS
total/synth/DUP12/d1 1.04 1.00 -3.9% PASS
total/synth/DUP13/d0 1.23 0.99 -19.4% PASS
total/synth/DUP13/d1 1.18 1.23 +4.6% PASS
total/synth/DUP14/d0 1.15 0.91 -20.9% PASS
total/synth/DUP14/d1 1.23 1.01 -17.9% PASS
total/synth/DUP15/d0 1.15 1.14 -0.5% PASS
total/synth/DUP15/d1 1.00 1.23 +22.9% PASS
total/synth/DUP16/d0 0.91 0.99 +9.0% PASS
total/synth/DUP16/d1 1.00 1.03 +2.3% PASS
total/synth/DUP2/d0 1.14 1.14 +0.1% PASS
total/synth/DUP2/d1 1.02 1.02 +0.0% PASS
total/synth/DUP3/d0 1.15 0.90 -21.5% PASS
total/synth/DUP3/d1 1.00 1.02 +1.9% PASS
total/synth/DUP4/d0 1.14 0.98 -14.0% PASS
total/synth/DUP4/d1 1.09 1.00 -8.1% PASS
total/synth/DUP5/d0 1.14 1.14 -0.0% PASS
total/synth/DUP5/d1 1.00 1.23 +22.8% PASS
total/synth/DUP6/d0 1.15 0.99 -14.0% PASS
total/synth/DUP6/d1 1.23 1.23 -0.1% PASS
total/synth/DUP7/d0 1.19 1.15 -3.9% PASS
total/synth/DUP7/d1 1.15 1.23 +7.0% PASS
total/synth/DUP8/d0 1.15 1.15 -0.3% PASS
total/synth/DUP8/d1 1.03 1.23 +19.1% PASS
total/synth/DUP9/d0 1.15 1.14 -0.2% PASS
total/synth/DUP9/d1 1.01 1.23 +22.3% PASS
total/synth/EQ/b0 2.76 2.76 -0.0% PASS
total/synth/EQ/b1 1.34 1.33 -0.0% PASS
total/synth/GAS/a0 3.91 3.92 +0.1% PASS
total/synth/GAS/a1 3.92 3.94 +0.3% PASS
total/synth/GT/b0 2.59 2.60 +0.1% PASS
total/synth/GT/b1 1.64 1.64 +0.1% PASS
total/synth/ISZERO/u0 1.15 1.15 +0.0% PASS
total/synth/JUMPDEST/n0 1.80 2.28 +26.9% PASS
total/synth/LT/b0 2.61 2.61 -0.0% PASS
total/synth/LT/b1 1.64 1.64 +0.0% PASS
total/synth/MSIZE/a0 4.25 4.25 +0.1% PASS
total/synth/MSIZE/a1 4.75 4.77 +0.3% PASS
total/synth/MUL/b0 5.36 5.35 -0.3% PASS
total/synth/MUL/b1 5.30 5.30 +0.0% PASS
total/synth/NOT/u0 1.68 1.69 +0.5% PASS
total/synth/OR/b0 1.64 1.64 +0.1% PASS
total/synth/OR/b1 1.71 1.71 +0.0% PASS
total/synth/PC/a0 3.26 3.26 -0.1% PASS
total/synth/PC/a1 4.11 4.11 +0.1% PASS
total/synth/PUSH1/p0 1.15 1.15 -0.0% PASS
total/synth/PUSH1/p1 1.23 1.23 -0.2% PASS
total/synth/PUSH10/p0 1.15 1.15 +0.1% PASS
total/synth/PUSH10/p1 1.29 1.29 +0.2% PASS
total/synth/PUSH11/p0 0.91 1.15 +26.6% PASS
total/synth/PUSH11/p1 1.29 1.29 +0.3% PASS
total/synth/PUSH12/p0 1.15 1.15 +0.0% PASS
total/synth/PUSH12/p1 1.29 1.29 +0.2% PASS
total/synth/PUSH13/p0 1.15 1.14 -0.4% PASS
total/synth/PUSH13/p1 1.29 1.28 -0.5% PASS
total/synth/PUSH14/p0 0.95 1.15 +21.7% PASS
total/synth/PUSH14/p1 1.30 1.30 +0.2% PASS
total/synth/PUSH15/p0 0.91 1.13 +23.5% PASS
total/synth/PUSH15/p1 1.41 1.38 -2.2% PASS
total/synth/PUSH16/p0 0.93 1.10 +18.1% PASS
total/synth/PUSH16/p1 1.29 1.29 +0.6% PASS
total/synth/PUSH17/p0 0.91 1.15 +26.6% PASS
total/synth/PUSH17/p1 1.30 1.28 -1.1% PASS
total/synth/PUSH18/p0 1.13 1.15 +1.3% PASS
total/synth/PUSH18/p1 1.29 1.29 -0.1% PASS
total/synth/PUSH19/p0 1.15 1.15 +0.1% PASS
total/synth/PUSH19/p1 1.28 1.29 +1.0% PASS
total/synth/PUSH2/p0 1.15 1.15 -0.2% PASS
total/synth/PUSH2/p1 1.24 1.24 -0.0% PASS
total/synth/PUSH20/p0 1.15 1.15 -0.0% PASS
total/synth/PUSH20/p1 1.30 1.30 -0.2% PASS
total/synth/PUSH21/p0 1.15 1.15 -0.0% PASS
total/synth/PUSH21/p1 1.29 1.29 -0.2% PASS
total/synth/PUSH22/p0 1.14 1.09 -4.3% PASS
total/synth/PUSH22/p1 1.29 1.30 +0.5% PASS
total/synth/PUSH23/p0 1.15 1.15 +0.0% PASS
total/synth/PUSH23/p1 1.30 1.31 +0.6% PASS
total/synth/PUSH24/p0 1.15 1.15 +0.1% PASS
total/synth/PUSH24/p1 1.29 1.30 +0.7% PASS
total/synth/PUSH25/p0 1.15 1.15 +0.2% PASS
total/synth/PUSH25/p1 1.30 1.31 +1.1% PASS
total/synth/PUSH26/p0 1.07 1.15 +7.5% PASS
total/synth/PUSH26/p1 1.30 1.31 +0.7% PASS
total/synth/PUSH27/p0 1.07 1.15 +7.1% PASS
total/synth/PUSH27/p1 1.30 1.30 +0.2% PASS
total/synth/PUSH28/p0 1.08 1.07 -1.2% PASS
total/synth/PUSH28/p1 1.30 1.30 -0.4% PASS
total/synth/PUSH29/p0 0.94 1.15 +22.3% PASS
total/synth/PUSH29/p1 1.30 1.32 +1.2% PASS
total/synth/PUSH3/p0 0.91 1.15 +26.5% PASS
total/synth/PUSH3/p1 1.28 1.27 -0.9% PASS
total/synth/PUSH30/p0 1.07 1.16 +8.2% PASS
total/synth/PUSH30/p1 1.31 1.33 +1.7% PASS
total/synth/PUSH31/p0 1.10 1.15 +4.8% PASS
total/synth/PUSH31/p1 1.46 1.43 -1.5% PASS
total/synth/PUSH32/p0 1.15 1.15 +0.0% PASS
total/synth/PUSH32/p1 1.30 1.31 +1.2% PASS
total/synth/PUSH4/p0 0.91 1.15 +26.3% PASS
total/synth/PUSH4/p1 1.28 1.28 +0.2% PASS
total/synth/PUSH5/p0 0.91 1.15 +26.7% PASS
total/synth/PUSH5/p1 1.28 1.28 +0.1% PASS
total/synth/PUSH6/p0 1.07 1.15 +7.5% PASS
total/synth/PUSH6/p1 1.28 1.29 +0.5% PASS
total/synth/PUSH7/p0 1.07 1.15 +7.2% PASS
total/synth/PUSH7/p1 1.28 1.28 -0.1% PASS
total/synth/PUSH8/p0 1.15 1.15 -0.2% PASS
total/synth/PUSH8/p1 1.28 1.29 +0.8% PASS
total/synth/PUSH9/p0 1.07 0.91 -14.7% PASS
total/synth/PUSH9/p1 1.28 1.30 +1.1% PASS
total/synth/RETURNDATASIZE/a0 3.83 3.83 +0.1% PASS
total/synth/RETURNDATASIZE/a1 3.84 3.85 +0.3% PASS
total/synth/SAR/b0 3.77 3.77 -0.0% PASS
total/synth/SAR/b1 4.26 4.28 +0.3% PASS
total/synth/SGT/b0 2.61 2.61 +0.0% PASS
total/synth/SGT/b1 1.64 1.64 +0.0% PASS
total/synth/SHL/b0 3.03 3.03 +0.0% PASS
total/synth/SHL/b1 1.64 1.64 +0.0% PASS
total/synth/SHR/b0 2.93 2.94 +0.0% PASS
total/synth/SHR/b1 1.52 1.52 +0.0% PASS
total/synth/SIGNEXTEND/b0 3.16 3.38 +6.9% PASS
total/synth/SIGNEXTEND/b1 3.52 3.53 +0.3% PASS
total/synth/SLT/b0 2.60 2.60 +0.0% PASS
total/synth/SLT/b1 1.72 1.72 +0.0% PASS
total/synth/SUB/b0 1.98 1.98 +0.0% PASS
total/synth/SUB/b1 1.97 1.97 +0.1% PASS
total/synth/SWAP1/s0 1.63 1.63 -0.1% PASS
total/synth/SWAP10/s0 1.65 1.65 +0.2% PASS
total/synth/SWAP11/s0 1.64 1.65 +0.1% PASS
total/synth/SWAP12/s0 1.65 1.65 +0.1% PASS
total/synth/SWAP13/s0 1.65 1.65 -0.1% PASS
total/synth/SWAP14/s0 1.65 1.65 +0.3% PASS
total/synth/SWAP15/s0 1.65 1.65 -0.0% PASS
total/synth/SWAP16/s0 1.65 1.64 -0.6% PASS
total/synth/SWAP2/s0 1.64 1.64 +0.1% PASS
total/synth/SWAP3/s0 1.64 1.49 -9.0% PASS
total/synth/SWAP4/s0 1.64 1.64 -0.2% PASS
total/synth/SWAP5/s0 1.64 1.64 -0.0% PASS
total/synth/SWAP6/s0 1.64 1.64 +0.1% PASS
total/synth/SWAP7/s0 1.64 1.64 -0.0% PASS
total/synth/SWAP8/s0 1.64 1.64 -0.1% PASS
total/synth/SWAP9/s0 1.64 1.64 +0.0% PASS
total/synth/XOR/b0 1.55 1.55 +0.1% PASS
total/synth/XOR/b1 1.55 1.55 -0.0% PASS
total/synth/loop_v1 4.44 4.44 -0.2% PASS
total/synth/loop_v2 4.43 4.44 +0.1% 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 0.84 0.84 +0.1% PASS
total/main/blake2b_huff/empty 0.01 0.01 +0.7% PASS
total/main/blake2b_shifts/8415nulls 4.51 4.52 +0.2% PASS
total/main/sha1_divs/5311 0.59 0.58 -0.6% PASS
total/main/sha1_divs/empty 0.01 0.01 -0.4% PASS
total/main/sha1_shifts/5311 0.55 0.55 -0.2% PASS
total/main/sha1_shifts/empty 0.01 0.01 -0.4% PASS
total/main/snailtracer/benchmark 31.35 31.46 +0.4% PASS
total/main/structarray_alloc/nfts_rank 0.30 0.30 +0.4% PASS
total/main/swap_math/insufficient_liquidity 0.00 0.00 +1.2% PASS
total/main/swap_math/received 0.00 0.00 -0.3% PASS
total/main/swap_math/spent 0.00 0.00 +0.2% PASS
total/main/weierstrudel/1 0.24 0.24 -0.1% PASS
total/main/weierstrudel/15 2.62 2.60 -0.6% PASS
total/micro/JUMPDEST_n0/empty 0.00 0.00 +0.2% PASS
total/micro/jump_around/empty 0.05 0.05 -4.3% PASS
total/micro/loop_with_many_jumpdests/empty 0.00 0.00 -0.1% PASS
total/micro/memory_grow_mload/by1 0.01 0.01 -0.8% PASS
total/micro/memory_grow_mload/by16 0.01 0.01 -0.7% PASS
total/micro/memory_grow_mload/by32 0.01 0.01 -2.9% PASS
total/micro/memory_grow_mload/nogrow 0.01 0.01 +0.5% PASS
total/micro/memory_grow_mstore/by1 0.01 0.01 -0.6% PASS
total/micro/memory_grow_mstore/by16 0.01 0.01 +0.1% PASS
total/micro/memory_grow_mstore/by32 0.02 0.02 -0.7% PASS
total/micro/memory_grow_mstore/nogrow 0.01 0.01 -0.9% PASS
total/micro/signextend/one 0.07 0.07 -0.3% PASS
total/micro/signextend/zero 0.07 0.07 +0.1% PASS
total/synth/ADD/b0 0.00 0.00 -1.0% PASS
total/synth/ADD/b1 0.00 0.00 -1.1% PASS
total/synth/ADDRESS/a0 0.15 0.15 +0.0% PASS
total/synth/ADDRESS/a1 0.15 0.15 -0.0% PASS
total/synth/AND/b0 0.00 0.00 -0.8% PASS
total/synth/AND/b1 0.00 0.00 -1.3% PASS
total/synth/BYTE/b0 0.00 0.00 -1.2% PASS
total/synth/BYTE/b1 0.00 0.00 -0.9% PASS
total/synth/CALLDATASIZE/a0 0.07 0.07 -0.0% PASS
total/synth/CALLDATASIZE/a1 0.07 0.07 +0.0% PASS
total/synth/CALLER/a0 0.18 0.18 -0.0% PASS
total/synth/CALLER/a1 0.18 0.18 -0.1% PASS
total/synth/CALLVALUE/a0 0.26 0.26 +0.3% PASS
total/synth/CALLVALUE/a1 0.26 0.26 +0.1% PASS
total/synth/CODESIZE/a0 0.07 0.07 -0.0% PASS
total/synth/CODESIZE/a1 0.07 0.07 +0.0% PASS
total/synth/DUP1/d0 0.00 0.00 -0.9% PASS
total/synth/DUP1/d1 0.00 0.00 -1.1% PASS
total/synth/DUP10/d0 0.00 0.00 -1.0% PASS
total/synth/DUP10/d1 0.00 0.00 -1.3% PASS
total/synth/DUP11/d0 0.00 0.00 -0.9% PASS
total/synth/DUP11/d1 0.00 0.00 -1.0% PASS
total/synth/DUP12/d0 0.00 0.00 -0.8% PASS
total/synth/DUP12/d1 0.00 0.00 -1.0% PASS
total/synth/DUP13/d0 0.00 0.00 -0.7% PASS
total/synth/DUP13/d1 0.00 0.00 -0.8% PASS
total/synth/DUP14/d0 0.00 0.00 -0.9% PASS
total/synth/DUP14/d1 0.00 0.00 -0.7% PASS
total/synth/DUP15/d0 0.00 0.00 -1.0% PASS
total/synth/DUP15/d1 0.00 0.00 -1.1% PASS
total/synth/DUP16/d0 0.00 0.00 -1.2% PASS
total/synth/DUP16/d1 0.00 0.00 -1.0% PASS
total/synth/DUP2/d0 0.00 0.00 -1.0% PASS
total/synth/DUP2/d1 0.00 0.00 -1.1% PASS
total/synth/DUP3/d0 0.00 0.00 -1.0% PASS
total/synth/DUP3/d1 0.00 0.00 -1.3% PASS
total/synth/DUP4/d0 0.00 0.00 -1.1% PASS
total/synth/DUP4/d1 0.00 0.00 -0.8% PASS
total/synth/DUP5/d0 0.00 0.00 -0.7% PASS
total/synth/DUP5/d1 0.00 0.00 -0.9% PASS
total/synth/DUP6/d0 0.00 0.00 -1.3% PASS
total/synth/DUP6/d1 0.00 0.00 -1.0% PASS
total/synth/DUP7/d0 0.00 0.00 -1.1% PASS
total/synth/DUP7/d1 0.00 0.00 -1.0% PASS
total/synth/DUP8/d0 0.00 0.00 -0.7% PASS
total/synth/DUP8/d1 0.00 0.00 -1.1% PASS
total/synth/DUP9/d0 0.00 0.00 -1.2% PASS
total/synth/DUP9/d1 0.00 0.00 -0.8% PASS
total/synth/EQ/b0 0.00 0.00 -1.0% PASS
total/synth/EQ/b1 0.00 0.00 -1.1% PASS
total/synth/GAS/a0 0.76 0.76 -0.0% PASS
total/synth/GAS/a1 0.76 0.76 +0.0% PASS
total/synth/GT/b0 0.00 0.00 -1.0% PASS
total/synth/GT/b1 0.00 0.00 -0.8% PASS
total/synth/ISZERO/u0 0.00 0.00 -1.0% PASS
total/synth/JUMPDEST/n0 0.00 0.00 +0.2% PASS
total/synth/LT/b0 0.00 0.00 -1.3% PASS
total/synth/LT/b1 0.00 0.00 -1.2% PASS
total/synth/MSIZE/a0 0.00 0.00 -0.8% PASS
total/synth/MSIZE/a1 0.00 0.00 -1.2% PASS
total/synth/MUL/b0 0.00 0.00 -0.9% PASS
total/synth/MUL/b1 0.00 0.00 -1.1% PASS
total/synth/NOT/u0 0.00 0.00 -0.8% PASS
total/synth/OR/b0 0.00 0.00 -1.3% PASS
total/synth/OR/b1 0.00 0.00 -0.8% PASS
total/synth/PC/a0 0.00 0.00 -1.2% PASS
total/synth/PC/a1 0.00 0.00 -0.8% PASS
total/synth/PUSH1/p0 0.00 0.00 -0.9% PASS
total/synth/PUSH1/p1 0.00 0.00 -0.9% PASS
total/synth/PUSH10/p0 0.00 0.00 -1.1% PASS
total/synth/PUSH10/p1 0.00 0.00 -1.2% PASS
total/synth/PUSH11/p0 0.00 0.00 -1.3% PASS
total/synth/PUSH11/p1 0.00 0.00 -0.9% PASS
total/synth/PUSH12/p0 0.00 0.00 -1.4% PASS
total/synth/PUSH12/p1 0.00 0.00 -0.9% PASS
total/synth/PUSH13/p0 0.00 0.00 -1.4% PASS
total/synth/PUSH13/p1 0.00 0.00 -1.0% PASS
total/synth/PUSH14/p0 0.00 0.00 -1.4% PASS
total/synth/PUSH14/p1 0.00 0.00 -0.8% PASS
total/synth/PUSH15/p0 0.00 0.00 -1.3% PASS
total/synth/PUSH15/p1 0.00 0.00 -1.0% PASS
total/synth/PUSH16/p0 0.00 0.00 -1.3% PASS
total/synth/PUSH16/p1 0.00 0.00 -1.0% PASS
total/synth/PUSH17/p0 0.00 0.00 -1.0% PASS
total/synth/PUSH17/p1 0.00 0.00 -1.8% PASS
total/synth/PUSH18/p0 0.00 0.00 -0.8% PASS
total/synth/PUSH18/p1 0.00 0.00 -1.0% PASS
total/synth/PUSH19/p0 0.00 0.00 -1.0% PASS
total/synth/PUSH19/p1 0.00 0.00 -1.2% PASS
total/synth/PUSH2/p0 0.00 0.00 -0.9% PASS
total/synth/PUSH2/p1 0.00 0.00 -1.0% PASS
total/synth/PUSH20/p0 0.00 0.00 -1.1% PASS
total/synth/PUSH20/p1 0.00 0.00 -1.0% PASS
total/synth/PUSH21/p0 0.00 0.00 -1.3% PASS
total/synth/PUSH21/p1 0.00 0.00 -0.9% PASS
total/synth/PUSH22/p0 1.09 1.07 -1.7% PASS
total/synth/PUSH22/p1 1.30 1.30 -0.3% PASS
total/synth/PUSH23/p0 1.07 1.07 -0.1% PASS
total/synth/PUSH23/p1 1.29 1.32 +1.9% PASS
total/synth/PUSH24/p0 1.07 1.07 -0.1% PASS
total/synth/PUSH24/p1 1.29 1.29 -0.0% PASS
total/synth/PUSH25/p0 1.07 1.07 -0.1% PASS
total/synth/PUSH25/p1 1.29 1.30 +0.5% PASS
total/synth/PUSH26/p0 0.90 0.83 -8.6% PASS
total/synth/PUSH26/p1 1.30 1.30 +0.1% PASS
total/synth/PUSH27/p0 1.07 1.07 -0.1% PASS
total/synth/PUSH27/p1 1.31 1.30 -0.7% PASS
total/synth/PUSH28/p0 1.07 1.15 +7.4% PASS
total/synth/PUSH28/p1 1.31 1.30 -0.4% PASS
total/synth/PUSH29/p0 1.07 1.07 -0.0% PASS
total/synth/PUSH29/p1 1.30 1.31 +0.7% PASS
total/synth/PUSH3/p0 0.00 0.00 -0.8% PASS
total/synth/PUSH3/p1 0.00 0.00 -1.1% PASS
total/synth/PUSH30/p0 1.16 1.18 +1.4% PASS
total/synth/PUSH30/p1 1.31 1.31 -0.1% PASS
total/synth/PUSH31/p0 1.07 1.07 -0.4% PASS
total/synth/PUSH31/p1 1.40 1.39 -0.4% PASS
total/synth/PUSH32/p0 1.07 1.07 -0.1% PASS
total/synth/PUSH32/p1 1.31 1.31 +0.1% PASS
total/synth/PUSH4/p0 0.00 0.00 -1.3% PASS
total/synth/PUSH4/p1 0.00 0.00 -1.0% PASS
total/synth/PUSH5/p0 0.00 0.00 -1.1% PASS
total/synth/PUSH5/p1 0.00 0.00 -1.1% PASS
total/synth/PUSH6/p0 0.00 0.00 -1.0% PASS
total/synth/PUSH6/p1 0.00 0.00 -1.0% PASS
total/synth/PUSH7/p0 0.00 0.00 -1.2% PASS
total/synth/PUSH7/p1 0.00 0.00 -1.2% PASS
total/synth/PUSH8/p0 0.00 0.00 -0.9% PASS
total/synth/PUSH8/p1 0.00 0.00 -0.8% PASS
total/synth/PUSH9/p0 0.00 0.00 -1.3% PASS
total/synth/PUSH9/p1 0.00 0.00 -0.7% PASS
total/synth/RETURNDATASIZE/a0 0.03 0.03 +0.1% PASS
total/synth/RETURNDATASIZE/a1 0.03 0.03 -0.2% PASS
total/synth/SAR/b0 5.80 5.82 +0.4% PASS
total/synth/SAR/b1 6.51 6.54 +0.4% PASS
total/synth/SGT/b0 0.00 0.00 -1.1% PASS
total/synth/SGT/b1 0.00 0.00 -0.9% PASS
total/synth/SHL/b0 11.76 11.70 -0.5% PASS
total/synth/SHL/b1 11.79 11.76 -0.3% PASS
total/synth/SHR/b0 10.07 9.98 -0.9% PASS
total/synth/SHR/b1 10.22 10.19 -0.2% PASS
total/synth/SIGNEXTEND/b0 0.00 0.00 -1.4% PASS
total/synth/SIGNEXTEND/b1 0.00 0.00 -0.9% PASS
total/synth/SLT/b0 0.00 0.00 -0.9% PASS
total/synth/SLT/b1 0.00 0.00 -0.9% PASS
total/synth/SUB/b0 0.00 0.00 -0.7% PASS
total/synth/SUB/b1 0.00 0.00 -1.1% PASS
total/synth/SWAP1/s0 0.00 0.00 -0.9% PASS
total/synth/SWAP10/s0 0.00 0.00 -0.9% PASS
total/synth/SWAP11/s0 0.00 0.00 -1.1% PASS
total/synth/SWAP12/s0 0.00 0.00 -1.5% PASS
total/synth/SWAP13/s0 0.00 0.00 -1.4% PASS
total/synth/SWAP14/s0 0.00 0.00 -1.3% PASS
total/synth/SWAP15/s0 0.00 0.00 -1.0% PASS
total/synth/SWAP16/s0 0.00 0.00 -1.3% PASS
total/synth/SWAP2/s0 0.00 0.00 -1.3% PASS
total/synth/SWAP3/s0 0.00 0.00 -0.8% PASS
total/synth/SWAP4/s0 0.00 0.00 -1.0% PASS
total/synth/SWAP5/s0 0.00 0.00 -1.2% PASS
total/synth/SWAP6/s0 0.00 0.00 -1.0% PASS
total/synth/SWAP7/s0 0.00 0.00 -1.6% PASS
total/synth/SWAP8/s0 0.00 0.00 -1.1% PASS
total/synth/SWAP9/s0 0.00 0.00 -1.1% PASS
total/synth/XOR/b0 0.00 0.00 -1.0% PASS
total/synth/XOR/b1 0.00 0.00 -0.9% PASS
total/synth/loop_v1 1.18 1.17 -0.5% PASS
total/synth/loop_v2 1.11 1.10 -1.3% PASS

Summary: 194 benchmarks, 0 regressions


@github-actions

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 0.84 0.84 +0.1% PASS
total/main/blake2b_huff/empty 0.01 0.01 +0.7% PASS
total/main/blake2b_shifts/8415nulls 4.51 4.52 +0.2% PASS
total/main/sha1_divs/5311 0.59 0.58 -0.6% PASS
total/main/sha1_divs/empty 0.01 0.01 -0.4% PASS
total/main/sha1_shifts/5311 0.55 0.55 -0.2% PASS
total/main/sha1_shifts/empty 0.01 0.01 -0.4% PASS
total/main/snailtracer/benchmark 31.35 31.46 +0.4% PASS
total/main/structarray_alloc/nfts_rank 0.30 0.30 +0.4% PASS
total/main/swap_math/insufficient_liquidity 0.00 0.00 +1.2% PASS
total/main/swap_math/received 0.00 0.00 -0.3% PASS
total/main/swap_math/spent 0.00 0.00 +0.2% PASS
total/main/weierstrudel/1 0.24 0.24 -0.1% PASS
total/main/weierstrudel/15 2.62 2.60 -0.6% PASS
total/micro/JUMPDEST_n0/empty 0.00 0.00 +0.2% PASS
total/micro/jump_around/empty 0.05 0.05 -4.3% PASS
total/micro/loop_with_many_jumpdests/empty 0.00 0.00 -0.1% PASS
total/micro/memory_grow_mload/by1 0.01 0.01 -0.8% PASS
total/micro/memory_grow_mload/by16 0.01 0.01 -0.7% PASS
total/micro/memory_grow_mload/by32 0.01 0.01 -2.9% PASS
total/micro/memory_grow_mload/nogrow 0.01 0.01 +0.5% PASS
total/micro/memory_grow_mstore/by1 0.01 0.01 -0.6% PASS
total/micro/memory_grow_mstore/by16 0.01 0.01 +0.1% PASS
total/micro/memory_grow_mstore/by32 0.02 0.02 -0.7% PASS
total/micro/memory_grow_mstore/nogrow 0.01 0.01 -0.9% PASS
total/micro/signextend/one 0.07 0.07 -0.3% PASS
total/micro/signextend/zero 0.07 0.07 +0.1% PASS
total/synth/ADD/b0 0.00 0.00 -1.0% PASS
total/synth/ADD/b1 0.00 0.00 -1.1% PASS
total/synth/ADDRESS/a0 0.15 0.15 +0.0% PASS
total/synth/ADDRESS/a1 0.15 0.15 -0.0% PASS
total/synth/AND/b0 0.00 0.00 -0.8% PASS
total/synth/AND/b1 0.00 0.00 -1.3% PASS
total/synth/BYTE/b0 0.00 0.00 -1.2% PASS
total/synth/BYTE/b1 0.00 0.00 -0.9% PASS
total/synth/CALLDATASIZE/a0 0.07 0.07 -0.0% PASS
total/synth/CALLDATASIZE/a1 0.07 0.07 +0.0% PASS
total/synth/CALLER/a0 0.18 0.18 -0.0% PASS
total/synth/CALLER/a1 0.18 0.18 -0.1% PASS
total/synth/CALLVALUE/a0 0.26 0.26 +0.3% PASS
total/synth/CALLVALUE/a1 0.26 0.26 +0.1% PASS
total/synth/CODESIZE/a0 0.07 0.07 -0.0% PASS
total/synth/CODESIZE/a1 0.07 0.07 +0.0% PASS
total/synth/DUP1/d0 0.00 0.00 -0.9% PASS
total/synth/DUP1/d1 0.00 0.00 -1.1% PASS
total/synth/DUP10/d0 0.00 0.00 -1.0% PASS
total/synth/DUP10/d1 0.00 0.00 -1.3% PASS
total/synth/DUP11/d0 0.00 0.00 -0.9% PASS
total/synth/DUP11/d1 0.00 0.00 -1.0% PASS
total/synth/DUP12/d0 0.00 0.00 -0.8% PASS
total/synth/DUP12/d1 0.00 0.00 -1.0% PASS
total/synth/DUP13/d0 0.00 0.00 -0.7% PASS
total/synth/DUP13/d1 0.00 0.00 -0.8% PASS
total/synth/DUP14/d0 0.00 0.00 -0.9% PASS
total/synth/DUP14/d1 0.00 0.00 -0.7% PASS
total/synth/DUP15/d0 0.00 0.00 -1.0% PASS
total/synth/DUP15/d1 0.00 0.00 -1.1% PASS
total/synth/DUP16/d0 0.00 0.00 -1.2% PASS
total/synth/DUP16/d1 0.00 0.00 -1.0% PASS
total/synth/DUP2/d0 0.00 0.00 -1.0% PASS
total/synth/DUP2/d1 0.00 0.00 -1.1% PASS
total/synth/DUP3/d0 0.00 0.00 -1.0% PASS
total/synth/DUP3/d1 0.00 0.00 -1.3% PASS
total/synth/DUP4/d0 0.00 0.00 -1.1% PASS
total/synth/DUP4/d1 0.00 0.00 -0.8% PASS
total/synth/DUP5/d0 0.00 0.00 -0.7% PASS
total/synth/DUP5/d1 0.00 0.00 -0.9% PASS
total/synth/DUP6/d0 0.00 0.00 -1.3% PASS
total/synth/DUP6/d1 0.00 0.00 -1.0% PASS
total/synth/DUP7/d0 0.00 0.00 -1.1% PASS
total/synth/DUP7/d1 0.00 0.00 -1.0% PASS
total/synth/DUP8/d0 0.00 0.00 -0.7% PASS
total/synth/DUP8/d1 0.00 0.00 -1.1% PASS
total/synth/DUP9/d0 0.00 0.00 -1.2% PASS
total/synth/DUP9/d1 0.00 0.00 -0.8% PASS
total/synth/EQ/b0 0.00 0.00 -1.0% PASS
total/synth/EQ/b1 0.00 0.00 -1.1% PASS
total/synth/GAS/a0 0.76 0.76 -0.0% PASS
total/synth/GAS/a1 0.76 0.76 +0.0% PASS
total/synth/GT/b0 0.00 0.00 -1.0% PASS
total/synth/GT/b1 0.00 0.00 -0.8% PASS
total/synth/ISZERO/u0 0.00 0.00 -1.0% PASS
total/synth/JUMPDEST/n0 0.00 0.00 +0.2% PASS
total/synth/LT/b0 0.00 0.00 -1.3% PASS
total/synth/LT/b1 0.00 0.00 -1.2% PASS
total/synth/MSIZE/a0 0.00 0.00 -0.8% PASS
total/synth/MSIZE/a1 0.00 0.00 -1.2% PASS
total/synth/MUL/b0 0.00 0.00 -0.9% PASS
total/synth/MUL/b1 0.00 0.00 -1.1% PASS
total/synth/NOT/u0 0.00 0.00 -0.8% PASS
total/synth/OR/b0 0.00 0.00 -1.3% PASS
total/synth/OR/b1 0.00 0.00 -0.8% PASS
total/synth/PC/a0 0.00 0.00 -1.2% PASS
total/synth/PC/a1 0.00 0.00 -0.8% PASS
total/synth/PUSH1/p0 0.00 0.00 -0.9% PASS
total/synth/PUSH1/p1 0.00 0.00 -0.9% PASS
total/synth/PUSH10/p0 0.00 0.00 -1.1% PASS
total/synth/PUSH10/p1 0.00 0.00 -1.2% PASS
total/synth/PUSH11/p0 0.00 0.00 -1.3% PASS
total/synth/PUSH11/p1 0.00 0.00 -0.9% PASS
total/synth/PUSH12/p0 0.00 0.00 -1.4% PASS
total/synth/PUSH12/p1 0.00 0.00 -0.9% PASS
total/synth/PUSH13/p0 0.00 0.00 -1.4% PASS
total/synth/PUSH13/p1 0.00 0.00 -1.0% PASS
total/synth/PUSH14/p0 0.00 0.00 -1.4% PASS
total/synth/PUSH14/p1 0.00 0.00 -0.8% PASS
total/synth/PUSH15/p0 0.00 0.00 -1.3% PASS
total/synth/PUSH15/p1 0.00 0.00 -1.0% PASS
total/synth/PUSH16/p0 0.00 0.00 -1.3% PASS
total/synth/PUSH16/p1 0.00 0.00 -1.0% PASS
total/synth/PUSH17/p0 0.00 0.00 -1.0% PASS
total/synth/PUSH17/p1 0.00 0.00 -1.8% PASS
total/synth/PUSH18/p0 0.00 0.00 -0.8% PASS
total/synth/PUSH18/p1 0.00 0.00 -1.0% PASS
total/synth/PUSH19/p0 0.00 0.00 -1.0% PASS
total/synth/PUSH19/p1 0.00 0.00 -1.2% PASS
total/synth/PUSH2/p0 0.00 0.00 -0.9% PASS
total/synth/PUSH2/p1 0.00 0.00 -1.0% PASS
total/synth/PUSH20/p0 0.00 0.00 -1.1% PASS
total/synth/PUSH20/p1 0.00 0.00 -1.0% PASS
total/synth/PUSH21/p0 0.00 0.00 -1.3% PASS
total/synth/PUSH21/p1 0.00 0.00 -0.9% PASS
total/synth/PUSH22/p0 1.09 1.07 -1.7% PASS
total/synth/PUSH22/p1 1.30 1.30 -0.3% PASS
total/synth/PUSH23/p0 1.07 1.07 -0.1% PASS
total/synth/PUSH23/p1 1.29 1.32 +1.9% PASS
total/synth/PUSH24/p0 1.07 1.07 -0.1% PASS
total/synth/PUSH24/p1 1.29 1.29 -0.0% PASS
total/synth/PUSH25/p0 1.07 1.07 -0.1% PASS
total/synth/PUSH25/p1 1.29 1.30 +0.5% PASS
total/synth/PUSH26/p0 0.90 0.83 -8.6% PASS
total/synth/PUSH26/p1 1.30 1.30 +0.1% PASS
total/synth/PUSH27/p0 1.07 1.07 -0.1% PASS
total/synth/PUSH27/p1 1.31 1.30 -0.7% PASS
total/synth/PUSH28/p0 1.07 1.15 +7.4% PASS
total/synth/PUSH28/p1 1.31 1.30 -0.4% PASS
total/synth/PUSH29/p0 1.07 1.07 -0.0% PASS
total/synth/PUSH29/p1 1.30 1.31 +0.7% PASS
total/synth/PUSH3/p0 0.00 0.00 -0.8% PASS
total/synth/PUSH3/p1 0.00 0.00 -1.1% PASS
total/synth/PUSH30/p0 1.16 1.18 +1.4% PASS
total/synth/PUSH30/p1 1.31 1.31 -0.1% PASS
total/synth/PUSH31/p0 1.07 1.07 -0.4% PASS
total/synth/PUSH31/p1 1.40 1.39 -0.4% PASS
total/synth/PUSH32/p0 1.07 1.07 -0.1% PASS
total/synth/PUSH32/p1 1.31 1.31 +0.1% PASS
total/synth/PUSH4/p0 0.00 0.00 -1.3% PASS
total/synth/PUSH4/p1 0.00 0.00 -1.0% PASS
total/synth/PUSH5/p0 0.00 0.00 -1.1% PASS
total/synth/PUSH5/p1 0.00 0.00 -1.1% PASS
total/synth/PUSH6/p0 0.00 0.00 -1.0% PASS
total/synth/PUSH6/p1 0.00 0.00 -1.0% PASS
total/synth/PUSH7/p0 0.00 0.00 -1.2% PASS
total/synth/PUSH7/p1 0.00 0.00 -1.2% PASS
total/synth/PUSH8/p0 0.00 0.00 -0.9% PASS
total/synth/PUSH8/p1 0.00 0.00 -0.8% PASS
total/synth/PUSH9/p0 0.00 0.00 -1.3% PASS
total/synth/PUSH9/p1 0.00 0.00 -0.7% PASS
total/synth/RETURNDATASIZE/a0 0.03 0.03 +0.1% PASS
total/synth/RETURNDATASIZE/a1 0.03 0.03 -0.2% PASS
total/synth/SAR/b0 5.80 5.82 +0.4% PASS
total/synth/SAR/b1 6.51 6.54 +0.4% PASS
total/synth/SGT/b0 0.00 0.00 -1.1% PASS
total/synth/SGT/b1 0.00 0.00 -0.9% PASS
total/synth/SHL/b0 11.76 11.70 -0.5% PASS
total/synth/SHL/b1 11.79 11.76 -0.3% PASS
total/synth/SHR/b0 10.07 9.98 -0.9% PASS
total/synth/SHR/b1 10.22 10.19 -0.2% PASS
total/synth/SIGNEXTEND/b0 0.00 0.00 -1.4% PASS
total/synth/SIGNEXTEND/b1 0.00 0.00 -0.9% PASS
total/synth/SLT/b0 0.00 0.00 -0.9% PASS
total/synth/SLT/b1 0.00 0.00 -0.9% PASS
total/synth/SUB/b0 0.00 0.00 -0.7% PASS
total/synth/SUB/b1 0.00 0.00 -1.1% PASS
total/synth/SWAP1/s0 0.00 0.00 -0.9% PASS
total/synth/SWAP10/s0 0.00 0.00 -0.9% PASS
total/synth/SWAP11/s0 0.00 0.00 -1.1% PASS
total/synth/SWAP12/s0 0.00 0.00 -1.5% PASS
total/synth/SWAP13/s0 0.00 0.00 -1.4% PASS
total/synth/SWAP14/s0 0.00 0.00 -1.3% PASS
total/synth/SWAP15/s0 0.00 0.00 -1.0% PASS
total/synth/SWAP16/s0 0.00 0.00 -1.3% PASS
total/synth/SWAP2/s0 0.00 0.00 -1.3% PASS
total/synth/SWAP3/s0 0.00 0.00 -0.8% PASS
total/synth/SWAP4/s0 0.00 0.00 -1.0% PASS
total/synth/SWAP5/s0 0.00 0.00 -1.2% PASS
total/synth/SWAP6/s0 0.00 0.00 -1.0% PASS
total/synth/SWAP7/s0 0.00 0.00 -1.6% PASS
total/synth/SWAP8/s0 0.00 0.00 -1.1% PASS
total/synth/SWAP9/s0 0.00 0.00 -1.1% PASS
total/synth/XOR/b0 0.00 0.00 -1.0% PASS
total/synth/XOR/b1 0.00 0.00 -0.9% PASS
total/synth/loop_v1 1.18 1.17 -0.5% PASS
total/synth/loop_v2 1.11 1.10 -1.3% PASS

Summary: 194 benchmarks, 0 regressions

@abmcar
abmcar deleted the perf/spp-implicit-dyn-pred branch May 20, 2026 07:48
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