Skip to content

chore: Try to optimize compilation memory#10113

Merged
aakoshh merged 14 commits intomasterfrom
af/compile-memory
Oct 9, 2025
Merged

chore: Try to optimize compilation memory#10113
aakoshh merged 14 commits intomasterfrom
af/compile-memory

Conversation

@aakoshh
Copy link
Contributor

@aakoshh aakoshh commented Oct 8, 2025

Description

Problem*

The rollup-checkpoint-root and rollup-checkpoint-root-single-block contracts need almost 10GB memory during compilation, see here.

Summary*

Improves compilation memory usage in the heaviest aztec-protocol circuits:

contract new old ratio
private-kernel-reset 498.22 MB 562.99 MB 0.88
rollup-checkpoint-root-single-block 6820 MB 9710 MB 0.70
rollup-checkpoint-root 6820 MB 9720 MB 0.70
rollup-tx-base-private 1050 MB 1360 MB 0.77
rollup-tx-base-public 2940 MB 6960 MB 0.42
sha512_100_bytes 185.39 MB 251.6 MB 0.74

Reinsertion

Adds an allow_reinsert flag to FunctionInserter::push_instruction_value; when true it passes the instruction ID to to DataFlowGraph::insert_instruction_and_results_if_simplified to try to avoid storing a new copy of an instruction when we can reinsert it as-is.

The flag gets different values in different passes:

  • flatten_cfg: Allows reinsertion as we are mostly focussing on sprinkling around the enable_side_effect instructions and weaving them into instructions, but whatever isn't affected can be reused. Not using OTOH duplicates all instructions.
  • mem2reg: We can only reuse instructions we haven't seen before, because we are tracking which instruction to remove by ID, and if we reinsert multiple times then we might just want to remove the last one, yet we end up removing all occurrences.
  • unrolling: Not using because we are importing between blocks
  • loop_invariant: Using when we reinsert into the same block, not when hoisting into the pre-header.

Inline order

Changed function inlining to go in bottom-up order and overwrite functions as soon as they have been inlined, hoping to reduce the outstanding memory. Unfortunately it had no effect on the peak memory.

Remove unused instructions

Added a Ssa::remove_unused_instructions pass after some of the DIE and mem2reg passes, hoping to free some memory from the DenseMap by making the content smaller. It had negligible effect, maybe 300MB. Potentially the Instruction::Noop is as large as the largest Instruction anyway, except for MakeArray which has a Vec in it, and maybe some of the others that contain String; the results were SmallVec, so they don't consume more or less if there are just 1-2 results.

Instruction::map_values

Based on profiling, the unconditional creation of a new im::Vec for MakeArray::elements consumed a lot of memory. Since im supports sharing via Arc, I changed this to try to just .clone() and not modify unless an item actually changed.

Additional Context

Profiled command:

./target/release/nargo compile \
      --program-dir /Users/aakoshh/Work/aztec/aztec-packages/noir-projects/noir-protocol-circuits \
      --package rollup_checkpoint_root \
      --silence-warnings --skip-underconstrained-check --skip-brillig-constraints-check --force

Code to compile and sign nargo for Instruments:

#!/usr/bin/env bash

set -e

DIR=$(dirname $0)

cat > $DIR/debug.plist <<EOF
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "https://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"><dict><key>com.apple.security.get-task-allow</key><true/></dict></plist>
EOF

cd $DIR/noir && cargo build -p nargo_cli --release && cd -

codesign -s - -v -f --entitlements $DIR/debug.plist $DIR/noir/target/release/nargo

Documentation*

Check one:

  • No documentation needed.
  • Documentation included in this PR.
  • [For Experimental Features] Documentation to be submitted in a separate PR.

PR Checklist*

  • I have tested the changes locally.
  • I have formatted the changes with Prettier and/or cargo fmt on default settings.

@aakoshh aakoshh added the bench-show Display benchmark results on PR label Oct 8, 2025
@aakoshh aakoshh force-pushed the af/compile-memory branch from 0345079 to 3bd3138 Compare October 8, 2025 12:56
Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

ACVM Benchmarks

Details
Benchmark suite Current: 0c5c7da Previous: 845a8e4 Ratio
purely_sequential_opcodes 267650 ns/iter (± 1320) 252791 ns/iter (± 1014) 1.06
perfectly_parallel_opcodes 232700 ns/iter (± 4288) 224580 ns/iter (± 683) 1.04
perfectly_parallel_batch_inversion_opcodes 2784739 ns/iter (± 7785) 2258668 ns/iter (± 4124) 1.23

This comment was automatically generated by workflow using github-action-benchmark.

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

Test Suite Duration

