Skip to content

perf(compiler): reduce repeated cold-path scans - #577

Open
abmcar wants to merge 4 commits into
DTVMStack:mainfrom
abmcar:agent/reduce-compiler-cold-path-scans
Open

perf(compiler): reduce repeated cold-path scans#577
abmcar wants to merge 4 commits into
DTVMStack:mainfrom
abmcar:agent/reduce-compiler-cold-path-scans

Conversation

@abmcar

@abmcar abmcar commented Jul 24, 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):

  • multipass compiler MIR block membership
  • CGIR dead-instruction elimination
  • EVM frontend regression tests

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

This PR removes two repeated linear scans observed in cold multipass compilation:

  1. EVMMirBuilder::setInsertBlock now checks membership through the block's
    stable MFunction index and pointer identity instead of scanning every
    block in the function.
  2. CGIR dead-instruction elimination now starts at the def-use chain tail and
    scans only the use suffix, avoiding repeated traversal of the definition
    prefix while preserving self-use behavior.

The MIR lookup relies on the existing live-block, append-only/stable-index
contract. The CGIR lookup relies on the existing definition-prefix/use-suffix
operand-chain layout. Focused tests cover unappended MIR blocks with default
indices, pointer-identity membership after append, entry-block reuse,
preservation of external uses, deletion of self-uses, multiple definitions,
and fixed-point deletion after an external use is removed.

The branch is rebased onto upstream main at a7e73059, which includes the
merged PR #560 and PR #561 fixes.

Pre-rebase LabPerf diagnostic evidence, collected on implementation head
1edac697 based on 57324bd: on the frozen 4-block/499-transaction
prefix004 corpus, the combined candidate reduced first cold block-execution
time from 2,238.890–2,263.209 seconds to 1,083.372 seconds (51.6–52.1%,
2.07–2.09x). In cold cycles:u profiles,
CgDeadCgInstructionElim::isDead moved from 39.53% to 0.28% flat sampled
cycles and EVMMirBuilder::setInsertBlock from 12.92% to 0.01%. This is
workload-specific diagnostic evidence, not a full-mainnet, 32-block,
production, runtime, or statistically formal benchmark claim. It motivates
the change but does not measure the rebased integration.

No public export, SONAME, dependency, object layout, global state, threading,
or determinism change was found.

Change document: docs/changes/2026-07-24-reduce-compiler-cold-path-scans/README.md

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

  • N
  • Y

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

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

Validated on implementation head 7390935 rebased onto a7e73059. The
subsequent change-document commit 56729ee does not modify source or tests:

  • cmake -S . -B build && cmake --build build -j56
  • tools/format.sh check
  • git diff --check upstream/main..HEAD
  • focused new regressions: 3/3
  • Release EVM frontend suite: 53/53
  • Release EVM range analyzer suite: 50/50
  • Release EVM differential suite: 65/65
  • ASAN EVM frontend suite: 53/53, with 0 sanitizer errors
  • tools/dtvm_local_test.sh --auto --base upstream/main --jobs 1:
    unit 223/223, EEST state 2723/2723, EVM assembly 209/209, and CTest 12/12
  • GitHub Actions triggered by the rebased push: 17/17 checks completed
    successfully on PR head 56729ee
  • current-main performance checks: interpreter 194/194 and multipass 194/194,
    with 0 regressions in each mode

6. Release note

Improve multipass cold compilation by avoiding repeated MIR block-membership and CGIR definition-prefix scans.

Copilot AI review requested due to automatic review settings July 24, 2026 01:52

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@github-actions

