Skip to content

feat(other): support bulk memory operations proposal (interpreter mode)#432

Open
ys8888john wants to merge 2 commits intoDTVMStack:mainfrom
ys8888john:bulk_memory_op
Open

feat(other): support bulk memory operations proposal (interpreter mode)#432
ys8888john wants to merge 2 commits intoDTVMStack:mainfrom
ys8888john:bulk_memory_op

Conversation

@ys8888john
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):

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

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

6. Release note

None

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

Adds interpreter-mode support for WebAssembly bulk memory operations (0xFC-prefixed instructions) and introduces proposal WAST coverage, while explicitly skipping these tests in JIT modes.

Changes:

  • Implement decode/validation/execution paths for bulk-memory ops (memory.init/copy/fill, data.drop, table.init/copy, elem.drop) in the interpreter and validators.
  • Extend module loading/instantiation to understand active vs passive data/element segments and track dropped segments at runtime.
  • Add proposal WAST tests and adjust the spec test generation/runner behavior to accommodate the new proposal.

Reviewed changes

Copilot reviewed 26 out of 26 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
tests/wast/spec.patch Updates upstream spec test patching to align with new element/data segment expectations.
tests/wast/proposals/table_init.wast Adds table.init coverage (bounds, drop behavior, zero-length cases).
tests/wast/proposals/table_copy.wast Adds table.copy coverage (including overlap and bounds).
tests/wast/proposals/memory_init.wast Adds memory.init coverage (bounds, partial init, zero-length).
tests/wast/proposals/memory_fill.wast Adds memory.fill coverage (truncation, bounds, zero-length).
tests/wast/proposals/memory_copy.wast Adds memory.copy coverage (overlap, bounds, zero-length).
tests/wast/proposals/elem_drop.wast Adds elem.drop + post-drop table.init trapping coverage.
tests/wast/proposals/data_drop.wast Adds data.drop + post-drop memory.init trapping coverage.
src/utils/wasm.cpp Extends block-skipping logic to recognize 0xFC-prefixed instructions.
src/tests/spec_unit_tests.cpp Skips bulk-memory proposal tests when disabled or in non-interpreter modes.
src/tests/CMakeLists.txt Stops passing --disable-bulk-memory to wast2json so proposal syntax can be generated.
src/runtime/module.h Adds segment mode tracking and new validation helpers/accessors for elem/data segments.
src/runtime/instance.h Adds dropped-segment tracking APIs/state (guarded by ZEN_ENABLE_BULK_MEMORY).
src/runtime/instance.cpp Frees dropped-segment tracking arrays in Instance destructor.
src/common/wasm_defs/opcode.def Adds symbolic names for bulk-memory operations (project-internal).
src/common/errors.def Adds Unknown*Segment load errors and OutOfBoundsTable execution error.
src/common/enums.h Introduces 0xFC prefix and sub-opcode constants (bulk-memory).
src/action/module_loader.cpp Parses new element/data segment encodings (flags-based) and assigns segment modes.
src/action/interpreter.cpp Executes 0xFC bulk-memory operations in interpreter mode.
src/action/instantiator.cpp Skips passive segments during instantiation and initializes dropped-segment state.
src/action/function_loader.cpp Validates 0xFC instructions during function validation (bulk-memory enabled only).
src/action/bytecode_visitor.h Rejects 0xFC ops in JIT path with a targeted “unsupported” error.
src/CMakeLists.txt Wires ZEN_ENABLE_BULK_MEMORY into compilation defines.
CMakeLists.txt Adds ZEN_ENABLE_BULK_MEMORY option (default ON).
.github/workflows/dtvm_wasm_test_x86.yml Enables bulk-memory in CI test workflow via env var.
.ci/run_test_suite.sh Adds CMake toggle plumbing for ZEN_ENABLE_BULK_MEMORY.

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

