Skip to content

perf(evm): optimize signextend lowering#438

Open
ZR74 wants to merge 1 commit intoDTVMStack:mainfrom
ZR74:perf/signextend-fastpath
Open

perf(evm): optimize signextend lowering#438
ZR74 wants to merge 1 commit intoDTVMStack:mainfrom
ZR74:perf/signextend-fastpath

Conversation

@ZR74
Copy link
Copy Markdown
Contributor

@ZR74 ZR74 commented Mar 29, 2026

This change optimizes EVM SIGNEXTEND lowering in the multipass JIT.

The previous lowering computed the sign bit position with a wider arithmetic
chain, derived the target 64-bit limb through / 64 and % 64, then built the
extended result from a generic bit-mask formulation. That shape was correct, but
it introduced extra intermediate values and a longer live range around the
selected component, sign mask, and extension path.

This patch rewrites the lowering to follow the interpreter-style decomposition
more directly:

  • sign_word_index = index / 8
  • sign_byte_index = index % 8
  • select the target 64-bit word
  • extract the sign byte
  • sign-extend that byte to i64
  • rebuild the selected word and fill higher words from the sign

What Changed

  • rewrote handleSignextend() in
    src/compiler/evm_frontend/evm_mir_compiler.cpp
  • replaced the generic sign-bit-position and mask construction flow with a
    smaller word/byte-index based lowering
  • reduced the amount of intermediate arithmetic used to identify the sign bit
  • shortened the live range of values involved in component selection and sign
    propagation
  • preserved the existing index >= 31 fast return behavior

Why This Is Better

  • matches the interpreter logic more closely, so the lowering is easier to read
    and reason about
  • avoids the older ((index * 8 + 7) / 64, % 64) shape
  • avoids building the full sign-extension mask through the more generic
    ((1 << (bit_offset + 1)) - 1) path
  • gives the backend a smaller and more localized dataflow graph, which should
    reduce unnecessary copies and register pressure

Dependency Note

This commit is intentionally independent from the earlier u64 fast-path /
constant-folding chain.

In particular, it does not depend on:

  • perf(evm): add u64 constant fast paths and constant folding ...
  • later div/mod u64 fast-path commits built on top of that work

The SIGNEXTEND optimization only changes handleSignextend() in
src/compiler/evm_frontend/evm_mir_compiler.cpp and can be applied cleanly on
top of current upstream/main by itself.

Copilot AI review requested due to automatic review settings March 29, 2026 06:12
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Optimizes multipass JIT lowering for EVM SIGNEXTEND by replacing the previous “sign-bit-position + generic mask” construction with a more direct word/byte decomposition that better matches the interpreter’s structure and reduces intermediate arithmetic/live ranges.

Changes:

  • Rewrote EVMMirBuilder::handleSignextend() lowering to compute (index / 8, index % 8) and operate on the selected 64-bit limb.
  • Extracted the sign byte, sign-extended it to i64, rebuilt the selected limb, and filled higher limbs using the sign.
  • Kept the existing index >= 31 no-op behavior via the existing NoExtension select.

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

MInstruction *One = createIntConstInstruction(MirI64Type, 1);
MInstruction *Const3 = createIntConstInstruction(MirI64Type, 3);
MInstruction *Const8 = createIntConstInstruction(MirI64Type, 8);
MInstruction *Const63 = createIntConstInstruction(MirI64Type, 63);
Copy link

Copilot AI Mar 29, 2026

Choose a reason for hiding this comment

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

Const8 is created but never used in this rewritten lowering, which can trigger unused-variable warnings and slightly undermines the stated goal of reducing intermediates. Remove it (or use it if it was intended for computing SignByteOffset).

Suggested change
MInstruction *Const63 = createIntConstInstruction(MirI64Type, 63);