github-actions Bot commented Jul 24, 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.54 1.54 +0.0% PASS
total/main/blake2b_huff/empty 0.02 0.03 +5.5% PASS
total/main/blake2b_shifts/8415nulls 8.08 8.29 +2.6% PASS
total/main/sha1_divs/5311 5.35 5.52 +3.3% PASS
total/main/sha1_divs/empty 0.06 0.06 +1.9% PASS
total/main/sha1_shifts/5311 3.38 3.42 +1.1% PASS
total/main/sha1_shifts/empty 0.03 0.03 -0.3% PASS
total/main/snailtracer/benchmark 53.67 58.69 +9.4% PASS
total/main/structarray_alloc/nfts_rank 0.63 0.65 +3.3% PASS
total/main/swap_math/insufficient_liquidity 0.00 0.00 +0.5% PASS
total/main/swap_math/received 0.00 0.00 +9.6% PASS
total/main/swap_math/spent 0.00 0.00 +3.7% PASS
total/main/weierstrudel/1 0.20 0.19 -1.6% PASS
total/main/weierstrudel/15 2.05 2.10 +2.8% PASS
total/micro/JUMPDEST_n0/empty 1.48 1.47 -0.8% PASS
total/micro/jump_around/empty 0.05 0.05 +1.0% PASS
total/micro/loop_with_many_jumpdests/empty 36.76 40.63 +10.5% PASS
total/micro/memory_grow_mload/by1 0.10 0.10 -1.3% PASS
total/micro/memory_grow_mload/by16 0.11 0.11 +2.1% PASS
total/micro/memory_grow_mload/by32 0.07 0.07 -1.9% PASS
total/micro/memory_grow_mload/nogrow 0.06 0.06 +5.5% PASS
total/micro/memory_grow_mstore/by1 0.11 0.11 +6.8% PASS
total/micro/memory_grow_mstore/by16 0.07 0.07 -2.5% PASS
total/micro/memory_grow_mstore/by32 0.13 0.13 -0.1% PASS
total/micro/memory_grow_mstore/nogrow 0.10 0.11 +11.0% PASS
total/micro/signextend/one 0.16 0.15 -2.2% PASS
total/micro/signextend/zero 0.25 0.27 +6.6% PASS
total/synth/ADD/b0 1.00 1.00 +0.5% PASS
total/synth/ADD/b1 1.66 1.71 +3.4% PASS
total/synth/ADDRESS/a0 5.71 5.73 +0.3% PASS
total/synth/ADDRESS/a1 4.34 4.35 +0.3% PASS
total/synth/AND/b0 1.08 1.00 -7.4% PASS
total/synth/AND/b1 1.47 1.49 +1.5% PASS
total/synth/BYTE/b0 4.12 4.09 -0.7% PASS
total/synth/BYTE/b1 4.46 4.59 +2.8% PASS
total/synth/CALLDATASIZE/a0 3.23 3.36 +3.9% PASS
total/synth/CALLDATASIZE/a1 2.28 2.28 -0.4% PASS
total/synth/CALLER/a0 5.75 5.93 +3.2% PASS
total/synth/CALLER/a1 5.78 5.71 -1.3% PASS
total/synth/CALLVALUE/a0 2.24 2.15 -3.8% PASS
total/synth/CALLVALUE/a1 3.25 3.31 +1.8% PASS
total/synth/CODESIZE/a0 3.63 3.77 +3.8% PASS
total/synth/CODESIZE/a1 3.68 3.74 +1.8% PASS
total/synth/DUP1/d0 1.05 1.01 -4.2% PASS
total/synth/DUP1/d1 1.00 1.07 +6.6% PASS
total/synth/DUP10/d0 1.03 1.04 +0.8% PASS
total/synth/DUP10/d1 1.03 1.12 +9.8% PASS
total/synth/DUP11/d0 0.59 0.60 +3.0% PASS
total/synth/DUP11/d1 1.02 1.09 +6.2% PASS
total/synth/DUP12/d0 1.03 1.16 +12.8% PASS
total/synth/DUP12/d1 0.51 0.53 +3.4% PASS
total/synth/DUP13/d0 1.05 1.09 +4.2% PASS
total/synth/DUP13/d1 1.00 1.11 +11.7% PASS
total/synth/DUP14/d0 0.60 0.61 +1.4% PASS
total/synth/DUP14/d1 1.02 1.04 +1.6% PASS
total/synth/DUP15/d0 1.53 1.13 -26.3% PASS
total/synth/DUP15/d1 0.51 0.52 +1.7% PASS
total/synth/DUP16/d0 1.08 1.01 -7.1% PASS
total/synth/DUP16/d1 1.03 1.05 +2.3% PASS
total/synth/DUP2/d0 0.55 0.57 +3.3% PASS
total/synth/DUP2/d1 1.01 1.07 +5.9% PASS
total/synth/DUP3/d0 1.06 1.11 +5.3% PASS
total/synth/DUP3/d1 0.51 0.52 +2.0% PASS
total/synth/DUP4/d0 1.03 1.06 +2.1% PASS
total/synth/DUP4/d1 1.03 1.10 +7.0% PASS
total/synth/DUP5/d0 0.57 0.59 +3.0% PASS
total/synth/DUP5/d1 1.04 1.06 +1.6% PASS
total/synth/DUP6/d0 1.09 1.05 -3.8% PASS
total/synth/DUP6/d1 0.51 0.53 +3.7% PASS
total/synth/DUP7/d0 1.02 1.05 +2.3% PASS
total/synth/DUP7/d1 1.03 1.12 +9.3% PASS
total/synth/DUP8/d0 0.59 0.62 +6.2% PASS
total/synth/DUP8/d1 1.00 1.04 +4.2% PASS
total/synth/DUP9/d0 1.05 1.09 +3.6% PASS
total/synth/DUP9/d1 0.50 0.52 +3.4% PASS
total/synth/EQ/b0 2.49 2.46 -1.2% PASS
total/synth/EQ/b1 2.64 2.75 +4.1% PASS
total/synth/GAS/a0 2.59 2.70 +4.5% PASS
total/synth/GAS/a1 4.01 4.13 +3.0% PASS
total/synth/GT/b0 2.57 2.60 +1.5% PASS
total/synth/GT/b1 2.79 2.78 -0.4% PASS
total/synth/ISZERO/u0 3.80 3.78 -0.4% PASS
total/synth/JUMPDEST/n0 1.49 1.46 -1.8% PASS
total/synth/LT/b0 2.62 2.58 -1.7% PASS
total/synth/LT/b1 2.26 2.19 -3.0% PASS
total/synth/MSIZE/a0 3.16 3.19 +0.8% PASS
total/synth/MSIZE/a1 3.29 3.39 +3.2% PASS
total/synth/MUL/b0 4.14 4.17 +0.6% PASS
total/synth/MUL/b1 3.75 3.93 +4.8% PASS
total/synth/NOT/u0 1.12 1.12 -0.5% PASS
total/synth/OR/b0 1.35 1.48 +9.4% PASS
total/synth/OR/b1 0.99 0.98 -1.5% PASS
total/synth/PC/a0 3.39 3.31 -2.3% PASS
total/synth/PC/a1 2.29 2.26 -1.2% PASS
total/synth/PUSH1/p0 1.20 1.12 -6.8% PASS
total/synth/PUSH1/p1 0.86 0.85 -2.2% PASS
total/synth/PUSH10/p0 1.22 1.24 +1.7% PASS
total/synth/PUSH10/p1 0.89 0.90 +0.8% PASS
total/synth/PUSH11/p0 1.21 1.24 +3.0% PASS
total/synth/PUSH11/p1 1.28 1.35 +5.8% PASS
total/synth/PUSH12/p0 0.73 0.72 -1.5% PASS
total/synth/PUSH12/p1 1.27 1.26 -1.3% PASS
total/synth/PUSH13/p0 1.22 1.22 +0.3% PASS
total/synth/PUSH13/p1 0.85 0.84 -0.4% PASS
total/synth/PUSH14/p0 1.19 1.29 +8.4% PASS
total/synth/PUSH14/p1 1.23 1.32 +7.0% PASS
total/synth/PUSH15/p0 0.73 0.72 -1.0% PASS
total/synth/PUSH15/p1 1.24 1.29 +4.6% PASS
total/synth/PUSH16/p0 1.19 1.19 -0.2% PASS
total/synth/PUSH16/p1 0.86 0.84 -1.8% PASS
total/synth/PUSH17/p0 1.17 1.24 +6.1% PASS
total/synth/PUSH17/p1 1.25 1.29 +3.2% PASS
total/synth/PUSH18/p0 0.73 0.74 +0.4% PASS
total/synth/PUSH18/p1 1.28 1.29 +0.5% PASS
total/synth/PUSH19/p0 1.21 1.29 +6.3% PASS
total/synth/PUSH19/p1 0.85 0.85 -0.2% PASS
total/synth/PUSH2/p0 1.17 1.22 +3.6% PASS
total/synth/PUSH2/p1 1.23 1.28 +4.2% PASS
total/synth/PUSH20/p0 1.19 1.27 +7.0% PASS
total/synth/PUSH20/p1 1.25 1.26 +0.9% PASS
total/synth/PUSH21/p0 0.73 0.74 +2.1% PASS
total/synth/PUSH21/p1 1.25 1.29 +3.2% PASS
total/synth/PUSH22/p0 1.19 1.21 +2.1% PASS
total/synth/PUSH22/p1 0.87 0.85 -2.3% PASS
total/synth/PUSH23/p0 1.20 1.27 +5.3% PASS
total/synth/PUSH23/p1 1.26 1.27 +0.5% PASS
total/synth/PUSH24/p0 0.73 0.73 +0.7% PASS
total/synth/PUSH24/p1 1.27 1.34 +5.4% PASS
total/synth/PUSH25/p0 1.18 1.27 +7.7% PASS
total/synth/PUSH25/p1 0.85 0.85 -0.3% PASS
total/synth/PUSH26/p0 1.17 1.18 +0.9% PASS
total/synth/PUSH26/p1 1.26 1.32 +4.5% PASS
total/synth/PUSH27/p0 0.75 0.75 -0.0% PASS
total/synth/PUSH27/p1 1.30 1.29 -1.3% PASS
total/synth/PUSH28/p0 1.22 1.26 +3.2% PASS
total/synth/PUSH28/p1 0.86 0.86 +0.3% PASS
total/synth/PUSH29/p0 1.22 1.21 -0.7% PASS
total/synth/PUSH29/p1 1.26 1.28 +1.6% PASS
total/synth/PUSH3/p0 0.73 0.72 -0.4% PASS
total/synth/PUSH3/p1 1.25 1.32 +5.9% PASS
total/synth/PUSH30/p0 0.73 0.73 -0.2% PASS
total/synth/PUSH30/p1 1.28 1.25 -1.9% PASS
total/synth/PUSH31/p0 1.16 1.25 +8.1% PASS
total/synth/PUSH31/p1 0.86 0.85 -1.2% PASS
total/synth/PUSH32/p0 1.22 1.14 -6.5% PASS
total/synth/PUSH32/p1 1.37 1.27 -7.2% PASS
total/synth/PUSH4/p0 1.18 1.27 +7.6% PASS
total/synth/PUSH4/p1 0.85 0.84 -0.8% PASS
total/synth/PUSH5/p0 1.20 1.29 +7.0% PASS
total/synth/PUSH5/p1 1.29 1.23 -4.3% PASS
total/synth/PUSH6/p0 0.73 0.72 -1.2% PASS
total/synth/PUSH6/p1 1.24 1.30 +4.8% PASS
total/synth/PUSH7/p0 1.17 1.18 +0.5% PASS
total/synth/PUSH7/p1 0.85 0.85 -0.9% PASS
total/synth/PUSH8/p0 1.21 1.18 -2.1% PASS
total/synth/PUSH8/p1 1.26 1.21 -3.4% PASS
total/synth/PUSH9/p0 0.73 0.72 -0.7% PASS
total/synth/PUSH9/p1 1.33 1.31 -1.2% PASS
total/synth/RETURNDATASIZE/a0 2.45 2.42 -1.1% PASS
total/synth/RETURNDATASIZE/a1 3.54 3.85 +8.7% PASS
total/synth/SAR/b0 3.12 3.25 +4.2% PASS
total/synth/SAR/b1 4.98 4.83 -2.9% PASS
total/synth/SGT/b0 2.56 2.57 +0.5% PASS
total/synth/SGT/b1 2.03 2.03 -0.1% PASS
total/synth/SHL/b0 2.92 2.95 +1.2% PASS
total/synth/SHL/b1 1.16 1.16 +0.2% PASS
total/synth/SHR/b0 2.43 2.50 +3.2% PASS
total/synth/SHR/b1 1.99 2.01 +0.8% PASS
total/synth/SIGNEXTEND/b0 2.23 2.13 -4.8% PASS
total/synth/SIGNEXTEND/b1 3.65 3.78 +3.6% PASS
total/synth/SLT/b0 2.37 2.32 -2.1% PASS
total/synth/SLT/b1 2.64 2.70 +2.3% PASS
total/synth/SUB/b0 1.52 1.64 +7.8% PASS
total/synth/SUB/b1 1.69 1.68 -0.4% PASS
total/synth/SWAP1/s0 0.94 0.96 +2.0% PASS
total/synth/SWAP10/s0 0.96 0.98 +1.9% PASS
total/synth/SWAP11/s0 1.58 1.79 +13.4% PASS
total/synth/SWAP12/s0 1.63 1.73 +6.5% PASS
total/synth/SWAP13/s0 0.94 0.97 +2.9% PASS
total/synth/SWAP14/s0 1.60 1.69 +5.7% PASS
total/synth/SWAP15/s0 1.57 1.89 +20.6% PASS
total/synth/SWAP16/s0 0.95 0.97 +1.6% PASS
total/synth/SWAP2/s0 1.56 1.86 +19.1% PASS
total/synth/SWAP3/s0 1.61 1.76 +9.2% PASS
total/synth/SWAP4/s0 0.95 0.96 +1.5% PASS
total/synth/SWAP5/s0 1.61 1.80 +11.4% PASS
total/synth/SWAP6/s0 1.56 1.84 +17.8% PASS
total/synth/SWAP7/s0 0.95 0.96 +0.7% PASS
total/synth/SWAP8/s0 1.59 1.78 +11.5% PASS
total/synth/SWAP9/s0 1.61 1.99 +23.3% PASS
total/synth/XOR/b0 1.39 1.35 -3.1% PASS
total/synth/XOR/b1 1.35 1.38 +2.2% PASS
total/synth/loop_v1 5.37 5.39 +0.4% PASS
total/synth/loop_v2 5.37 5.60 +4.4% 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 2.29 2.72 +19.0% PASS
total/main/blake2b_huff/empty 0.04 0.04 +5.1% PASS
total/main/blake2b_shifts/8415nulls 4.36 4.31 -1.1% PASS
total/main/sha1_divs/5311 0.88 0.85 -3.3% PASS
total/main/sha1_divs/empty 0.01 0.01 -0.0% PASS
total/main/sha1_shifts/5311 0.76 0.76 +0.8% PASS
total/main/sha1_shifts/empty 0.01 0.01 +0.0% PASS
total/main/snailtracer/benchmark 47.87 48.07 +0.4% PASS
total/main/structarray_alloc/nfts_rank 0.28 0.27 -0.8% PASS
total/main/swap_math/insufficient_liquidity 0.00 0.00 -2.6% PASS
total/main/swap_math/received 0.01 0.01 +0.6% PASS
total/main/swap_math/spent 0.01 0.01 -1.6% PASS
total/main/weierstrudel/1 0.34 0.33 -1.7% PASS
total/main/weierstrudel/15 3.67 3.71 +1.2% PASS
total/micro/JUMPDEST_n0/empty 0.00 0.00 +6.7% PASS
total/micro/jump_around/empty 0.07 0.07 +4.2% PASS
total/micro/loop_with_many_jumpdests/empty 0.01 0.01 -0.4% PASS
total/micro/memory_grow_mload/by1 0.02 0.02 -11.2% PASS
total/micro/memory_grow_mload/by16 0.02 0.02 -5.4% PASS
total/micro/memory_grow_mload/by32 0.01 0.01 -3.0% PASS
total/micro/memory_grow_mload/nogrow 0.01 0.01 -1.2% PASS
total/micro/memory_grow_mstore/by1 0.13 0.13 -1.4% PASS
total/micro/memory_grow_mstore/by16 0.08 0.08 -0.5% PASS
total/micro/memory_grow_mstore/by32 0.17 0.17 -2.0% PASS
total/micro/memory_grow_mstore/nogrow 0.12 0.13 +2.4% PASS
total/micro/signextend/one 0.08 0.08 -2.1% PASS
total/micro/signextend/zero 0.19 0.19 +1.4% PASS
total/synth/ADD/b0 0.00 0.00 +0.1% PASS
total/synth/ADD/b1 0.00 0.00 -1.1% PASS
total/synth/ADDRESS/a0 0.23 0.22 -3.1% PASS
total/synth/ADDRESS/a1 0.15 0.15 +0.3% PASS
total/synth/AND/b0 0.00 0.00 +0.7% PASS
total/synth/AND/b1 0.00 0.00 -2.2% PASS
total/synth/BYTE/b0 0.00 0.00 -0.2% PASS
total/synth/BYTE/b1 0.00 0.00 -1.4% PASS
total/synth/CALLDATASIZE/a0 0.12 0.12 -2.7% PASS
total/synth/CALLDATASIZE/a1 0.07 0.07 -0.0% PASS
total/synth/CALLER/a0 0.22 0.22 +0.9% PASS
total/synth/CALLER/a1 0.24 0.23 -4.8% PASS
total/synth/CALLVALUE/a0 0.19 0.19 +0.0% PASS
total/synth/CALLVALUE/a1 0.28 0.30 +6.3% PASS
total/synth/CODESIZE/a0 0.13 0.12 -3.3% PASS
total/synth/CODESIZE/a1 0.13 0.12 -4.8% PASS
total/synth/DUP1/d0 0.00 0.00 -1.4% PASS
total/synth/DUP1/d1 0.00 0.00 -1.5% PASS
total/synth/DUP10/d0 0.00 0.00 -0.8% PASS
total/synth/DUP10/d1 0.00 0.00 -1.0% PASS
total/synth/DUP11/d0 0.00 0.00 +0.2% PASS
total/synth/DUP11/d1 0.00 0.00 -1.6% PASS
total/synth/DUP12/d0 0.00 0.00 -1.6% PASS
total/synth/DUP12/d1 0.00 0.00 +0.0% PASS
total/synth/DUP13/d0 0.00 0.00 -1.0% PASS
total/synth/DUP13/d1 0.00 0.00 -0.5% PASS
total/synth/DUP14/d0 0.00 0.00 +0.3% PASS
total/synth/DUP14/d1 0.00 0.00 -0.9% PASS
total/synth/DUP15/d0 0.00 0.00 -1.4% PASS
total/synth/DUP15/d1 0.00 0.00 -0.6% PASS
total/synth/DUP16/d0 0.00 0.00 -2.0% PASS
total/synth/DUP16/d1 0.00 0.00 -0.7% PASS
total/synth/DUP2/d0 0.00 0.00 +0.1% PASS
total/synth/DUP2/d1 0.00 0.00 -1.3% PASS
total/synth/DUP3/d0 0.00 0.00 +0.3% 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 -1.8% PASS
total/synth/DUP5/d0 0.00 0.00 -0.3% PASS
total/synth/DUP5/d1 0.00 0.00 -0.5% PASS
total/synth/DUP6/d0 0.00 0.00 -0.7% PASS
total/synth/DUP6/d1 0.00 0.00 -0.8% PASS
total/synth/DUP7/d0 0.00 0.00 -1.2% PASS
total/synth/DUP7/d1 0.00 0.00 -1.0% PASS
total/synth/DUP8/d0 0.00 0.00 +0.0% PASS
total/synth/DUP8/d1 0.00 0.00 -0.7% PASS
total/synth/DUP9/d0 0.00 0.00 +0.2% PASS
total/synth/DUP9/d1 0.00 0.00 -0.4% PASS
total/synth/EQ/b0 0.00 0.00 -1.2% PASS
total/synth/EQ/b1 0.00 0.00 -2.2% PASS
total/synth/GAS/a0 0.76 0.77 +0.3% PASS
total/synth/GAS/a1 0.93 0.93 +0.3% PASS
total/synth/GT/b0 0.00 0.00 -1.8% PASS
total/synth/GT/b1 0.00 0.00 -1.0% PASS
total/synth/ISZERO/u0 0.00 0.00 -0.9% PASS
total/synth/JUMPDEST/n0 0.00 0.00 +0.3% PASS
total/synth/LT/b0 0.00 0.00 -1.5% PASS
total/synth/LT/b1 0.00 0.00 +0.2% PASS
total/synth/MSIZE/a0 0.00 0.00 -0.8% PASS
total/synth/MSIZE/a1 0.00 0.00 -2.5% PASS
total/synth/MUL/b0 0.00 0.00 -0.2% PASS
total/synth/MUL/b1 0.00 0.00 -0.0% PASS
total/synth/NOT/u0 0.00 0.00 -1.1% PASS
total/synth/OR/b0 0.00 0.00 -1.0% PASS
total/synth/OR/b1 0.00 0.00 +0.1% PASS
total/synth/PC/a0 0.00 0.00 -0.6% PASS
total/synth/PC/a1 0.00 0.00 +0.1% PASS
total/synth/PUSH1/p0 0.00 0.00 -0.9% PASS
total/synth/PUSH1/p1 0.00 0.00 +0.3% PASS
total/synth/PUSH10/p0 0.00 0.00 -2.0% PASS
total/synth/PUSH10/p1 0.00 0.00 +1.1% PASS
total/synth/PUSH11/p0 0.00 0.00 +0.8% PASS
total/synth/PUSH11/p1 0.00 0.00 +0.6% PASS
total/synth/PUSH12/p0 0.00 0.00 -0.9% PASS
total/synth/PUSH12/p1 0.00 0.00 -2.2% PASS
total/synth/PUSH13/p0 0.00 0.00 -8.1% PASS
total/synth/PUSH13/p1 0.00 0.00 -2.7% PASS
total/synth/PUSH14/p0 0.00 0.00 +4.8% PASS
total/synth/PUSH14/p1 0.00 0.00 -1.0% PASS
total/synth/PUSH15/p0 0.00 0.00 -1.9% PASS
total/synth/PUSH15/p1 0.00 0.00 -2.3% PASS
total/synth/PUSH16/p0 0.00 0.00 +1.6% PASS
total/synth/PUSH16/p1 0.00 0.00 -1.1% PASS
total/synth/PUSH17/p0 0.00 0.00 +5.2% PASS
total/synth/PUSH17/p1 0.00 0.00 -1.0% PASS
total/synth/PUSH18/p0 0.00 0.00 -0.1% PASS
total/synth/PUSH18/p1 0.00 0.00 +0.2% PASS
total/synth/PUSH19/p0 0.00 0.00 +0.3% PASS
total/synth/PUSH19/p1 0.00 0.00 -0.9% PASS
total/synth/PUSH2/p0 0.00 0.00 -4.7% PASS
total/synth/PUSH2/p1 0.00 0.00 -0.2% PASS
total/synth/PUSH20/p0 0.00 0.00 +0.3% PASS
total/synth/PUSH20/p1 0.00 0.00 -1.3% PASS
total/synth/PUSH21/p0 0.00 0.00 -0.0% PASS
total/synth/PUSH21/p1 0.00 0.00 -2.3% PASS
total/synth/PUSH22/p0 1.80 1.91 +6.2% PASS
total/synth/PUSH22/p1 1.63 1.78 +9.1% PASS
total/synth/PUSH23/p0 1.73 1.87 +7.6% PASS
total/synth/PUSH23/p1 1.93 2.41 +24.8% PASS
total/synth/PUSH24/p0 1.20 1.32 +10.0% PASS
total/synth/PUSH24/p1 1.85 2.21 +19.1% PASS
total/synth/PUSH25/p0 1.72 1.90 +10.5% PASS
total/synth/PUSH25/p1 1.65 1.76 +6.3% PASS
total/synth/PUSH26/p0 1.71 1.86 +9.2% PASS
total/synth/PUSH26/p1 2.04 2.39 +16.8% PASS
total/synth/PUSH27/p0 1.20 1.31 +9.8% PASS
total/synth/PUSH27/p1 1.90 2.30 +20.8% PASS
total/synth/PUSH28/p0 1.71 1.96 +14.5% PASS
total/synth/PUSH28/p1 1.64 1.78 +8.4% PASS
total/synth/PUSH29/p0 1.68 1.88 +12.5% PASS
total/synth/PUSH29/p1 1.86 2.32 +24.8% PASS
total/synth/PUSH3/p0 0.00 0.00 +0.6% PASS
total/synth/PUSH3/p1 0.00 0.00 +0.7% PASS
total/synth/PUSH30/p0 1.29 1.39 +7.9% PASS
total/synth/PUSH30/p1 1.87 2.21 +18.5% PASS
total/synth/PUSH31/p0 1.68 1.95 +16.2% PASS
total/synth/PUSH31/p1 1.78 1.86 +4.0% PASS
total/synth/PUSH32/p0 1.70 1.87 +10.3% PASS
total/synth/PUSH32/p1 1.93 2.37 +22.6% PASS
total/synth/PUSH4/p0 0.00 0.00 -3.2% PASS
total/synth/PUSH4/p1 0.00 0.00 +0.9% PASS
total/synth/PUSH5/p0 0.00 0.00 -3.5% PASS
total/synth/PUSH5/p1 0.00 0.00 -3.7% PASS
total/synth/PUSH6/p0 0.00 0.00 +0.7% PASS
total/synth/PUSH6/p1 0.00 0.00 +0.4% PASS
total/synth/PUSH7/p0 0.00 0.00 -3.3% PASS
total/synth/PUSH7/p1 0.00 0.00 -0.2% PASS
total/synth/PUSH8/p0 0.00 0.00 +1.0% PASS
total/synth/PUSH8/p1 0.00 0.00 -0.7% PASS
total/synth/PUSH9/p0 0.00 0.00 -0.8% PASS
total/synth/PUSH9/p1 0.00 0.00 +0.8% PASS
total/synth/RETURNDATASIZE/a0 0.03 0.03 +0.1% PASS
total/synth/RETURNDATASIZE/a1 0.06 0.06 -1.8% PASS
total/synth/SAR/b0 0.00 0.00 +0.3% PASS
total/synth/SAR/b1 0.00 0.00 -1.1% PASS
total/synth/SGT/b0 0.00 0.00 -7.0% PASS
total/synth/SGT/b1 0.00 0.00 +0.0% PASS
total/synth/SHL/b0 0.00 0.00 -1.4% PASS
total/synth/SHL/b1 0.00 0.00 -0.6% PASS
total/synth/SHR/b0 0.00 0.00 -0.6% PASS
total/synth/SHR/b1 0.00 0.00 -2.4% PASS
total/synth/SIGNEXTEND/b0 0.00 0.00 -0.1% PASS
total/synth/SIGNEXTEND/b1 0.00 0.00 +0.0% PASS
total/synth/SLT/b0 0.00 0.00 +0.3% PASS
total/synth/SLT/b1 0.00 0.00 -0.7% PASS
total/synth/SUB/b0 0.00 0.00 -1.1% PASS
total/synth/SUB/b1 0.00 0.00 +0.6% PASS
total/synth/SWAP1/s0 0.00 0.00 +0.0% PASS
total/synth/SWAP10/s0 0.00 0.00 +0.1% PASS
total/synth/SWAP11/s0 0.00 0.00 -1.3% PASS
total/synth/SWAP12/s0 0.00 0.00 -1.7% PASS
total/synth/SWAP13/s0 0.00 0.00 -0.4% PASS
total/synth/SWAP14/s0 0.00 0.00 -1.2% PASS
total/synth/SWAP15/s0 0.00 0.00 -1.0% PASS
total/synth/SWAP16/s0 0.00 0.00 -0.5% PASS
total/synth/SWAP2/s0 0.00 0.00 -1.7% PASS
total/synth/SWAP3/s0 0.00 0.00 -1.5% PASS
total/synth/SWAP4/s0 0.00 0.00 +0.4% PASS
total/synth/SWAP5/s0 0.00 0.00 -3.8% PASS
total/synth/SWAP6/s0 0.00 0.00 -0.8% PASS
total/synth/SWAP7/s0 0.00 0.00 -0.2% PASS
total/synth/SWAP8/s0 0.00 0.00 -2.0% PASS
total/synth/SWAP9/s0 0.00 0.00 -1.3% PASS
total/synth/XOR/b0 0.00 0.00 -2.3% PASS
total/synth/XOR/b1 0.00 0.00 -3.1% PASS
total/synth/loop_v1 8.46 8.46 -0.0% PASS
total/synth/loop_v2 8.40 8.51 +1.3% PASS

Summary: 194 benchmarks, 0 regressions


Copilot AI review requested due to automatic review settings July 24, 2026 02:43

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Copilot AI review requested due to automatic review settings July 24, 2026 03:51

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

abmcar added 4 commits July 27, 2026 08:03
Replace the EVM MIR builder linear membership scan with MFunction indexed pointer identity lookup. Add focused tests for membership and entry block reuse.
Short-circuit dead-instruction use checks by walking the use suffix backward instead of traversing the full def-use chain. Preserve self-use semantics and cover the tail instruction explicitly.
Copilot AI review requested due to automatic review settings July 27, 2026 08:15
@abmcar
abmcar force-pushed the agent/reduce-compiler-cold-path-scans branch from 9d8e287 to 56729ee Compare July 27, 2026 08:15

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@abmcar
abmcar marked this pull request as ready for review July 27, 2026 08:32
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