Comment on lines +19 to +21
;; The data segment is active (format 0 with no explicit offset means passive
;; in this case since there's no offset expression). Actually this is passive
;; because there's no (i32.const X) offset.
Copy link

Copilot AI Mar 25, 2026

Choose a reason for hiding this comment

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

The comment above the test cases mischaracterizes (data "...") as an active segment. Under the bulk-memory syntax, (data "...") is a passive data segment (active segments have an explicit offset expr). Please update/remove this comment to avoid confusing future maintainers reading these tests.

Suggested change
;; The data segment is active (format 0 with no explicit offset means passive
;; in this case since there's no offset expression). Actually this is passive
;; because there's no (i32.const X) offset.
;; The module above declares a passive data segment using `(data "...")`.
;; Under the bulk-memory proposal, segments without an explicit offset
;; expression are passive; active segments have an offset expression.

Copilot uses AI. Check for mistakes.
@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 25, 2026

⚡ 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.43 1.49 +4.5% PASS
total/main/blake2b_huff/empty 0.02 0.02 +4.9% PASS
total/main/blake2b_shifts/8415nulls 9.87 11.67 +18.2% PASS
total/main/sha1_divs/5311 4.32 5.13 +18.8% PASS
total/main/sha1_divs/empty 0.05 0.06 +25.0% PASS
total/main/sha1_shifts/5311 2.31 2.86 +24.0% PASS
total/main/sha1_shifts/empty 0.03 0.04 +24.9% PASS
total/main/snailtracer/benchmark 48.87 52.97 +8.4% PASS
total/main/structarray_alloc/nfts_rank 0.98 1.03 +5.0% PASS
total/main/swap_math/insufficient_liquidity 0.00 0.00 +28.2% PASS
total/main/swap_math/received 0.00 0.01 +29.3% PASS
total/main/swap_math/spent 0.00 0.00 +26.6% PASS
total/main/weierstrudel/1 0.24 0.29 +22.4% PASS
total/main/weierstrudel/15 2.54 3.15 +23.9% PASS
total/micro/JUMPDEST_n0/empty 1.51 1.78 +18.1% PASS
total/micro/jump_around/empty 0.04 0.09 +135.1% PASS
total/micro/loop_with_many_jumpdests/empty 23.01 26.90 +16.9% PASS
total/micro/memory_grow_mload/by1 0.10 0.09 -1.4% PASS
total/micro/memory_grow_mload/by16 0.11 0.11 -2.4% PASS
total/micro/memory_grow_mload/by32 0.12 0.11 -5.5% PASS
total/micro/memory_grow_mload/nogrow 0.09 0.09 -5.1% PASS
total/micro/memory_grow_mstore/by1 0.10 0.10 -8.1% PASS
total/micro/memory_grow_mstore/by16 0.11 0.11 -5.9% PASS
total/micro/memory_grow_mstore/by32 0.12 0.12 -2.6% PASS
total/micro/memory_grow_mstore/nogrow 0.10 0.09 -9.8% PASS
total/micro/signextend/one 0.27 0.23 -12.4% PASS
total/micro/signextend/zero 0.26 0.24 -10.4% PASS
total/synth/ADD/b0 1.36 1.95 +43.3% PASS
total/synth/ADD/b1 1.20 1.97 +63.8% PASS
total/synth/ADDRESS/a0 5.95 4.82 -19.1% PASS
total/synth/ADDRESS/a1 6.09 5.39 -11.5% PASS
total/synth/AND/b0 1.27 1.63 +28.3% PASS
total/synth/AND/b1 1.06 1.71 +62.1% PASS
total/synth/BYTE/b0 4.58 6.08 +32.8% PASS
total/synth/BYTE/b1 3.73 4.74 +26.9% PASS
total/synth/CALLDATASIZE/a0 2.96 3.02 +2.0% PASS
total/synth/CALLDATASIZE/a1 3.07 4.09 +33.3% PASS
total/synth/CALLER/a0 5.98 4.86 -18.8% PASS
total/synth/CALLER/a1 6.10 5.32 -12.7% PASS
total/synth/CALLVALUE/a0 3.00 3.26 +8.8% PASS
total/synth/CALLVALUE/a1 3.01 3.60 +19.4% PASS
total/synth/CODESIZE/a0 3.47 3.50 +1.0% PASS
total/synth/CODESIZE/a1 3.49 3.84 +10.2% PASS
total/synth/DUP1/d0 0.61 1.23 +101.5% PASS
total/synth/DUP1/d1 0.65 1.31 +100.4% PASS
total/synth/DUP10/d0 0.61 0.99 +62.7% PASS
total/synth/DUP10/d1 0.61 1.07 +75.4% PASS
total/synth/DUP11/d0 0.61 0.99 +63.2% PASS
total/synth/DUP11/d1 0.61 1.31 +114.4% PASS
total/synth/DUP12/d0 0.66 1.23 +85.2% PASS
total/synth/DUP12/d1 0.61 1.32 +114.7% PASS
total/synth/DUP13/d0 0.61 1.23 +101.8% PASS
total/synth/DUP13/d1 0.61 1.07 +75.3% PASS
total/synth/DUP14/d0 0.61 1.23 +102.2% PASS
total/synth/DUP14/d1 0.61 1.08 +75.4% PASS
total/synth/DUP15/d0 0.61 1.23 +101.8% PASS
total/synth/DUP15/d1 0.61 1.31 +114.4% PASS
total/synth/DUP16/d0 0.61 1.07 +76.8% PASS
total/synth/DUP16/d1 0.61 1.08 +75.6% PASS
total/synth/DUP2/d0 0.61 1.23 +101.2% PASS
total/synth/DUP2/d1 0.61 1.07 +75.1% PASS
total/synth/DUP3/d0 0.61 1.23 +102.0% PASS
total/synth/DUP3/d1 0.61 1.08 +75.4% PASS
total/synth/DUP4/d0 0.61 1.23 +102.6% PASS
total/synth/DUP4/d1 0.61 1.07 +75.2% PASS
total/synth/DUP5/d0 0.61 1.23 +102.2% PASS
total/synth/DUP5/d1 0.61 1.31 +114.3% PASS
total/synth/DUP6/d0 0.61 1.23 +101.6% PASS
total/synth/DUP6/d1 0.61 1.07 +75.2% PASS
total/synth/DUP7/d0 0.61 1.23 +102.3% PASS
total/synth/DUP7/d1 0.61 1.07 +75.1% PASS
total/synth/DUP8/d0 0.61 1.23 +101.9% PASS
total/synth/DUP8/d1 0.61 1.07 +75.1% PASS
total/synth/DUP9/d0 0.61 1.23 +102.1% PASS
total/synth/DUP9/d1 0.61 1.07 +75.3% PASS
total/synth/EQ/b0 2.28 2.70 +18.3% PASS
total/synth/EQ/b1 1.25 1.31 +4.5% PASS
total/synth/GAS/a0 3.25 3.75 +15.5% PASS
total/synth/GAS/a1 3.25 3.76 +15.8% PASS
total/synth/GT/b0 2.22 2.59 +16.7% PASS
total/synth/GT/b1 0.96 1.47 +53.2% PASS
total/synth/ISZERO/u0 0.78 1.14 +46.7% PASS
total/synth/JUMPDEST/n0 1.51 1.75 +16.0% PASS
total/synth/LT/b0 2.17 2.60 +20.0% PASS
total/synth/LT/b1 0.96 1.47 +53.4% PASS
total/synth/MSIZE/a0 4.14 4.28 +3.3% PASS
total/synth/MSIZE/a1 4.31 4.74 +9.9% PASS
total/synth/MUL/b0 4.41 5.30 +20.0% PASS
total/synth/MUL/b1 4.65 5.29 +13.7% PASS
total/synth/NOT/u0 1.15 1.66 +44.6% PASS
total/synth/OR/b0 1.26 1.63 +29.3% PASS
total/synth/OR/b1 1.05 1.71 +62.4% PASS
total/synth/PC/a0 2.95 3.20 +8.6% PASS
total/synth/PC/a1 2.95 3.55 +20.3% PASS
total/synth/PUSH1/p0 0.97 0.99 +2.2% PASS
total/synth/PUSH1/p1 0.88 1.31 +49.0% PASS
total/synth/PUSH10/p0 0.98 0.99 +0.3% PASS
total/synth/PUSH10/p1 0.91 1.31 +44.3% PASS
total/synth/PUSH11/p0 0.99 1.15 +15.9% PASS
total/synth/PUSH11/p1 0.90 1.31 +45.9% PASS
total/synth/PUSH12/p0 0.99 1.15 +15.7% PASS
total/synth/PUSH12/p1 0.91 1.31 +43.6% PASS
total/synth/PUSH13/p0 0.99 1.23 +24.6% PASS
total/synth/PUSH13/p1 0.90 1.31 +45.5% PASS
total/synth/PUSH14/p0 0.92 1.24 +34.4% PASS
total/synth/PUSH14/p1 0.91 1.33 +45.8% PASS
total/synth/PUSH15/p0 0.98 0.99 +0.3% PASS
total/synth/PUSH15/p1 0.90 1.39 +54.6% PASS
total/synth/PUSH16/p0 0.99 0.99 -0.0% PASS
total/synth/PUSH16/p1 0.91 1.31 +45.2% PASS
total/synth/PUSH17/p0 0.99 0.99 -0.3% PASS
total/synth/PUSH17/p1 0.96 1.31 +36.8% PASS
total/synth/PUSH18/p0 0.98 0.99 +0.4% PASS
total/synth/PUSH18/p1 0.92 1.31 +43.0% PASS
total/synth/PUSH19/p0 0.99 0.99 -0.4% PASS
total/synth/PUSH19/p1 0.91 1.31 +43.8% PASS
total/synth/PUSH2/p0 0.97 0.99 +1.5% PASS
total/synth/PUSH2/p1 0.89 1.31 +46.9% PASS
total/synth/PUSH20/p0 0.99 0.99 -0.2% PASS
total/synth/PUSH20/p1 0.92 1.31 +41.9% PASS
total/synth/PUSH21/p0 0.99 0.99 -0.6% PASS
total/synth/PUSH21/p1 0.92 1.31 +42.6% PASS
total/synth/PUSH22/p0 0.95 1.15 +21.8% PASS
total/synth/PUSH22/p1 0.93 1.31 +40.8% PASS
total/synth/PUSH23/p0 0.99 1.15 +16.1% PASS
total/synth/PUSH23/p1 0.92 1.36 +48.1% PASS
total/synth/PUSH24/p0 0.99 0.99 -0.2% PASS
total/synth/PUSH24/p1 0.94 1.31 +39.8% PASS
total/synth/PUSH25/p0 0.99 1.18 +19.2% PASS
total/synth/PUSH25/p1 0.93 1.31 +41.3% PASS
total/synth/PUSH26/p0 0.99 0.99 -0.6% PASS
total/synth/PUSH26/p1 0.93 1.31 +40.8% PASS
total/synth/PUSH27/p0 0.99 0.99 -0.6% PASS
total/synth/PUSH27/p1 0.98 1.33 +34.7% PASS
total/synth/PUSH28/p0 0.99 0.99 -0.5% PASS
total/synth/PUSH28/p1 0.96 1.32 +38.0% PASS
total/synth/PUSH29/p0 0.99 0.99 -0.7% PASS
total/synth/PUSH29/p1 0.95 1.34 +40.6% PASS
total/synth/PUSH3/p0 0.98 0.99 +0.4% PASS
total/synth/PUSH3/p1 0.88 1.31 +48.5% PASS
total/synth/PUSH30/p0 0.90 0.98 +9.0% PASS
total/synth/PUSH30/p1 0.96 1.31 +37.0% PASS
total/synth/PUSH31/p0 0.99 0.99 -0.3% PASS
total/synth/PUSH31/p1 0.94 1.44 +52.6% PASS
total/synth/PUSH32/p0 0.99 0.91 -8.3% PASS
total/synth/PUSH32/p1 0.96 1.33 +37.9% PASS
total/synth/PUSH4/p0 0.98 0.91 -7.8% PASS
total/synth/PUSH4/p1 0.89 1.31 +47.0% PASS
total/synth/PUSH5/p0 0.98 0.99 +1.0% PASS
total/synth/PUSH5/p1 0.89 1.31 +47.2% PASS
total/synth/PUSH6/p0 0.94 1.15 +21.8% PASS
total/synth/PUSH6/p1 0.90 1.31 +45.6% PASS
total/synth/PUSH7/p0 0.97 0.99 +2.0% PASS
total/synth/PUSH7/p1 0.88 1.31 +48.5% PASS
total/synth/PUSH8/p0 0.98 0.99 +0.3% PASS
total/synth/PUSH8/p1 0.90 1.31 +44.8% PASS
total/synth/PUSH9/p0 0.99 0.99 -0.1% PASS
total/synth/PUSH9/p1 0.90 1.31 +46.1% PASS
total/synth/RETURNDATASIZE/a0 3.33 3.42 +2.8% PASS
total/synth/RETURNDATASIZE/a1 3.32 3.76 +13.2% PASS
total/synth/SAR/b0 3.76 3.78 +0.6% PASS
total/synth/SAR/b1 3.94 4.31 +9.5% PASS
total/synth/SGT/b0 2.19 2.61 +18.8% PASS
total/synth/SGT/b1 1.04 1.55 +48.5% PASS
total/synth/SHL/b0 2.82 3.03 +7.3% PASS
total/synth/SHL/b1 1.26 1.64 +30.2% PASS
total/synth/SHR/b0 2.76 3.10 +12.6% PASS
total/synth/SHR/b1 1.23 1.55 +26.5% PASS
total/synth/SIGNEXTEND/b0 2.86 3.37 +17.9% PASS
total/synth/SIGNEXTEND/b1 2.94 3.45 +17.4% PASS
total/synth/SLT/b0 2.22 2.60 +17.1% PASS
total/synth/SLT/b1 1.05 1.55 +48.3% PASS
total/synth/SUB/b0 1.35 1.95 +43.9% PASS
total/synth/SUB/b1 1.21 1.97 +63.5% PASS
total/synth/SWAP1/s0 1.08 1.50 +39.1% PASS
total/synth/SWAP10/s0 1.10 1.51 +38.2% PASS
total/synth/SWAP11/s0 1.09 1.52 +39.2% PASS
total/synth/SWAP12/s0 1.09 1.52 +39.3% PASS
total/synth/SWAP13/s0 1.10 1.52 +38.5% PASS
total/synth/SWAP14/s0 1.09 1.53 +40.0% PASS
total/synth/SWAP15/s0 1.08 1.53 +40.7% PASS
total/synth/SWAP16/s0 1.08 1.53 +41.7% PASS
total/synth/SWAP2/s0 1.09 1.50 +37.8% PASS
total/synth/SWAP3/s0 1.09 1.50 +37.6% PASS
total/synth/SWAP4/s0 1.09 1.50 +38.3% PASS
total/synth/SWAP5/s0 1.09 1.51 +37.7% PASS
total/synth/SWAP6/s0 1.09 1.51 +39.0% PASS
total/synth/SWAP7/s0 1.09 1.51 +39.3% PASS
total/synth/SWAP8/s0 1.09 1.51 +38.4% PASS
total/synth/SWAP9/s0 1.09 1.51 +39.0% PASS
total/synth/XOR/b0 1.00 1.55 +54.3% PASS
total/synth/XOR/b1 0.99 1.55 +55.8% PASS
total/synth/loop_v1 3.58 4.83 +34.9% PASS
total/synth/loop_v2 3.58 4.76 +32.9% 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.55 2.29 +47.9% PASS
total/main/blake2b_huff/empty 0.07 0.08 +7.3% PASS
total/main/blake2b_shifts/8415nulls 5.21 5.14 -1.2% PASS
total/main/sha1_divs/5311 1.89 1.89 +0.1% PASS
total/main/sha1_divs/empty 0.03 0.03 +0.9% PASS
total/main/sha1_shifts/5311 2.76 2.76 -0.0% PASS
total/main/sha1_shifts/empty 0.04 0.04 +0.8% PASS
total/main/snailtracer/benchmark 53.03 53.92 +1.7% PASS
total/main/structarray_alloc/nfts_rank 0.29 0.29 +0.0% PASS
total/main/swap_math/insufficient_liquidity 0.02 0.02 +3.8% PASS
total/main/swap_math/received 0.02 0.02 +4.5% PASS
total/main/swap_math/spent 0.02 0.02 +3.9% PASS
total/main/weierstrudel/1 0.36 0.40 +12.0% PASS
total/main/weierstrudel/15 3.23 3.73 +15.5% PASS
total/micro/JUMPDEST_n0/empty 0.13 0.13 -0.5% PASS
total/micro/jump_around/empty 0.62 0.62 +0.5% PASS
total/micro/loop_with_many_jumpdests/empty 1.95 1.94 -0.3% PASS
total/micro/memory_grow_mload/by1 0.18 0.19 +9.0% PASS
total/micro/memory_grow_mload/by16 0.20 0.20 +4.1% PASS
total/micro/memory_grow_mload/by32 0.21 0.22 +4.4% PASS
total/micro/memory_grow_mload/nogrow 0.18 0.19 +6.9% PASS
total/micro/memory_grow_mstore/by1 0.18 0.20 +6.3% PASS
total/micro/memory_grow_mstore/by16 0.20 0.21 +4.8% PASS
total/micro/memory_grow_mstore/by32 0.22 0.22 +3.5% PASS
total/micro/memory_grow_mstore/nogrow 0.18 0.19 +6.8% PASS
total/micro/signextend/one 0.35 0.35 +0.2% PASS
total/micro/signextend/zero 0.35 0.35 +0.8% PASS
total/synth/ADD/b0 0.01 0.01 +8.5% PASS
total/synth/ADD/b1 0.01 0.01 +7.6% PASS
total/synth/ADDRESS/a0 0.16 0.16 +0.5% PASS
total/synth/ADDRESS/a1 0.16 0.16 +0.8% PASS
total/synth/AND/b0 0.01 0.01 +8.5% PASS
total/synth/AND/b1 0.01 0.01 +7.6% PASS
total/synth/BYTE/b0 1.95 1.95 +0.0% PASS
total/synth/BYTE/b1 2.32 2.32 -0.1% PASS
total/synth/CALLDATASIZE/a0 0.08 0.08 +4.5% PASS
total/synth/CALLDATASIZE/a1 0.08 0.08 +4.4% PASS
total/synth/CALLER/a0 0.16 0.16 +0.8% PASS
total/synth/CALLER/a1 0.16 0.16 +0.8% PASS
total/synth/CALLVALUE/a0 0.27 0.28 +0.6% PASS
total/synth/CALLVALUE/a1 0.28 0.28 +0.6% PASS
total/synth/CODESIZE/a0 0.08 0.08 +1.6% PASS
total/synth/CODESIZE/a1 0.08 0.08 +1.7% PASS
total/synth/DUP1/d0 0.01 0.01 +8.6% PASS
total/synth/DUP1/d1 0.01 0.01 +7.6% PASS
total/synth/DUP10/d0 0.01 0.01 +8.6% PASS
total/synth/DUP10/d1 0.01 0.01 +7.6% PASS
total/synth/DUP11/d0 0.01 0.01 +8.6% PASS
total/synth/DUP11/d1 0.01 0.01 +7.3% PASS
total/synth/DUP12/d0 0.01 0.01 +8.6% PASS
total/synth/DUP12/d1 0.01 0.01 +7.7% PASS
total/synth/DUP13/d0 0.01 0.01 +8.7% PASS
total/synth/DUP13/d1 0.01 0.01 +7.7% PASS
total/synth/DUP14/d0 0.01 0.01 +8.7% PASS
total/synth/DUP14/d1 0.01 0.01 +7.7% PASS
total/synth/DUP15/d0 0.01 0.01 +8.7% PASS
total/synth/DUP15/d1 0.01 0.01 +7.7% PASS
total/synth/DUP16/d0 0.01 0.01 +8.4% PASS
total/synth/DUP16/d1 0.01 0.01 +7.6% PASS
total/synth/DUP2/d0 0.01 0.01 +8.5% PASS
total/synth/DUP2/d1 0.01 0.01 +7.7% PASS
total/synth/DUP3/d0 0.01 0.01 +8.6% PASS
total/synth/DUP3/d1 0.01 0.01 +7.7% PASS
total/synth/DUP4/d0 0.01 0.01 +8.6% PASS
total/synth/DUP4/d1 0.01 0.01 +7.7% PASS
total/synth/DUP5/d0 0.01 0.01 +8.6% PASS
total/synth/DUP5/d1 0.01 0.01 +7.9% PASS
total/synth/DUP6/d0 0.01 0.01 +8.6% PASS
total/synth/DUP6/d1 0.01 0.01 +7.8% PASS
total/synth/DUP7/d0 0.01 0.01 +8.7% PASS
total/synth/DUP7/d1 0.01 0.01 +7.6% PASS
total/synth/DUP8/d0 0.01 0.01 +8.6% PASS
total/synth/DUP8/d1 0.01 0.01 +7.7% PASS
total/synth/DUP9/d0 0.01 0.01 +8.6% PASS
total/synth/DUP9/d1 0.01 0.01 +7.7% PASS
total/synth/EQ/b0 0.01 0.01 +8.5% PASS
total/synth/EQ/b1 0.01 0.01 +7.6% PASS
total/synth/GAS/a0 0.80 0.80 +0.1% PASS
total/synth/GAS/a1 0.76 0.76 +0.1% PASS
total/synth/GT/b0 0.01 0.01 +8.4% PASS
total/synth/GT/b1 0.01 0.01 +7.6% PASS
total/synth/ISZERO/u0 0.01 0.01 +11.8% PASS
total/synth/JUMPDEST/n0 0.13 0.13 +0.5% PASS
total/synth/LT/b0 0.01 0.01 +8.5% PASS
total/synth/LT/b1 0.01 0.01 +7.7% PASS
total/synth/MSIZE/a0 0.01 0.01 +11.7% PASS
total/synth/MSIZE/a1 0.01 0.01 +11.8% PASS
total/synth/MUL/b0 0.01 0.01 +8.4% PASS
total/synth/MUL/b1 0.01 0.01 +7.7% PASS
total/synth/NOT/u0 0.01 0.01 +11.6% PASS
total/synth/OR/b0 0.01 0.01 +8.5% PASS
total/synth/OR/b1 0.01 0.01 +7.7% PASS
total/synth/PC/a0 0.01 0.01 +11.8% PASS
total/synth/PC/a1 0.01 0.01 +11.4% PASS
total/synth/PUSH1/p0 0.01 0.01 +8.8% PASS
total/synth/PUSH1/p1 0.01 0.01 +9.2% PASS
total/synth/PUSH10/p0 0.01 0.01 +8.7% PASS
total/synth/PUSH10/p1 0.01 0.01 +9.2% PASS
total/synth/PUSH11/p0 0.01 0.01 +8.7% PASS
total/synth/PUSH11/p1 0.01 0.01 +9.0% PASS
total/synth/PUSH12/p0 0.01 0.01 +8.6% PASS
total/synth/PUSH12/p1 0.01 0.01 +9.1% PASS
total/synth/PUSH13/p0 0.01 0.01 +8.7% PASS
total/synth/PUSH13/p1 0.01 0.01 +9.0% PASS
total/synth/PUSH14/p0 0.01 0.01 +8.6% PASS
total/synth/PUSH14/p1 0.01 0.01 +9.0% PASS
total/synth/PUSH15/p0 0.01 0.01 +8.6% PASS
total/synth/PUSH15/p1 0.01 0.01 +9.0% PASS
total/synth/PUSH16/p0 0.01 0.01 +8.7% PASS
total/synth/PUSH16/p1 0.01 0.01 +9.0% PASS
total/synth/PUSH17/p0 0.01 0.01 +8.4% PASS
total/synth/PUSH17/p1 0.01 0.01 +9.0% PASS
total/synth/PUSH18/p0 0.01 0.01 +8.6% PASS
total/synth/PUSH18/p1 0.01 0.01 +9.1% PASS
total/synth/PUSH19/p0 0.01 0.01 +8.6% PASS
total/synth/PUSH19/p1 0.01 0.01 +9.7% PASS
total/synth/PUSH2/p0 0.01 0.01 +8.6% PASS
total/synth/PUSH2/p1 0.01 0.01 +9.1% PASS
total/synth/PUSH20/p0 0.01 0.01 +8.5% PASS
total/synth/PUSH20/p1 0.01 0.01 +9.0% PASS
total/synth/PUSH21/p0 0.01 0.01 +8.8% PASS
total/synth/PUSH21/p1 0.01 0.01 +9.0% PASS
total/synth/PUSH22/p0 1.08 1.24 +15.4% PASS
total/synth/PUSH22/p1 1.22 1.35 +10.7% PASS
total/synth/PUSH23/p0 1.08 1.24 +15.1% PASS
total/synth/PUSH23/p1 1.24 1.35 +9.4% PASS
total/synth/PUSH24/p0 1.08 1.24 +15.1% PASS
total/synth/PUSH24/p1 1.23 1.35 +9.8% PASS
total/synth/PUSH25/p0 1.08 1.24 +15.2% PASS
total/synth/PUSH25/p1 1.23 1.33 +8.3% PASS
total/synth/PUSH26/p0 0.84 0.92 +9.4% PASS
total/synth/PUSH26/p1 1.22 1.32 +8.6% PASS
total/synth/PUSH27/p0 1.08 1.24 +15.1% PASS
total/synth/PUSH27/p1 1.23 1.32 +7.8% PASS
total/synth/PUSH28/p0 1.08 1.24 +15.0% PASS
total/synth/PUSH28/p1 1.24 1.32 +6.4% PASS
total/synth/PUSH29/p0 1.08 1.24 +15.1% PASS
total/synth/PUSH29/p1 1.25 1.32 +6.0% PASS
total/synth/PUSH3/p0 0.01 0.01 +8.7% PASS
total/synth/PUSH3/p1 0.01 0.01 +9.2% PASS
total/synth/PUSH30/p0 1.09 1.26 +15.4% PASS
total/synth/PUSH30/p1 1.24 1.33 +7.2% PASS
total/synth/PUSH31/p0 1.08 1.24 +15.2% PASS
total/synth/PUSH31/p1 1.39 1.43 +2.9% PASS
total/synth/PUSH32/p0 1.08 1.24 +15.2% PASS
total/synth/PUSH32/p1 1.28 1.32 +2.7% PASS
total/synth/PUSH4/p0 0.01 0.01 +8.7% PASS
total/synth/PUSH4/p1 0.01 0.01 +9.0% PASS
total/synth/PUSH5/p0 0.01 0.01 +8.7% PASS
total/synth/PUSH5/p1 0.01 0.01 +9.2% PASS
total/synth/PUSH6/p0 0.01 0.01 +8.7% PASS
total/synth/PUSH6/p1 0.01 0.01 +9.0% PASS
total/synth/PUSH7/p0 0.01 0.01 +8.6% PASS
total/synth/PUSH7/p1 0.01 0.01 +9.1% PASS
total/synth/PUSH8/p0 0.01 0.01 +8.7% PASS
total/synth/PUSH8/p1 0.01 0.01 +9.3% PASS
total/synth/PUSH9/p0 0.01 0.01 +8.8% PASS
total/synth/PUSH9/p1 0.01 0.01 +9.1% PASS
total/synth/RETURNDATASIZE/a0 0.53 0.53 +0.2% PASS
total/synth/RETURNDATASIZE/a1 0.49 0.49 +0.1% PASS
total/synth/SAR/b0 3.78 3.79 +0.3% PASS
total/synth/SAR/b1 4.28 4.34 +1.4% PASS
total/synth/SGT/b0 0.01 0.01 +8.3% PASS
total/synth/SGT/b1 0.01 0.01 +7.7% PASS
total/synth/SHL/b0 3.06 3.03 -1.0% PASS
total/synth/SHL/b1 1.65 1.65 +0.1% PASS
total/synth/SHR/b0 3.11 3.11 +0.1% PASS
total/synth/SHR/b1 1.52 1.57 +2.9% PASS
total/synth/SIGNEXTEND/b0 3.12 3.11 -0.3% PASS
total/synth/SIGNEXTEND/b1 3.55 3.46 -2.6% PASS
total/synth/SLT/b0 0.01 0.01 +8.5% PASS
total/synth/SLT/b1 0.01 0.01 +7.6% PASS
total/synth/SUB/b0 0.01 0.01 +8.3% PASS
total/synth/SUB/b1 0.01 0.01 +7.7% PASS
total/synth/SWAP1/s0 0.01 0.01 +1.3% PASS
total/synth/SWAP10/s0 0.01 0.01 +1.9% PASS
total/synth/SWAP11/s0 0.01 0.01 +1.7% PASS
total/synth/SWAP12/s0 0.01 0.01 +1.2% PASS
total/synth/SWAP13/s0 0.01 0.01 +1.8% PASS
total/synth/SWAP14/s0 0.01 0.01 +1.7% PASS
total/synth/SWAP15/s0 0.01 0.01 +1.1% PASS
total/synth/SWAP16/s0 0.01 0.01 +1.2% PASS
total/synth/SWAP2/s0 0.01 0.01 +1.5% PASS
total/synth/SWAP3/s0 0.01 0.01 +1.6% PASS
total/synth/SWAP4/s0 0.01 0.01 +1.3% PASS
total/synth/SWAP5/s0 0.01 0.01 +1.4% PASS
total/synth/SWAP6/s0 0.01 0.01 +1.3% PASS
total/synth/SWAP7/s0 0.01 0.01 +1.4% PASS
total/synth/SWAP8/s0 0.01 0.01 +1.7% PASS
total/synth/SWAP9/s0 0.01 0.01 +1.3% PASS
total/synth/XOR/b0 0.01 0.01 +8.5% PASS
total/synth/XOR/b1 0.01 0.01 +7.5% PASS
total/synth/loop_v1 1.41 1.41 +0.4% PASS
total/synth/loop_v2 1.33 1.33 +0.6% 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