Details
Benchmark suite Current: 0c5c7da Previous: 845a8e4 Ratio
test_report_AztecProtocol_aztec-packages_noir-projects_aztec-nr 119 s 119 s 1
test_report_AztecProtocol_aztec-packages_noir-projects_noir-contracts 135 s 135 s 1
test_report_AztecProtocol_aztec-packages_noir-projects_noir-protocol-circuits_crates_blob 261 s 268 s 0.97
test_report_AztecProtocol_aztec-packages_noir-projects_noir-protocol-circuits_crates_private-kernel-lib 207 s 212 s 0.98
test_report_AztecProtocol_aztec-packages_noir-projects_noir-protocol-circuits_crates_reset-kernel-lib 35 s 35 s 1
test_report_AztecProtocol_aztec-packages_noir-projects_noir-protocol-circuits_crates_types 155 s 132 s 1.17
test_report_noir-lang_noir-bignum_ 162 s 162 s 1
test_report_noir-lang_noir_bigcurve_ 342 s 421 s 0.81
test_report_noir-lang_sha256_ 15 s 16 s 0.94
test_report_noir-lang_sha512_ 14 s 13 s 1.08
test_report_zkpassport_noir-ecdsa_ 3 s 1 s 3
test_report_zkpassport_noir_rsa_ 1 s 1 s 1

This comment was automatically generated by workflow using github-action-benchmark.

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

⚠️ Performance Alert ⚠️

Possible performance regression was detected for benchmark 'Execution Time'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.20.

Benchmark suite Current: 909e22b Previous: da35eca Ratio
rollup-block-root-single-tx 0.003 s 0.002 s 1.50

This comment was automatically generated by workflow using github-action-benchmark.

CC: @TomAFrench

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

Execution Time

Details
Benchmark suite Current: 0c5c7da Previous: 845a8e4 Ratio
private-kernel-inner 0.012 s 0.012 s 1
private-kernel-reset 0.157 s 0.157 s 1
private-kernel-tail 0.01 s 0.01 s 1
rollup-block-root-first-empty-tx 0.003 s 0.003 s 1
rollup-block-root-single-tx 0.003 s 0.003 s 1
rollup-block-root 0.004 s 0.004 s 1
rollup-checkpoint-merge 0.003 s 0.003 s 1
rollup-checkpoint-root-single-block 12.3 s 12.8 s 0.96
rollup-checkpoint-root 12.5 s 12.4 s 1.01
rollup-root 0.004 s 0.004 s 1
rollup-tx-base-private 0.299 s 0.299 s 1
rollup-tx-base-public 0.236 s 0.238 s 0.99
rollup-tx-merge 0.002 s 0.002 s 1
semaphore-depth-10 0.009 s 0.008 s 1.13
sha512-100-bytes 0.069 s 0.071 s 0.97

This comment was automatically generated by workflow using github-action-benchmark.

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

Opcode count

Details
Benchmark suite Current: 0c5c7da Previous: 845a8e4 Ratio
private-kernel-inner 15876 opcodes 15876 opcodes 1
private-kernel-reset 78291 opcodes 78291 opcodes 1
private-kernel-tail 12195 opcodes 12195 opcodes 1
rollup-block-root-first-empty-tx 1365 opcodes 1365 opcodes 1
rollup-block-root-single-tx 1049 opcodes 1049 opcodes 1
rollup-block-root 2410 opcodes 2410 opcodes 1
rollup-checkpoint-merge 2330 opcodes 2330 opcodes 1
rollup-checkpoint-root-single-block 962022 opcodes 962022 opcodes 1
rollup-checkpoint-root 963382 opcodes 963382 opcodes 1
rollup-root 2830 opcodes 2830 opcodes 1
rollup-tx-base-private 263910 opcodes 263910 opcodes 1
rollup-tx-base-public 245349 opcodes 245349 opcodes 1
rollup-tx-merge 1486 opcodes 1486 opcodes 1
semaphore-depth-10 5700 opcodes 5700 opcodes 1
sha512-100-bytes 13173 opcodes 13173 opcodes 1

This comment was automatically generated by workflow using github-action-benchmark.

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

Artifact Size