Copilot uses AI. Check for mistakes.
@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 1.50 1.50 +0.5% PASS
total/main/blake2b_huff/empty 0.02 0.02 +1.2% PASS
total/main/blake2b_shifts/8415nulls 11.76 11.79 +0.3% PASS
total/main/sha1_divs/5311 5.21 5.06 -2.8% PASS
total/main/sha1_divs/empty 0.07 0.06 -0.5% PASS
total/main/sha1_shifts/5311 2.94 2.90 -1.5% PASS
total/main/sha1_shifts/empty 0.04 0.04 -2.1% PASS
total/main/snailtracer/benchmark 53.66 53.23 -0.8% PASS
total/main/structarray_alloc/nfts_rank 1.04 1.04 +0.2% PASS
total/main/swap_math/insufficient_liquidity 0.00 0.00 -0.8% PASS
total/main/swap_math/received 0.01 0.01 +0.1% PASS
total/main/swap_math/spent 0.00 0.00 -0.1% PASS
total/main/weierstrudel/1 0.29 0.29 -0.5% PASS
total/main/weierstrudel/15 3.16 3.15 -0.5% PASS
total/micro/JUMPDEST_n0/empty 1.31 1.63 +24.6% PASS
total/micro/jump_around/empty 0.10 0.10 +0.9% PASS
total/micro/loop_with_many_jumpdests/empty 27.28 24.97 -8.5% PASS
total/micro/memory_grow_mload/by1 0.09 0.09 -2.7% PASS
total/micro/memory_grow_mload/by16 0.10 0.10 +5.5% PASS
total/micro/memory_grow_mload/by32 0.11 0.11 -2.9% PASS
total/micro/memory_grow_mload/nogrow 0.09 0.09 +4.1% PASS
total/micro/memory_grow_mstore/by1 0.09 0.10 +6.5% PASS
total/micro/memory_grow_mstore/by16 0.11 0.11 -0.5% PASS
total/micro/memory_grow_mstore/by32 0.12 0.12 -2.5% PASS
total/micro/memory_grow_mstore/nogrow 0.09 0.09 -0.3% PASS
total/micro/signextend/one 0.23 0.23 -1.3% PASS
total/micro/signextend/zero 0.24 0.23 -2.2% PASS
total/synth/ADD/b0 1.95 1.98 +1.5% PASS
total/synth/ADD/b1 1.98 1.98 -0.0% PASS
total/synth/ADDRESS/a0 4.82 4.83 +0.2% PASS
total/synth/ADDRESS/a1 5.40 5.28 -2.3% PASS
total/synth/AND/b0 1.63 1.63 -0.1% PASS
total/synth/AND/b1 1.71 1.71 +0.1% PASS
total/synth/BYTE/b0 6.09 6.14 +0.8% PASS
total/synth/BYTE/b1 4.77 4.76 -0.2% PASS
total/synth/CALLDATASIZE/a0 3.19 3.03 -4.7% PASS
total/synth/CALLDATASIZE/a1 4.12 3.77 -8.4% PASS
total/synth/CALLER/a0 4.87 4.83 -0.9% PASS
total/synth/CALLER/a1 5.35 5.28 -1.3% PASS
total/synth/CALLVALUE/a0 3.43 3.18 -7.4% PASS
total/synth/CALLVALUE/a1 3.61 3.45 -4.4% PASS
total/synth/CODESIZE/a0 3.51 3.43 -2.4% PASS
total/synth/CODESIZE/a1 3.86 3.77 -2.4% PASS
total/synth/DUP1/d0 0.99 1.23 +24.5% PASS
total/synth/DUP1/d1 1.31 1.23 -6.4% PASS
total/synth/DUP10/d0 1.23 0.99 -19.7% PASS
total/synth/DUP10/d1 1.31 1.00 -24.1% PASS
total/synth/DUP11/d0 1.31 0.91 -30.6% PASS
total/synth/DUP11/d1 1.12 1.24 +10.1% PASS
total/synth/DUP12/d0 1.31 1.15 -12.2% PASS
total/synth/DUP12/d1 1.08 1.00 -7.5% PASS
total/synth/DUP13/d0 1.23 0.99 -19.2% PASS
total/synth/DUP13/d1 1.13 1.01 -10.9% PASS
total/synth/DUP14/d0 1.31 1.23 -6.6% PASS
total/synth/DUP14/d1 1.32 1.24 -6.2% PASS
total/synth/DUP15/d0 1.31 0.99 -24.8% PASS
total/synth/DUP15/d1 1.31 1.23 -6.1% PASS
total/synth/DUP16/d0 1.23 1.23 +0.0% PASS
total/synth/DUP16/d1 1.08 1.23 +14.6% PASS
total/synth/DUP2/d0 1.23 0.91 -26.4% PASS
total/synth/DUP2/d1 1.19 1.24 +3.9% PASS
total/synth/DUP3/d0 0.99 0.98 -0.4% PASS
total/synth/DUP3/d1 1.32 1.24 -6.1% PASS
total/synth/DUP4/d0 1.06 1.15 +8.5% PASS
total/synth/DUP4/d1 1.32 1.23 -6.3% PASS
total/synth/DUP5/d0 1.31 1.15 -12.3% PASS
total/synth/DUP5/d1 1.08 0.99 -7.7% PASS
total/synth/DUP6/d0 1.31 1.15 -12.3% PASS
total/synth/DUP6/d1 1.08 0.99 -7.6% PASS
total/synth/DUP7/d0 1.04 1.15 +10.2% PASS
total/synth/DUP7/d1 1.32 1.24 -6.1% PASS
total/synth/DUP8/d0 1.31 0.99 -24.5% PASS
total/synth/DUP8/d1 1.07 0.99 -7.5% PASS
total/synth/DUP9/d0 1.07 1.15 +7.1% PASS
total/synth/DUP9/d1 1.22 1.24 +0.9% PASS
total/synth/EQ/b0 2.70 2.76 +2.3% PASS
total/synth/EQ/b1 1.31 1.39 +6.2% PASS
total/synth/GAS/a0 3.75 3.68 -2.0% PASS
total/synth/GAS/a1 3.79 3.70 -2.6% PASS
total/synth/GT/b0 2.60 2.63 +0.9% PASS
total/synth/GT/b1 1.51 1.47 -2.4% PASS
total/synth/ISZERO/u0 1.15 0.98 -14.2% PASS
total/synth/JUMPDEST/n0 1.31 1.64 +25.1% PASS
total/synth/LT/b0 2.60 2.68 +2.8% PASS
total/synth/LT/b1 1.48 1.47 -0.2% PASS
total/synth/MSIZE/a0 4.27 4.24 -0.7% PASS
total/synth/MSIZE/a1 4.77 4.67 -2.1% PASS
total/synth/MUL/b0 5.30 5.30 -0.1% PASS
total/synth/MUL/b1 5.30 5.29 -0.1% PASS
total/synth/NOT/u0 1.66 1.66 -0.2% PASS
total/synth/OR/b0 1.64 1.63 -0.2% PASS
total/synth/OR/b1 1.71 1.71 +0.0% PASS
total/synth/PC/a0 3.51 3.09 -12.0% PASS
total/synth/PC/a1 3.58 3.73 +4.2% PASS
total/synth/PUSH1/p0 1.15 0.99 -14.1% PASS
total/synth/PUSH1/p1 1.31 1.17 -10.7% PASS
total/synth/PUSH10/p0 0.91 0.84 -7.8% PASS
total/synth/PUSH10/p1 1.33 1.20 -10.0% PASS
total/synth/PUSH11/p0 0.91 1.04 +14.5% PASS
total/synth/PUSH11/p1 1.31 1.20 -8.8% PASS
total/synth/PUSH12/p0 0.99 0.85 -14.2% PASS
total/synth/PUSH12/p1 1.33 1.19 -10.5% PASS
total/synth/PUSH13/p0 1.23 1.07 -13.3% PASS
total/synth/PUSH13/p1 1.31 1.20 -8.6% PASS
total/synth/PUSH14/p0 1.25 1.06 -14.6% PASS
total/synth/PUSH14/p1 1.33 1.19 -10.3% PASS
total/synth/PUSH15/p0 1.01 0.97 -3.6% PASS
total/synth/PUSH15/p1 1.40 1.30 -7.2% PASS
total/synth/PUSH16/p0 1.15 0.84 -26.8% PASS
total/synth/PUSH16/p1 1.33 1.21 -9.2% PASS
total/synth/PUSH17/p0 1.23 1.07 -13.3% PASS
total/synth/PUSH17/p1 1.31 1.20 -8.5% PASS
total/synth/PUSH18/p0 1.15 1.07 -7.2% PASS
total/synth/PUSH18/p1 1.31 1.20 -8.7% PASS
total/synth/PUSH19/p0 0.99 1.07 +7.8% PASS
total/synth/PUSH19/p1 1.32 1.22 -8.0% PASS
total/synth/PUSH2/p0 0.99 1.07 +7.9% PASS
total/synth/PUSH2/p1 1.31 1.17 -10.8% PASS
total/synth/PUSH20/p0 0.99 0.91 -7.5% PASS
total/synth/PUSH20/p1 1.33 1.21 -8.8% PASS
total/synth/PUSH21/p0 1.15 1.07 -7.1% PASS
total/synth/PUSH21/p1 1.31 1.20 -8.6% PASS
total/synth/PUSH22/p0 1.23 0.86 -29.9% PASS
total/synth/PUSH22/p1 1.33 1.22 -8.3% PASS
total/synth/PUSH23/p0 1.23 1.07 -13.2% PASS
total/synth/PUSH23/p1 1.35 1.25 -7.0% PASS
total/synth/PUSH24/p0 0.99 0.85 -13.7% PASS
total/synth/PUSH24/p1 1.31 1.21 -8.0% PASS
total/synth/PUSH25/p0 0.99 0.99 -0.5% PASS
total/synth/PUSH25/p1 1.32 1.20 -9.1% PASS
total/synth/PUSH26/p0 1.15 0.86 -25.6% PASS
total/synth/PUSH26/p1 1.34 1.21 -9.3% PASS
total/synth/PUSH27/p0 1.15 1.07 -7.1% PASS
total/synth/PUSH27/p1 1.32 1.23 -6.2% PASS
total/synth/PUSH28/p0 0.99 1.07 +7.7% PASS
total/synth/PUSH28/p1 1.33 1.21 -9.1% PASS
total/synth/PUSH29/p0 1.15 0.92 -19.8% PASS
total/synth/PUSH29/p1 1.32 1.21 -8.4% PASS
total/synth/PUSH3/p0 0.99 1.07 +7.9% PASS
total/synth/PUSH3/p1 1.31 1.19 -9.3% PASS
total/synth/PUSH30/p0 1.03 1.10 +6.4% PASS
total/synth/PUSH30/p1 1.34 1.20 -10.8% PASS
total/synth/PUSH31/p0 0.99 1.07 +8.0% PASS
total/synth/PUSH31/p1 1.48 1.39 -6.4% PASS
total/synth/PUSH32/p0 1.15 0.99 -13.8% PASS
total/synth/PUSH32/p1 1.34 1.23 -8.3% PASS
total/synth/PUSH4/p0 0.99 0.84 -15.4% PASS
total/synth/PUSH4/p1 1.33 1.19 -10.2% PASS
total/synth/PUSH5/p0 0.99 0.83 -16.3% PASS
total/synth/PUSH5/p1 1.32 1.20 -8.6% PASS
total/synth/PUSH6/p0 1.23 1.07 -13.1% PASS
total/synth/PUSH6/p1 1.32 1.20 -9.7% PASS
total/synth/PUSH7/p0 0.91 0.99 +8.3% PASS
total/synth/PUSH7/p1 1.31 1.21 -8.1% PASS
total/synth/PUSH8/p0 0.99 0.99 -0.2% PASS
total/synth/PUSH8/p1 1.33 1.20 -9.9% PASS
total/synth/PUSH9/p0 1.00 1.07 +7.1% PASS
total/synth/PUSH9/p1 1.31 1.19 -9.2% PASS
total/synth/RETURNDATASIZE/a0 3.65 3.49 -4.5% PASS
total/synth/RETURNDATASIZE/a1 3.78 3.77 -0.3% PASS
total/synth/SAR/b0 3.79 3.77 -0.3% PASS
total/synth/SAR/b1 4.34 4.28 -1.3% PASS
total/synth/SGT/b0 2.60 2.59 -0.5% PASS
total/synth/SGT/b1 1.57 1.56 -1.0% PASS
total/synth/SHL/b0 3.03 3.05 +0.5% PASS
total/synth/SHL/b1 1.68 1.71 +2.1% PASS
total/synth/SHR/b0 3.11 3.08 -0.7% PASS
total/synth/SHR/b1 1.56 1.59 +2.5% PASS
total/synth/SIGNEXTEND/b0 3.37 3.60 +6.6% PASS
total/synth/SIGNEXTEND/b1 3.45 3.65 +5.8% PASS
total/synth/SLT/b0 2.60 2.62 +0.8% PASS
total/synth/SLT/b1 1.55 1.64 +5.3% PASS
total/synth/SUB/b0 2.02 1.98 -2.3% PASS
total/synth/SUB/b1 1.98 1.98 +0.1% PASS
total/synth/SWAP1/s0 1.50 1.49 -0.9% PASS
total/synth/SWAP10/s0 1.52 1.50 -1.1% PASS
total/synth/SWAP11/s0 1.52 1.51 -1.1% PASS
total/synth/SWAP12/s0 1.52 1.51 -1.1% PASS
total/synth/SWAP13/s0 1.53 1.51 -1.3% PASS
total/synth/SWAP14/s0 1.53 1.51 -1.2% PASS
total/synth/SWAP15/s0 1.53 1.51 -1.1% PASS
total/synth/SWAP16/s0 1.53 1.51 -1.1% PASS
total/synth/SWAP2/s0 1.50 1.49 -1.0% PASS
total/synth/SWAP3/s0 1.50 1.49 -0.9% PASS
total/synth/SWAP4/s0 1.51 1.49 -1.2% PASS
total/synth/SWAP5/s0 1.51 1.49 -1.1% PASS
total/synth/SWAP6/s0 1.51 1.50 -1.0% PASS
total/synth/SWAP7/s0 1.52 1.50 -1.0% PASS
total/synth/SWAP8/s0 1.52 1.50 -1.0% PASS
total/synth/SWAP9/s0 1.52 1.50 -1.1% PASS
total/synth/XOR/b0 1.55 1.55 -0.0% PASS
total/synth/XOR/b1 1.56 1.55 -0.4% PASS
total/synth/loop_v1 4.77 4.77 +0.0% PASS
total/synth/loop_v2 4.63 4.76 +3.0% 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.71 1.69 -1.3% PASS
total/main/blake2b_huff/empty 0.08 0.07 -7.4% PASS
total/main/blake2b_shifts/8415nulls 5.30 5.29 -0.2% PASS
total/main/sha1_divs/5311 1.99 1.94 -2.5% PASS
total/main/sha1_divs/empty 0.03 0.03 -1.5% PASS
total/main/sha1_shifts/5311 2.84 2.96 +4.0% PASS
total/main/sha1_shifts/empty 0.04 0.04 -0.9% PASS
total/main/snailtracer/benchmark 54.25 55.05 +1.5% PASS
total/main/structarray_alloc/nfts_rank 0.33 0.32 -3.9% PASS
total/main/swap_math/insufficient_liquidity 0.02 0.02 -5.7% PASS
total/main/swap_math/received 0.02 0.02 -6.3% PASS
total/main/swap_math/spent 0.02 0.02 -5.1% PASS
total/main/weierstrudel/1 0.37 0.36 -2.4% PASS
total/main/weierstrudel/15 3.50 3.41 -2.6% PASS
total/micro/JUMPDEST_n0/empty 0.13 0.13 +0.3% PASS
total/micro/jump_around/empty 0.59 0.60 +1.3% PASS
total/micro/loop_with_many_jumpdests/empty 1.99 1.99 +0.1% PASS
total/micro/memory_grow_mload/by1 0.23 0.18 -20.4% PASS
total/micro/memory_grow_mload/by16 0.22 0.20 -7.8% PASS
total/micro/memory_grow_mload/by32 0.23 0.22 -7.8% PASS
total/micro/memory_grow_mload/nogrow 0.20 0.18 -8.5% PASS
total/micro/memory_grow_mstore/by1 0.22 0.20 -9.9% PASS
total/micro/memory_grow_mstore/by16 0.24 0.22 -8.8% PASS
total/micro/memory_grow_mstore/by32 0.29 0.24 -18.0% PASS
total/micro/memory_grow_mstore/nogrow 0.22 0.19 -10.7% PASS
total/micro/signextend/one 0.42 0.37 -12.2% PASS
total/micro/signextend/zero 0.41 0.36 -12.1% PASS
total/synth/ADD/b0 0.01 0.01 -14.2% PASS
total/synth/ADD/b1 0.01 0.01 -13.4% PASS
total/synth/ADDRESS/a0 0.16 0.16 -0.9% PASS
total/synth/ADDRESS/a1 0.16 0.16 -0.9% PASS
total/synth/AND/b0 0.01 0.01 -14.3% PASS
total/synth/AND/b1 0.01 0.01 -13.4% PASS
total/synth/BYTE/b0 2.22 2.21 -0.1% PASS
total/synth/BYTE/b1 2.57 2.57 -0.1% PASS
total/synth/CALLDATASIZE/a0 0.09 0.08 -2.3% PASS
total/synth/CALLDATASIZE/a1 0.09 0.08 -0.5% PASS
total/synth/CALLER/a0 0.16 0.16 -0.9% PASS
total/synth/CALLER/a1 0.16 0.16 -0.9% PASS
total/synth/CALLVALUE/a0 0.31 0.31 -0.7% PASS
total/synth/CALLVALUE/a1 0.32 0.32 -0.7% PASS
total/synth/CODESIZE/a0 0.08 0.08 -1.7% PASS
total/synth/CODESIZE/a1 0.08 0.08 -1.7% PASS
total/synth/DUP1/d0 0.01 0.01 -14.2% PASS
total/synth/DUP1/d1 0.01 0.01 -13.4% PASS
total/synth/DUP10/d0 0.01 0.01 -14.2% PASS
total/synth/DUP10/d1 0.01 0.01 -13.4% PASS
total/synth/DUP11/d0 0.01 0.01 -14.3% PASS
total/synth/DUP11/d1 0.01 0.01 -13.4% PASS
total/synth/DUP12/d0 0.01 0.01 -14.3% PASS
total/synth/DUP12/d1 0.01 0.01 -13.4% PASS
total/synth/DUP13/d0 0.01 0.01 -14.2% PASS
total/synth/DUP13/d1 0.01 0.01 -13.4% PASS
total/synth/DUP14/d0 0.01 0.01 -14.2% PASS
total/synth/DUP14/d1 0.01 0.01 -13.3% PASS
total/synth/DUP15/d0 0.01 0.01 -14.2% PASS
total/synth/DUP15/d1 0.01 0.01 -13.3% PASS
total/synth/DUP16/d0 0.01 0.01 -14.1% PASS
total/synth/DUP16/d1 0.01 0.01 -13.4% PASS
total/synth/DUP2/d0 0.01 0.01 -14.2% PASS
total/synth/DUP2/d1 0.01 0.01 -13.5% PASS
total/synth/DUP3/d0 0.01 0.01 -14.2% PASS
total/synth/DUP3/d1 0.01 0.01 -13.4% PASS
total/synth/DUP4/d0 0.01 0.01 -14.3% PASS
total/synth/DUP4/d1 0.01 0.01 -13.4% PASS
total/synth/DUP5/d0 0.01 0.01 -14.3% PASS
total/synth/DUP5/d1 0.01 0.01 -13.2% PASS
total/synth/DUP6/d0 0.01 0.01 -14.3% PASS
total/synth/DUP6/d1 0.01 0.01 -13.2% PASS
total/synth/DUP7/d0 0.01 0.01 -14.3% PASS
total/synth/DUP7/d1 0.01 0.01 -13.4% PASS
total/synth/DUP8/d0 0.01 0.01 -14.2% PASS
total/synth/DUP8/d1 0.01 0.01 -13.4% PASS
total/synth/DUP9/d0 0.01 0.01 -13.8% PASS
total/synth/DUP9/d1 0.01 0.01 -13.4% PASS
total/synth/EQ/b0 0.01 0.01 -14.2% PASS
total/synth/EQ/b1 0.01 0.01 -13.4% PASS
total/synth/GAS/a0 0.88 0.87 -0.2% PASS
total/synth/GAS/a1 0.87 0.87 -0.1% PASS
total/synth/GT/b0 0.01 0.01 -14.2% PASS
total/synth/GT/b1 0.01 0.01 -13.3% PASS
total/synth/ISZERO/u0 0.01 0.01 -10.7% PASS
total/synth/JUMPDEST/n0 0.13 0.13 +1.1% PASS
total/synth/LT/b0 0.01 0.01 -14.2% PASS
total/synth/LT/b1 0.01 0.01 -13.3% PASS
total/synth/MSIZE/a0 0.01 0.01 -10.7% PASS
total/synth/MSIZE/a1 0.01 0.01 -10.7% PASS
total/synth/MUL/b0 0.01 0.01 -14.3% PASS
total/synth/MUL/b1 0.01 0.01 -13.4% PASS
total/synth/NOT/u0 0.01 0.01 -10.4% PASS
total/synth/OR/b0 0.01 0.01 -14.2% PASS
total/synth/OR/b1 0.01 0.01 -13.5% PASS
total/synth/PC/a0 0.01 0.01 -10.7% PASS
total/synth/PC/a1 0.01 0.01 -10.7% PASS
total/synth/PUSH1/p0 0.01 0.01 -8.1% PASS
total/synth/PUSH1/p1 0.01 0.01 -7.4% PASS
total/synth/PUSH10/p0 0.01 0.01 -7.9% PASS
total/synth/PUSH10/p1 0.01 0.01 -7.5% PASS
total/synth/PUSH11/p0 0.01 0.01 -8.0% PASS
total/synth/PUSH11/p1 0.01 0.01 -7.5% PASS
total/synth/PUSH12/p0 0.01 0.01 -8.2% PASS
total/synth/PUSH12/p1 0.01 0.01 -7.5% PASS
total/synth/PUSH13/p0 0.01 0.01 -7.7% PASS
total/synth/PUSH13/p1 0.01 0.01 -7.5% PASS
total/synth/PUSH14/p0 0.01 0.01 -8.0% PASS
total/synth/PUSH14/p1 0.01 0.01 -7.6% PASS
total/synth/PUSH15/p0 0.01 0.01 -8.0% PASS
total/synth/PUSH15/p1 0.01 0.01 -7.3% PASS
total/synth/PUSH16/p0 0.01 0.01 -8.0% PASS
total/synth/PUSH16/p1 0.01 0.01 -7.5% PASS
total/synth/PUSH17/p0 0.01 0.01 -8.1% PASS
total/synth/PUSH17/p1 0.01 0.01 -7.6% PASS
total/synth/PUSH18/p0 0.01 0.01 -8.0% PASS
total/synth/PUSH18/p1 0.01 0.01 -7.5% PASS
total/synth/PUSH19/p0 0.01 0.01 -8.1% PASS
total/synth/PUSH19/p1 0.01 0.01 -7.7% PASS
total/synth/PUSH2/p0 0.01 0.01 -8.1% PASS
total/synth/PUSH2/p1 0.01 0.01 -7.4% PASS
total/synth/PUSH20/p0 0.01 0.01 -8.2% PASS
total/synth/PUSH20/p1 0.01 0.01 -7.6% PASS
total/synth/PUSH21/p0 0.01 0.01 -7.7% PASS
total/synth/PUSH21/p1 0.01 0.01 -7.7% PASS
total/synth/PUSH22/p0 0.94 0.90 -4.9% PASS
total/synth/PUSH22/p1 1.23 1.09 -11.5% PASS
total/synth/PUSH23/p0 0.98 0.95 -3.0% PASS
total/synth/PUSH23/p1 1.19 1.06 -11.1% PASS
total/synth/PUSH24/p0 0.96 0.93 -3.5% PASS
total/synth/PUSH24/p1 1.16 1.07 -8.3% PASS
total/synth/PUSH25/p0 0.95 0.91 -4.5% PASS
total/synth/PUSH25/p1 1.17 1.06 -9.6% PASS
total/synth/PUSH26/p0 1.02 0.90 -12.1% PASS
total/synth/PUSH26/p1 1.17 1.11 -5.0% PASS
total/synth/PUSH27/p0 1.00 0.92 -7.8% PASS
total/synth/PUSH27/p1 1.17 1.07 -8.7% PASS
total/synth/PUSH28/p0 1.02 0.90 -11.9% PASS
total/synth/PUSH28/p1 1.18 1.06 -10.2% PASS
total/synth/PUSH29/p0 0.91 0.91 +0.0% PASS
total/synth/PUSH29/p1 1.24 1.08 -12.6% PASS
total/synth/PUSH3/p0 0.01 0.01 -8.0% PASS
total/synth/PUSH3/p1 0.01 0.01 -7.4% PASS
total/synth/PUSH30/p0 1.01 0.97 -3.6% PASS
total/synth/PUSH30/p1 1.18 1.07 -8.9% PASS
total/synth/PUSH31/p0 1.00 0.92 -8.4% PASS
total/synth/PUSH31/p1 1.25 1.13 -10.2% PASS
total/synth/PUSH32/p0 0.96 0.91 -5.7% PASS
total/synth/PUSH32/p1 1.27 1.07 -16.3% PASS
total/synth/PUSH4/p0 0.01 0.01 -7.9% PASS
total/synth/PUSH4/p1 0.01 0.01 -7.4% PASS
total/synth/PUSH5/p0 0.01 0.01 -8.1% PASS
total/synth/PUSH5/p1 0.01 0.01 -7.2% PASS
total/synth/PUSH6/p0 0.01 0.01 -8.0% PASS
total/synth/PUSH6/p1 0.01 0.01 -7.4% PASS
total/synth/PUSH7/p0 0.01 0.01 -8.0% PASS
total/synth/PUSH7/p1 0.01 0.01 -7.4% PASS
total/synth/PUSH8/p0 0.01 0.01 -8.1% PASS
total/synth/PUSH8/p1 0.01 0.01 -7.5% PASS
total/synth/PUSH9/p0 0.01 0.01 -8.1% PASS
total/synth/PUSH9/p1 0.01 0.01 -7.5% PASS
total/synth/RETURNDATASIZE/a0 0.55 0.54 -0.2% PASS
total/synth/RETURNDATASIZE/a1 0.53 0.53 -0.2% PASS
total/synth/SAR/b0 4.36 4.34 -0.4% PASS
total/synth/SAR/b1 4.93 4.89 -0.9% PASS
total/synth/SGT/b0 0.01 0.01 -14.3% PASS
total/synth/SGT/b1 0.01 0.01 -13.4% PASS
total/synth/SHL/b0 3.57 3.54 -0.8% PASS
total/synth/SHL/b1 1.68 1.72 +2.2% PASS
total/synth/SHR/b0 3.45 3.46 +0.4% PASS
total/synth/SHR/b1 1.64 1.64 -0.1% PASS
total/synth/SIGNEXTEND/b0 3.24 3.65 +12.5% PASS
total/synth/SIGNEXTEND/b1 3.41 3.51 +2.9% PASS
total/synth/SLT/b0 0.01 0.01 -14.4% PASS
total/synth/SLT/b1 0.01 0.01 -13.4% PASS
total/synth/SUB/b0 0.01 0.01 -14.3% PASS
total/synth/SUB/b1 0.01 0.01 -13.2% PASS
total/synth/SWAP1/s0 0.01 0.01 -18.4% PASS
total/synth/SWAP10/s0 0.01 0.01 -18.9% PASS
total/synth/SWAP11/s0 0.01 0.01 -18.8% PASS
total/synth/SWAP12/s0 0.01 0.01 -18.7% PASS
total/synth/SWAP13/s0 0.01 0.01 -18.6% PASS
total/synth/SWAP14/s0 0.01 0.01 -18.6% PASS
total/synth/SWAP15/s0 0.01 0.01 -19.1% PASS
total/synth/SWAP16/s0 0.01 0.01 -18.8% PASS
total/synth/SWAP2/s0 0.01 0.01 -18.8% PASS
total/synth/SWAP3/s0 0.01 0.01 -19.2% PASS
total/synth/SWAP4/s0 0.01 0.01 -18.9% PASS
total/synth/SWAP5/s0 0.01 0.01 -18.0% PASS
total/synth/SWAP6/s0 0.01 0.01 -18.9% PASS
total/synth/SWAP7/s0 0.01 0.01 -19.0% PASS
total/synth/SWAP8/s0 0.01 0.01 -18.8% PASS
total/synth/SWAP9/s0 0.01 0.01 -17.2% PASS
total/synth/XOR/b0 0.01 0.01 -14.2% PASS
total/synth/XOR/b1 0.01 0.01 -13.2% PASS
total/synth/loop_v1 1.41 1.40 -0.1% PASS
total/synth/loop_v2 1.25 1.24 -0.2% PASS

Summary: 194 benchmarks, 0 regressions


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants