Skip to content

perf(evm): reuse CFG memory proofs for COPY expansion - #580

Merged
zoowii merged 2 commits into
DTVMStack:mainfrom
ECNUyhy:codex/evm-copy-cfg-memory-proof
Jul 29, 2026
Merged

perf(evm): reuse CFG memory proofs for COPY expansion#580
zoowii merged 2 commits into
DTVMStack:mainfrom
ECNUyhy:codex/evm-copy-cfg-memory-proof

Conversation

@ECNUyhy

@ECNUyhy ECNUyhy commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

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

  • N
  • Y

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

  • src/compiler/evm_frontend/evm_memory_analysis.h
  • src/compiler/evm_frontend/evm_mir_compiler.{h,cpp}
  • src/tests/evm_jit_frontend_tests.cpp

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

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

Propagate constant CALLDATACOPY and CODECOPY destination ends through the existing CFG guaranteed-minimum-memory analysis. During multipass lowering, bind helper operations to their analyzed opcode PC and omit the COPY memory-expansion IR only when the propagated proof fully covers the constant destination range. Dynamic, zero-size, overflow, and uncovered ranges retain the existing normalization and expansion path; copy gas charging and helper ordering are unchanged.

This keeps fact production and proof consumption separate:

  1. perf(evm): propagate COPY destination guarantees through CFG
  2. perf(evm): reuse CFG memory proofs for COPY expansion

Static lowering telemetry provides an opportunity check rather than a runtime speedup claim:

  • 209 project EASM fixtures: 0 COPY proof elisions, confirming no unexpected trigger in the generic regression corpus.
  • 65 cached real on-chain contracts: 12 contracts contain qualifying paths, with 390 redundant COPY expansion-IR emissions removed at compile time.

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

  • N
  • Y

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

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

Added analysis tests for constant CALLDATACOPY/CODECOPY destination facts and zero-size rejection. Added lowering tests that verify cross-block proof reuse at the exact opcode PC and inspect MIR calls to ensure uncovered COPY operations retain fallback expansion while a covered successor does not add another expansion.

Validation:

  • ./tools/format.sh format
  • ./tools/format.sh check
  • evmJitFrontendTests: 113/113 passed
  • evmDifferentialTests: 65/65 passed
  • Logging-on/framework-off source configuration: guarded test object compiles; final executable linking is blocked by the repository's existing Clang 15 std::experimental::filesystem linkage issue.

6. Release note

Improve multipass EVM JIT COPY lowering by reusing CFG-propagated memory expansion proofs.

ECNUyhy added 2 commits July 28, 2026 07:01
Teach the guaranteed-memory analysis to learn constant CALLDATACOPY and CODECOPY destination ends. Keep zero-length copies from strengthening the proof and ignore non-memory source ranges.
Bind COPY helper lowering to the analyzed opcode PC and skip CALLDATACOPY and CODECOPY expansion IR only when the propagated destination range is fully covered.

Keep fallback expansion for uncovered ranges and add MIR-level regression coverage plus deterministic logging telemetry.
@github-actions

Copy link
Copy Markdown

⚡ Performance Regression Check Results

✅ Performance Check Passed (interpreter)

Performance Benchmark Results (threshold: 25%)

Benchmark Baseline (us) Current (us) Change Status
total/main/blake2b_huff/8415nulls 2.60 2.45 -6.0% PASS
total/main/blake2b_huff/empty 0.04 0.04 -0.4% PASS
total/main/blake2b_shifts/8415nulls 15.04 14.08 -6.3% PASS
total/main/sha1_divs/5311 8.23 8.15 -1.0% PASS
total/main/sha1_divs/empty 0.10 0.10 -2.6% PASS
total/main/sha1_shifts/5311 5.36 5.24 -2.2% PASS
total/main/sha1_shifts/empty 0.04 0.04 +0.1% PASS
total/main/snailtracer/benchmark 91.76 85.39 -6.9% PASS
total/main/structarray_alloc/nfts_rank 1.11 1.11 +0.0% PASS
total/main/swap_math/insufficient_liquidity 0.00 0.00 -0.2% PASS
total/main/swap_math/received 0.01 0.01 +2.3% PASS
total/main/swap_math/spent 0.01 0.01 +1.0% PASS
total/main/weierstrudel/1 0.31 0.31 -1.5% PASS
total/main/weierstrudel/15 3.43 3.39 -1.2% PASS
total/micro/JUMPDEST_n0/empty 2.64 2.64 +0.0% PASS
total/micro/jump_around/empty 0.11 0.12 +0.5% PASS
total/micro/loop_with_many_jumpdests/empty 69.24 69.58 +1.0% PASS
total/micro/memory_grow_mload/by1 0.17 0.17 +2.1% PASS
total/micro/memory_grow_mload/by16 0.19 0.20 +6.7% PASS
total/micro/memory_grow_mload/by32 0.12 0.11 -0.1% PASS
total/micro/memory_grow_mload/nogrow 0.09 0.09 +2.8% PASS
total/micro/memory_grow_mstore/by1 0.20 0.18 -11.0% PASS
total/micro/memory_grow_mstore/by16 0.11 0.11 +0.6% PASS
total/micro/memory_grow_mstore/by32 0.24 0.23 -2.8% PASS
total/micro/memory_grow_mstore/nogrow 0.19 0.20 +4.5% PASS
total/micro/signextend/one 0.26 0.26 +0.2% PASS
total/micro/signextend/zero 0.47 0.52 +10.0% PASS
total/synth/ADD/b0 2.31 2.30 -0.4% PASS
total/synth/ADD/b1 2.63 2.66 +1.3% PASS
total/synth/ADDRESS/a0 5.93 6.21 +4.7% PASS
total/synth/ADDRESS/a1 5.11 5.08 -0.5% PASS
total/synth/AND/b0 2.15 2.15 +0.3% PASS
total/synth/AND/b1 2.37 2.24 -5.6% PASS
total/synth/BYTE/b0 6.12 6.15 +0.5% PASS
total/synth/BYTE/b1 8.29 8.32 +0.3% PASS
total/synth/CALLDATASIZE/a0 5.33 5.23 -1.9% PASS
total/synth/CALLDATASIZE/a1 3.37 3.36 -0.4% PASS
total/synth/CALLER/a0 5.92 5.89 -0.6% PASS
total/synth/CALLER/a1 6.28 6.40 +2.0% PASS
total/synth/CALLVALUE/a0 3.52 3.52 -0.1% PASS
total/synth/CALLVALUE/a1 6.05 5.85 -3.3% PASS
total/synth/CODESIZE/a0 5.94 6.42 +8.2% PASS
total/synth/CODESIZE/a1 5.99 6.31 +5.3% PASS
total/synth/DUP1/d0 1.65 1.64 -0.3% PASS
total/synth/DUP1/d1 1.75 1.70 -2.9% PASS
total/synth/DUP10/d0 1.68 1.51 -10.3% PASS
total/synth/DUP10/d1 1.74 1.68 -3.5% PASS
total/synth/DUP11/d0 1.09 1.07 -1.7% PASS
total/synth/DUP11/d1 1.69 1.74 +3.4% PASS
total/synth/DUP12/d0 1.60 1.50 -6.6% PASS
total/synth/DUP12/d1 1.08 1.07 -0.9% PASS
total/synth/DUP13/d0 1.51 1.53 +1.2% PASS
total/synth/DUP13/d1 1.66 1.67 +0.9% PASS
total/synth/DUP14/d0 1.09 1.09 -0.0% PASS
total/synth/DUP14/d1 1.74 1.69 -2.7% PASS
total/synth/DUP15/d0 1.63 1.68 +3.4% PASS
total/synth/DUP15/d1 1.08 1.07 -0.4% PASS
total/synth/DUP16/d0 1.46 1.53 +4.5% PASS
total/synth/DUP16/d1 1.66 1.65 -0.3% PASS
total/synth/DUP2/d0 1.07 1.07 -0.1% PASS
total/synth/DUP2/d1 1.79 1.64 -8.3% PASS
total/synth/DUP3/d0 1.48 1.50 +1.2% PASS
total/synth/DUP3/d1 1.08 1.07 -0.7% PASS
total/synth/DUP4/d0 1.51 1.52 +0.1% PASS
total/synth/DUP4/d1 1.68 1.66 -1.6% PASS
total/synth/DUP5/d0 1.06 0.83 -21.9% PASS
total/synth/DUP5/d1 1.69 1.76 +4.0% PASS
total/synth/DUP6/d0 1.58 1.61 +2.2% PASS
total/synth/DUP6/d1 1.07 1.07 -0.6% PASS
total/synth/DUP7/d0 1.67 1.48 -11.4% PASS
total/synth/DUP7/d1 1.71 1.72 +0.2% PASS
total/synth/DUP8/d0 1.08 1.08 -0.0% PASS
total/synth/DUP8/d1 1.75 1.65 -5.9% PASS
total/synth/DUP9/d0 1.53 1.64 +7.3% PASS
total/synth/DUP9/d1 1.07 1.07 -0.6% PASS
total/synth/EQ/b0 4.54 4.53 -0.3% PASS
total/synth/EQ/b1 4.83 4.86 +0.6% PASS
total/synth/GAS/a0 3.84 3.84 +0.1% PASS
total/synth/GAS/a1 6.78 6.72 -1.0% PASS
total/synth/GT/b0 4.80 4.82 +0.3% PASS
total/synth/GT/b1 4.84 4.85 +0.1% PASS
total/synth/ISZERO/u0 7.08 7.08 -0.0% PASS
total/synth/JUMPDEST/n0 2.64 2.64 +0.0% PASS
total/synth/LT/b0 4.83 4.81 -0.2% PASS
total/synth/LT/b1 4.35 4.39 +0.8% PASS
total/synth/MSIZE/a0 5.35 5.50 +2.9% PASS
total/synth/MSIZE/a1 5.80 5.63 -2.9% PASS
total/synth/MUL/b0 5.51 5.58 +1.1% PASS
total/synth/MUL/b1 5.33 5.35 +0.3% PASS
total/synth/NOT/u0 1.85 1.82 -2.0% PASS
total/synth/OR/b0 2.14 2.13 -0.6% PASS
total/synth/OR/b1 1.75 1.78 +1.5% PASS
total/synth/PC/a0 5.42 5.30 -2.2% PASS
total/synth/PC/a1 3.46 3.44 -0.5% PASS
total/synth/PUSH1/p0 1.83 1.78 -2.5% PASS
total/synth/PUSH1/p1 1.64 1.63 -0.5% PASS
total/synth/PUSH10/p0 1.84 1.79 -3.0% PASS
total/synth/PUSH10/p1 1.65 1.63 -0.9% PASS
total/synth/PUSH11/p0 1.81 1.90 +5.4% PASS
total/synth/PUSH11/p1 2.00 2.04 +1.9% PASS
total/synth/PUSH12/p0 1.20 1.20 -0.1% PASS
total/synth/PUSH12/p1 2.03 2.08 +2.4% PASS
total/synth/PUSH13/p0 1.91 1.88 -1.6% PASS
total/synth/PUSH13/p1 1.65 1.65 +0.1% PASS
total/synth/PUSH14/p0 2.09 1.90 -9.0% PASS
total/synth/PUSH14/p1 2.08 2.00 -3.7% PASS
total/synth/PUSH15/p0 1.20 1.20 +0.0% PASS
total/synth/PUSH15/p1 2.41 2.22 -7.9% PASS
total/synth/PUSH16/p0 2.01 1.85 -7.9% PASS
total/synth/PUSH16/p1 1.65 1.63 -1.0% PASS
total/synth/PUSH17/p0 1.78 1.99 +12.1% PASS
total/synth/PUSH17/p1 1.99 1.96 -1.8% PASS
total/synth/PUSH18/p0 1.21 1.20 -1.1% PASS
total/synth/PUSH18/p1 1.99 1.95 -1.7% PASS
total/synth/PUSH19/p0 2.02 1.79 -11.3% PASS
total/synth/PUSH19/p1 1.66 1.63 -1.5% PASS
total/synth/PUSH2/p0 1.86 1.81 -3.1% PASS
total/synth/PUSH2/p1 2.08 2.04 -1.8% PASS
total/synth/PUSH20/p0 2.04 2.03 -0.7% PASS
total/synth/PUSH20/p1 2.07 2.00 -3.5% PASS
total/synth/PUSH21/p0 1.21 1.20 -0.7% PASS
total/synth/PUSH21/p1 2.26 2.07 -8.3% PASS
total/synth/PUSH22/p0 1.91 1.92 +0.5% PASS
total/synth/PUSH22/p1 1.64 1.63 -0.5% PASS
total/synth/PUSH23/p0 2.01 1.77 -11.7% PASS
total/synth/PUSH23/p1 2.44 2.10 -13.9% PASS
total/synth/PUSH24/p0 1.20 1.20 +0.1% PASS
total/synth/PUSH24/p1 2.18 1.97 -9.6% PASS
total/synth/PUSH25/p0 2.05 1.92 -6.5% PASS
total/synth/PUSH25/p1 1.65 1.64 -0.6% PASS
total/synth/PUSH26/p0 1.84 1.83 -0.6% PASS
total/synth/PUSH26/p1 2.18 1.92 -12.1% PASS
total/synth/PUSH27/p0 1.20 1.20 +0.3% PASS
total/synth/PUSH27/p1 2.24 1.90 -14.8% PASS
total/synth/PUSH28/p0 1.92 1.81 -5.4% PASS
total/synth/PUSH28/p1 1.66 1.65 -0.5% PASS
total/synth/PUSH29/p0 2.00 2.01 +0.8% PASS
total/synth/PUSH29/p1 1.99 1.95 -2.1% PASS
total/synth/PUSH3/p0 1.20 1.20 -0.2% PASS
total/synth/PUSH3/p1 2.05 2.07 +1.8% PASS
total/synth/PUSH30/p0 1.28 1.27 -0.7% PASS
total/synth/PUSH30/p1 2.12 2.04 -3.7% PASS
total/synth/PUSH31/p0 1.81 2.02 +11.7% PASS
total/synth/PUSH31/p1 1.70 1.68 -1.0% PASS
total/synth/PUSH32/p0 2.03 1.79 -11.8% PASS
total/synth/PUSH32/p1 2.10 1.92 -8.4% PASS
total/synth/PUSH4/p0 1.77 1.93 +8.7% PASS
total/synth/PUSH4/p1 1.64 1.63 -0.5% PASS
total/synth/PUSH5/p0 2.01 1.79 -11.1% PASS
total/synth/PUSH5/p1 1.97 1.98 +0.6% PASS
total/synth/PUSH6/p0 1.21 1.24 +2.2% PASS
total/synth/PUSH6/p1 2.12 2.08 -1.7% PASS
total/synth/PUSH7/p0 1.88 2.01 +6.9% PASS
total/synth/PUSH7/p1 1.64 1.66 +1.3% PASS
total/synth/PUSH8/p0 1.99 1.86 -6.6% PASS
total/synth/PUSH8/p1 2.06 2.09 +1.2% PASS
total/synth/PUSH9/p0 1.19 1.20 +0.4% PASS
total/synth/PUSH9/p1 1.98 1.95 -1.5% PASS
total/synth/RETURNDATASIZE/a0 3.36 3.36 -0.2% PASS
total/synth/RETURNDATASIZE/a1 5.86 6.34 +8.2% PASS
total/synth/SAR/b0 3.98 3.99 +0.3% PASS
total/synth/SAR/b1 7.30 7.83 +7.3% PASS
total/synth/SGT/b0 3.63 3.60 -0.9% PASS
total/synth/SGT/b1 3.37 3.39 +0.6% PASS
total/synth/SHL/b0 3.68 3.66 -0.5% PASS
total/synth/SHL/b1 1.84 1.86 +1.0% PASS
total/synth/SHR/b0 3.74 3.78 +1.1% PASS
total/synth/SHR/b1 3.27 3.19 -2.4% PASS
total/synth/SIGNEXTEND/b0 3.28 3.29 +0.1% PASS
total/synth/SIGNEXTEND/b1 6.60 6.38 -3.3% PASS
total/synth/SLT/b0 3.44 3.44 -0.0% PASS
total/synth/SLT/b1 3.70 3.76 +1.6% PASS
total/synth/SUB/b0 2.64 2.58 -2.3% PASS
total/synth/SUB/b1 2.69 2.66 -1.1% PASS
total/synth/SWAP1/s0 1.51 1.51 +0.1% PASS
total/synth/SWAP10/s0 1.52 1.52 -0.1% PASS
total/synth/SWAP11/s0 2.64 2.65 +0.4% PASS
total/synth/SWAP12/s0 2.59 2.64 +2.0% PASS
total/synth/SWAP13/s0 1.54 1.53 -0.8% PASS
total/synth/SWAP14/s0 2.63 2.66 +1.1% PASS
total/synth/SWAP15/s0 2.85 2.66 -6.7% PASS
total/synth/SWAP16/s0 1.58 1.53 -3.4% PASS
total/synth/SWAP2/s0 2.65 2.76 +4.3% PASS
total/synth/SWAP3/s0 2.65 2.68 +1.0% PASS
total/synth/SWAP4/s0 1.51 1.54 +2.0% PASS
total/synth/SWAP5/s0 3.20 2.65 -17.3% PASS
total/synth/SWAP6/s0 2.80 2.67 -4.9% PASS
total/synth/SWAP7/s0 1.52 1.52 +0.2% PASS
total/synth/SWAP8/s0 2.79 2.68 -3.8% PASS
total/synth/SWAP9/s0 2.66 2.64 -0.5% PASS
total/synth/XOR/b0 2.11 2.02 -4.4% PASS
total/synth/XOR/b1 2.10 2.24 +6.7% PASS
total/synth/loop_v1 9.50 8.67 -8.7% PASS
total/synth/loop_v2 8.86 8.53 -3.6% 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.34 1.44 +7.0% PASS
total/main/blake2b_huff/empty 0.03 0.02 -2.2% PASS
total/main/blake2b_shifts/8415nulls 4.32 4.32 +0.1% PASS
total/main/sha1_divs/5311 0.88 0.89 +1.8% PASS
total/main/sha1_divs/empty 0.01 0.01 -0.3% PASS
total/main/sha1_shifts/5311 0.78 0.77 -1.5% PASS
total/main/sha1_shifts/empty 0.01 0.01 -0.2% PASS
total/main/structarray_alloc/nfts_rank 0.27 0.26 -0.2% PASS
total/main/swap_math/insufficient_liquidity 0.00 0.00 -1.0% PASS
total/main/swap_math/received 0.01 0.01 -0.2% PASS
total/main/swap_math/spent 0.01 0.01 +0.2% PASS
total/main/weierstrudel/1 0.32 0.33 +1.9% PASS
total/main/weierstrudel/15 3.66 3.80 +3.8% PASS
total/micro/JUMPDEST_n0/empty 0.00 0.00 +1.9% PASS
total/micro/jump_around/empty 0.07 0.07 -10.0% PASS
total/micro/loop_with_many_jumpdests/empty 0.01 0.01 -3.5% PASS
total/micro/memory_grow_mload/by1 0.02 0.02 -2.3% PASS
total/micro/memory_grow_mload/by16 0.02 0.02 -6.8% PASS
total/micro/memory_grow_mload/by32 0.01 0.01 +0.4% PASS
total/micro/memory_grow_mload/nogrow 0.01 0.01 -2.8% PASS
total/micro/memory_grow_mstore/by1 0.13 0.13 +0.3% PASS
total/micro/memory_grow_mstore/by16 0.08 0.08 +1.3% PASS
total/micro/memory_grow_mstore/by32 0.17 0.17 +1.7% PASS
total/micro/memory_grow_mstore/nogrow 0.12 0.12 +1.2% PASS
total/micro/signextend/one 0.08 0.08 +1.3% PASS
total/micro/signextend/zero 0.18 0.19 +4.7% PASS
total/synth/ADD/b0 0.00 0.00 +0.8% PASS
total/synth/ADD/b1 0.00 0.00 -0.7% PASS
total/synth/ADDRESS/a0 0.22 0.23 +1.8% PASS
total/synth/ADDRESS/a1 0.15 0.15 -0.2% PASS
total/synth/AND/b0 0.00 0.00 +1.4% PASS
total/synth/AND/b1 0.00 0.00 -1.6% PASS
total/synth/BYTE/b0 0.00 0.00 +0.9% PASS
total/synth/BYTE/b1 0.00 0.00 +0.3% PASS
total/synth/CALLDATASIZE/a0 0.13 0.12 -1.3% PASS
total/synth/CALLDATASIZE/a1 0.07 0.07 +0.1% PASS
total/synth/CALLER/a0 0.23 0.22 -5.7% PASS
total/synth/CALLER/a1 0.22 0.26 +20.3% PASS
total/synth/CALLVALUE/a0 0.19 0.19 +0.2% PASS
total/synth/CALLVALUE/a1 0.29 0.29 -1.3% PASS
total/synth/CODESIZE/a0 0.13 0.12 -2.3% PASS
total/synth/CODESIZE/a1 0.12 0.12 +0.1% PASS
total/synth/DUP1/d0 0.00 0.00 +1.5% PASS
total/synth/DUP1/d1 0.00 0.00 +0.6% PASS
total/synth/DUP10/d0 0.00 0.00 -0.9% 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.2% PASS
total/synth/DUP12/d0 0.00 0.00 +1.6% PASS
total/synth/DUP12/d1 0.00 0.00 +1.2% PASS
total/synth/DUP13/d0 0.00 0.00 +6.2% PASS
total/synth/DUP13/d1 0.00 0.00 +1.9% PASS
total/synth/DUP14/d0 0.00 0.00 +0.1% PASS
total/synth/DUP14/d1 0.00 0.00 -0.3% 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.4% PASS
total/synth/DUP16/d1 0.00 0.00 +1.4% PASS
total/synth/DUP2/d0 0.00 0.00 +0.6% 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 +1.1% PASS
total/synth/DUP4/d0 0.00 0.00 +0.8% PASS
total/synth/DUP4/d1 0.00 0.00 +0.9% PASS
total/synth/DUP5/d0 0.00 0.00 +1.1% PASS
total/synth/DUP5/d1 0.00 0.00 +0.7% PASS
total/synth/DUP6/d0 0.00 0.00 +3.0% PASS
total/synth/DUP6/d1 0.00 0.00 +1.3% 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.9% PASS
total/synth/DUP8/d1 0.00 0.00 -2.4% PASS
total/synth/DUP9/d0 0.00 0.00 +1.0% PASS
total/synth/DUP9/d1 0.00 0.00 +0.9% PASS
total/synth/EQ/b0 0.00 0.00 +0.7% PASS
total/synth/EQ/b1 0.00 0.00 +0.1% PASS
total/synth/GAS/a0 0.76 0.76 -0.0% PASS
total/synth/GAS/a1 0.94 0.94 +0.3% PASS
total/synth/GT/b0 0.00 0.00 +1.1% PASS
total/synth/GT/b1 0.00 0.00 +1.0% PASS
total/synth/ISZERO/u0 0.00 0.00 +1.1% PASS
total/synth/JUMPDEST/n0 0.00 0.00 +1.2% PASS
total/synth/LT/b0 0.00 0.00 +0.6% PASS
total/synth/LT/b1 0.00 0.00 +1.1% PASS
total/synth/MSIZE/a0 0.00 0.00 +1.1% PASS
total/synth/MSIZE/a1 0.00 0.00 +1.4% PASS
total/synth/MUL/b0 0.00 0.00 +1.7% PASS
total/synth/MUL/b1 0.00 0.00 +1.5% PASS
total/synth/NOT/u0 0.00 0.00 +0.9% PASS
total/synth/OR/b0 0.00 0.00 -0.5% PASS
total/synth/OR/b1 0.00 0.00 +1.1% PASS
total/synth/PC/a0 0.00 0.00 +0.9% PASS
total/synth/PC/a1 0.00 0.00 +1.2% PASS
total/synth/PUSH1/p0 0.00 0.00 +1.7% PASS
total/synth/PUSH1/p1 0.00 0.00 +1.5% PASS
total/synth/PUSH10/p0 0.00 0.00 +2.2% PASS
total/synth/PUSH10/p1 0.00 0.00 +0.5% PASS
total/synth/PUSH11/p0 0.00 0.00 +0.1% PASS
total/synth/PUSH11/p1 0.00 0.00 +2.0% PASS
total/synth/PUSH12/p0 0.00 0.00 +2.0% PASS
total/synth/PUSH12/p1 0.00 0.00 +5.8% PASS
total/synth/PUSH13/p0 0.00 0.00 +5.6% PASS
total/synth/PUSH13/p1 0.00 0.00 +0.3% PASS
total/synth/PUSH14/p0 0.00 0.00 -1.8% PASS
total/synth/PUSH14/p1 0.00 0.00 +4.0% PASS
total/synth/PUSH15/p0 0.00 0.00 +1.2% PASS
total/synth/PUSH15/p1 0.00 0.00 -2.2% PASS
total/synth/PUSH16/p0 0.00 0.00 +3.2% PASS
total/synth/PUSH16/p1 0.00 0.00 +0.2% PASS
total/synth/PUSH17/p0 0.00 0.00 -4.1% PASS
total/synth/PUSH17/p1 0.00 0.00 +2.0% PASS
total/synth/PUSH18/p0 0.00 0.00 -0.0% PASS
total/synth/PUSH18/p1 0.00 0.00 +0.5% PASS
total/synth/PUSH19/p0 0.00 0.00 -10.2% PASS
total/synth/PUSH19/p1 0.00 0.00 +0.7% PASS
total/synth/PUSH2/p0 0.00 0.00 +0.1% PASS
total/synth/PUSH2/p1 0.00 0.00 +4.4% PASS
total/synth/PUSH20/p0 0.00 0.00 -4.6% PASS
total/synth/PUSH20/p1 0.00 0.00 +7.9% PASS
total/synth/PUSH21/p0 0.00 0.00 -1.1% PASS
total/synth/PUSH21/p1 0.00 0.00 -1.3% PASS
total/synth/PUSH22/p0 1.70 1.69 -0.2% PASS
total/synth/PUSH22/p1 1.64 1.66 +1.6% PASS
total/synth/PUSH23/p0 1.69 1.77 +5.2% PASS
total/synth/PUSH23/p1 2.01 1.85 -7.7% PASS
total/synth/PUSH24/p0 1.20 1.20 -0.3% PASS
total/synth/PUSH24/p1 1.90 2.09 +10.3% PASS
total/synth/PUSH25/p0 1.69 1.69 +0.2% PASS
total/synth/PUSH25/p1 1.64 1.66 +1.8% PASS
total/synth/PUSH26/p0 1.66 1.73 +4.1% PASS
total/synth/PUSH26/p1 1.93 1.85 -4.2% PASS
total/synth/PUSH27/p0 1.20 1.20 +0.3% PASS
total/synth/PUSH27/p1 1.94 1.99 +2.4% PASS
total/synth/PUSH28/p0 1.75 1.69 -3.5% PASS
total/synth/PUSH28/p1 1.64 1.65 +1.1% PASS
total/synth/PUSH29/p0 1.71 1.76 +2.9% PASS
total/synth/PUSH29/p1 1.87 1.83 -1.9% PASS
total/synth/PUSH3/p0 0.00 0.00 +1.4% PASS
total/synth/PUSH3/p1 0.00 0.00 +0.5% PASS
total/synth/PUSH30/p0 1.39 1.29 -7.0% PASS
total/synth/PUSH30/p1 1.87 2.02 +7.6% PASS
total/synth/PUSH31/p0 1.71 1.71 +0.2% PASS
total/synth/PUSH31/p1 1.68 1.71 +2.0% PASS
total/synth/PUSH32/p0 1.66 1.78 +7.5% PASS
total/synth/PUSH32/p1 1.92 1.83 -4.8% PASS
total/synth/PUSH4/p0 0.00 0.00 +2.4% PASS
total/synth/PUSH4/p1 0.00 0.00 +1.1% PASS
total/synth/PUSH5/p0 0.00 0.00 +1.3% PASS
total/synth/PUSH5/p1 0.00 0.00 -2.7% PASS
total/synth/PUSH6/p0 0.00 0.00 +1.0% PASS
total/synth/PUSH6/p1 0.00 0.00 -2.2% PASS
total/synth/PUSH7/p0 0.00 0.00 -1.5% PASS
total/synth/PUSH7/p1 0.00 0.00 +2.1% PASS
total/synth/PUSH8/p0 0.00 0.00 -0.3% PASS
total/synth/PUSH8/p1 0.00 0.00 -3.1% PASS
total/synth/PUSH9/p0 0.00 0.00 -1.2% PASS
total/synth/PUSH9/p1 0.00 0.00 -1.4% PASS
total/synth/RETURNDATASIZE/a0 0.03 0.03 +0.1% PASS
total/synth/RETURNDATASIZE/a1 0.06 0.06 -2.0% PASS
total/synth/SAR/b0 0.00 0.00 +0.9% PASS
total/synth/SAR/b1 0.00 0.00 +0.8% PASS
total/synth/SGT/b0 0.00 0.00 +0.9% PASS
total/synth/SGT/b1 0.00 0.00 +1.1% PASS
total/synth/SHL/b0 0.00 0.00 +0.1% PASS
total/synth/SHL/b1 0.00 0.00 +2.3% PASS
total/synth/SHR/b0 0.00 0.00 -3.7% PASS
total/synth/SHR/b1 0.00 0.00 +1.3% PASS
total/synth/SIGNEXTEND/b0 0.00 0.00 +1.6% PASS
total/synth/SIGNEXTEND/b1 0.00 0.00 +0.9% PASS
total/synth/SLT/b0 0.00 0.00 +1.4% PASS
total/synth/SLT/b1 0.00 0.00 +0.4% PASS
total/synth/SUB/b0 0.00 0.00 -2.0% PASS
total/synth/SUB/b1 0.00 0.00 +0.7% PASS
total/synth/SWAP1/s0 0.00 0.00 +1.3% PASS
total/synth/SWAP10/s0 0.00 0.00 +1.3% PASS
total/synth/SWAP11/s0 0.00 0.00 +1.4% PASS
total/synth/SWAP12/s0 0.00 0.00 +1.4% PASS
total/synth/SWAP13/s0 0.00 0.00 +1.0% PASS
total/synth/SWAP14/s0 0.00 0.00 -1.2% PASS
total/synth/SWAP15/s0 0.00 0.00 +0.3% PASS
total/synth/SWAP16/s0 0.00 0.00 +1.2% PASS
total/synth/SWAP2/s0 0.00 0.00 +0.2% PASS
total/synth/SWAP3/s0 0.00 0.00 +2.2% PASS
total/synth/SWAP4/s0 0.00 0.00 +1.3% PASS
total/synth/SWAP5/s0 0.00 0.00 -1.5% PASS
total/synth/SWAP6/s0 0.00 0.00 -1.4% PASS
total/synth/SWAP7/s0 0.00 0.00 +0.8% PASS
total/synth/SWAP8/s0 0.00 0.00 +3.1% PASS
total/synth/SWAP9/s0 0.00 0.00 +1.3% PASS
total/synth/XOR/b0 0.00 0.00 +0.3% PASS
total/synth/XOR/b1 0.00 0.00 +0.7% PASS
total/synth/loop_v1 8.84 8.42 -4.7% PASS
total/synth/loop_v2 8.47 9.24 +9.3% PASS

Summary: 193 benchmarks, 0 regressions


@zoowii
zoowii merged commit 61a3089 into DTVMStack:main Jul 29, 2026
17 checks passed
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