Details
Benchmark suite Current: 0c5c7da Previous: 845a8e4 Ratio
private-kernel-inner 736.2 KB 736.2 KB 1
private-kernel-reset 2111.5 KB 2111.5 KB 1
private-kernel-tail 549.6 KB 549.6 KB 1
rollup-block-root-first-empty-tx 179.9 KB 179.9 KB 1
rollup-block-root-single-tx 178.2 KB 178.2 KB 1
rollup-block-root 258.2 KB 258.2 KB 1
rollup-checkpoint-merge 373.8 KB 373.8 KB 1
rollup-checkpoint-root-single-block 27645.4 KB 27645.4 KB 1
rollup-checkpoint-root 27690.6 KB 27690.6 KB 1
rollup-root 414.3 KB 414.3 KB 1
rollup-tx-base-private 4920.2 KB 4920.2 KB 1
rollup-tx-base-public 4571.5 KB 4571.5 KB 1
rollup-tx-merge 186.2 KB 186.2 KB 1
semaphore-depth-10 570.7 KB 570.7 KB 1
sha512-100-bytes 506.3 KB 506.3 KB 1

This comment was automatically generated by workflow using github-action-benchmark.

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

Compilation Time

Details
Benchmark suite Current: 0c5c7da Previous: 845a8e4 Ratio
private-kernel-inner 1.68 s 1.722 s 0.98
private-kernel-reset 7.846 s 7.59 s 1.03
private-kernel-tail 1.338 s 1.538 s 0.87
rollup-block-root-first-empty-tx 1.422 s 1.382 s 1.03
rollup-block-root-single-tx 1.47 s 1.38 s 1.07
rollup-block-root 1.49 s 1.46 s 1.02
rollup-checkpoint-merge 1.526 s 1.478 s 1.03
rollup-checkpoint-root-single-block 223 s 210 s 1.06
rollup-checkpoint-root 219 s 213 s 1.03
rollup-root 1.514 s 1.528 s 0.99
rollup-tx-base-private 17.54 s 17.92 s 0.98
rollup-tx-base-public 131.4 s 80.42 s 1.63
rollup-tx-merge 1.348 s 1.384 s 0.97
semaphore-depth-10 0.799 s 0.786 s 1.02
sha512-100-bytes 1.587 s 2.05 s 0.77

This comment was automatically generated by workflow using github-action-benchmark.

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

Compilation Memory

Details
Benchmark suite Current: 0c5c7da Previous: 845a8e4 Ratio
private-kernel-inner 266.47 MB 273.53 MB 0.97
private-kernel-reset 498.21 MB 562.99 MB 0.88
private-kernel-tail 248.46 MB 256.79 MB 0.97
rollup-block-root-first-empty-tx 341.01 MB 343.28 MB 0.99
rollup-block-root-single-tx 338.46 MB 340.51 MB 0.99
rollup-block-root 341.44 MB 344.33 MB 0.99
rollup-checkpoint-merge 340.78 MB 344.37 MB 0.99
rollup-checkpoint-root-single-block 6820 MB 9710 MB 0.70
rollup-checkpoint-root 6820 MB 9720 MB 0.70
rollup-root 345.05 MB 346.97 MB 0.99
rollup-tx-base-private 1050 MB 1360 MB 0.77
rollup-tx-base-public 2890 MB 6960 MB 0.42
rollup-tx-merge 338.65 MB 339.37 MB 1.00
semaphore_depth_10 92.18 MB 97.55 MB 0.94
sha512_100_bytes 185.49 MB 251.64 MB 0.74

This comment was automatically generated by workflow using github-action-benchmark.

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

Execution Memory

Details
Benchmark suite Current: 0c5c7da Previous: 845a8e4 Ratio
private-kernel-inner 255.57 MB 255.57 MB 1
private-kernel-reset 293.11 MB 293.11 MB 1
private-kernel-tail 244 MB 244 MB 1
rollup-block-root 338.92 MB 338.92 MB 1
rollup-checkpoint-merge 337.79 MB 337.79 MB 1
rollup-checkpoint-root-single-block 1020 MB 1020 MB 1
rollup-checkpoint-root 1020 MB 1020 MB 1
rollup-root 338.99 MB 338.99 MB 1
rollup-tx-base-private 452.47 MB 452.47 MB 1
rollup-tx-base-public 467.36 MB 467.36 MB 1
rollup-tx-merge 337.18 MB 337.18 MB 1
semaphore_depth_10 73.69 MB 73.69 MB 1
sha512_100_bytes 71.96 MB 71.96 MB 1

This comment was automatically generated by workflow using github-action-benchmark.

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

⚠️ Performance Alert ⚠️

Possible performance regression was detected for benchmark 'Compilation Time'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.20.

Benchmark suite Current: 0c5c7da Previous: 845a8e4 Ratio
rollup-tx-base-public 131.4 s 80.42 s 1.63

This comment was automatically generated by workflow using github-action-benchmark.

CC: @TomAFrench

@aakoshh aakoshh requested a review from a team October 8, 2025 17:34
@aakoshh aakoshh marked this pull request as ready for review October 8, 2025 17:43
Copy link
Contributor

@jfecher jfecher left a comment

Choose a reason for hiding this comment

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

Looks great! Showing some good improvements in memory usage in CI.

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

⚠️ Performance Alert ⚠️

Possible performance regression was detected for benchmark 'Test Suite Duration'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.20.

Benchmark suite Current: 0c5c7da Previous: 845a8e4 Ratio
test_report_zkpassport_noir-ecdsa_ 3 s 1 s 3

This comment was automatically generated by workflow using github-action-benchmark.

CC: @TomAFrench

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

⚠️ Performance Alert ⚠️

Possible performance regression was detected for benchmark 'ACVM Benchmarks'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.20.

Benchmark suite Current: 0c5c7da Previous: 845a8e4 Ratio
perfectly_parallel_batch_inversion_opcodes 2784739 ns/iter (± 7785) 2258668 ns/iter (± 4124) 1.23

This comment was automatically generated by workflow using github-action-benchmark.

CC: @TomAFrench

Copy link
Contributor

@jfecher jfecher left a comment

Choose a reason for hiding this comment

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

Nice 👍

@aakoshh aakoshh added this pull request to the merge queue Oct 9, 2025
Merged via the queue into master with commit f19c641 Oct 9, 2025
132 checks passed
@aakoshh aakoshh deleted the af/compile-memory branch October 9, 2025 19:48
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Oct 13, 2025
Automated pull of nightly from the [noir](https://github.com/noir-lang/noir) programming language, a dependency of Aztec.
BEGIN_COMMIT_OVERRIDE
chore: add unit tests for brillig-gen (noir-lang/noir#10130)
chore(ACIR): remove non-ACIR intrinsics during simplification (noir-lang/noir#10145)
fix: Do not carry over `#[fold]` to unconstrained functions during monomorphization (noir-lang/noir#10155)
chore(SSA): avoid consuming self when returning Arc (noir-lang/noir#10147)
fix(ssa): Use `Type::element_size` instead of `Type::flattened_size` for `optimize_length_one_array_read` (noir-lang/noir#10146)
fix(ssa): SSA Interpreter handle overflow by promoting to Field (noir-lang/noir#10097)
chore: Try to optimize compilation memory (noir-lang/noir#10113)
chore(ACIRgen): smaller AcirDynamicArray value_types (noir-lang/noir#10128)
chore(brillig_vm): Re-org integration tests and add a couple more (noir-lang/noir#10129)
chore: unhide `inliner-aggressiveness` option (noir-lang/noir#10137)
chore(brillig_vm): Expand arithmetic int ops tests and add field ops tests (noir-lang/noir#10101)
chore(ACIR): don't override output count in black box function (noir-lang/noir#10123)
chore(test): Add `interpret_execution_failure` tests (noir-lang/noir#9912)
fix(ACIR): correctly display the zero expression (noir-lang/noir#10124)
chore: typos and some refactors in `acvm/src/pwg/mod.rs` (noir-lang/noir#10055)
chore: add brillig_call submodule (noir-lang/noir#10108)
chore(ACIRgen): always compute array offset (noir-lang/noir#10099)
chore: More BTreeSet avoidance (noir-lang/noir#10107)
END_COMMIT_OVERRIDE

Co-authored-by: Tom French <15848336+TomAFrench@users.noreply.github.com>
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Oct 13, 2025
Automated pull of nightly from the [noir](https://github.com/noir-lang/noir) programming language, a dependency of Aztec.
BEGIN_COMMIT_OVERRIDE
chore: add unit tests for brillig-gen (noir-lang/noir#10130)
chore(ACIR): remove non-ACIR intrinsics during simplification (noir-lang/noir#10145)
fix: Do not carry over `#[fold]` to unconstrained functions during monomorphization (noir-lang/noir#10155)
chore(SSA): avoid consuming self when returning Arc (noir-lang/noir#10147)
fix(ssa): Use `Type::element_size` instead of `Type::flattened_size` for `optimize_length_one_array_read` (noir-lang/noir#10146)
fix(ssa): SSA Interpreter handle overflow by promoting to Field (noir-lang/noir#10097)
chore: Try to optimize compilation memory (noir-lang/noir#10113)
chore(ACIRgen): smaller AcirDynamicArray value_types (noir-lang/noir#10128)
chore(brillig_vm): Re-org integration tests and add a couple more (noir-lang/noir#10129)
chore: unhide `inliner-aggressiveness` option (noir-lang/noir#10137)
chore(brillig_vm): Expand arithmetic int ops tests and add field ops tests (noir-lang/noir#10101)
chore(ACIR): don't override output count in black box function (noir-lang/noir#10123)
chore(test): Add `interpret_execution_failure` tests (noir-lang/noir#9912)
fix(ACIR): correctly display the zero expression (noir-lang/noir#10124)
chore: typos and some refactors in `acvm/src/pwg/mod.rs` (noir-lang/noir#10055)
chore: add brillig_call submodule (noir-lang/noir#10108)
chore(ACIRgen): always compute array offset (noir-lang/noir#10099)
chore: More BTreeSet avoidance (noir-lang/noir#10107)
END_COMMIT_OVERRIDE
github-merge-queue bot pushed a commit to AztecProtocol/aztec-packages that referenced this pull request Oct 13, 2025
Automated pull of nightly from the
[noir](https://github.com/noir-lang/noir) programming language, a
dependency of Aztec.
BEGIN_COMMIT_OVERRIDE
chore: add unit tests for brillig-gen
(noir-lang/noir#10130)
chore(ACIR): remove non-ACIR intrinsics during simplification
(noir-lang/noir#10145)
fix: Do not carry over `#[fold]` to unconstrained functions during
monomorphization (noir-lang/noir#10155)
chore(SSA): avoid consuming self when returning Arc
(noir-lang/noir#10147)
fix(ssa): Use `Type::element_size` instead of `Type::flattened_size` for
`optimize_length_one_array_read`
(noir-lang/noir#10146)
fix(ssa): SSA Interpreter handle overflow by promoting to Field
(noir-lang/noir#10097)
chore: Try to optimize compilation memory
(noir-lang/noir#10113)
chore(ACIRgen): smaller AcirDynamicArray value_types
(noir-lang/noir#10128)
chore(brillig_vm): Re-org integration tests and add a couple more
(noir-lang/noir#10129)
chore: unhide `inliner-aggressiveness` option
(noir-lang/noir#10137)
chore(brillig_vm): Expand arithmetic int ops tests and add field ops
tests (noir-lang/noir#10101)
chore(ACIR): don't override output count in black box function
(noir-lang/noir#10123)
chore(test): Add `interpret_execution_failure` tests
(noir-lang/noir#9912)
fix(ACIR): correctly display the zero expression
(noir-lang/noir#10124)
chore: typos and some refactors in `acvm/src/pwg/mod.rs`
(noir-lang/noir#10055)
chore: add brillig_call submodule
(noir-lang/noir#10108)
chore(ACIRgen): always compute array offset
(noir-lang/noir#10099)
chore: More BTreeSet avoidance
(noir-lang/noir#10107)
END_COMMIT_OVERRIDE
github-merge-queue bot pushed a commit to AztecProtocol/aztec-packages that referenced this pull request Oct 13, 2025
Automated pull of nightly from the
[noir](https://github.com/noir-lang/noir) programming language, a
dependency of Aztec.
BEGIN_COMMIT_OVERRIDE
chore: add unit tests for brillig-gen
(noir-lang/noir#10130)
chore(ACIR): remove non-ACIR intrinsics during simplification
(noir-lang/noir#10145)
fix: Do not carry over `#[fold]` to unconstrained functions during
monomorphization (noir-lang/noir#10155)
chore(SSA): avoid consuming self when returning Arc
(noir-lang/noir#10147)
fix(ssa): Use `Type::element_size` instead of `Type::flattened_size` for
`optimize_length_one_array_read`
(noir-lang/noir#10146)
fix(ssa): SSA Interpreter handle overflow by promoting to Field
(noir-lang/noir#10097)
chore: Try to optimize compilation memory
(noir-lang/noir#10113)
chore(ACIRgen): smaller AcirDynamicArray value_types
(noir-lang/noir#10128)
chore(brillig_vm): Re-org integration tests and add a couple more
(noir-lang/noir#10129)
chore: unhide `inliner-aggressiveness` option
(noir-lang/noir#10137)
chore(brillig_vm): Expand arithmetic int ops tests and add field ops
tests (noir-lang/noir#10101)
chore(ACIR): don't override output count in black box function
(noir-lang/noir#10123)
chore(test): Add `interpret_execution_failure` tests
(noir-lang/noir#9912)
fix(ACIR): correctly display the zero expression
(noir-lang/noir#10124)
chore: typos and some refactors in `acvm/src/pwg/mod.rs`
(noir-lang/noir#10055)
chore: add brillig_call submodule
(noir-lang/noir#10108)
chore(ACIRgen): always compute array offset
(noir-lang/noir#10099)
chore: More BTreeSet avoidance
(noir-lang/noir#10107)
END_COMMIT_OVERRIDE
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bench-show Display benchmark results on PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants