Skip to content

chore: add extra constraint folding pass#9766

Merged
TomAFrench merged 14 commits into
masterfrom
tf/extra-constant-fold
Oct 7, 2025
Merged

chore: add extra constraint folding pass#9766
TomAFrench merged 14 commits into
masterfrom
tf/extra-constant-fold

Conversation

@TomAFrench

@TomAFrench TomAFrench commented Sep 8, 2025

Copy link
Copy Markdown
Member

Description

Problem*

This is a quick fix for #9767

Summary*

I noticed that we don't ever deduplicate any fallible instructions which appear in the same block after loop unrolling so this PR adds a quick solution to this by running another pass of the constant folding pass with constraint info (for some reason this is necessary for us to deduplicate like this?)

Additional Context

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.

@github-actions

github-actions Bot commented Sep 8, 2025

Copy link
Copy Markdown
Contributor

Changes to number of Brillig opcodes executed

Generated at commit: 708f951a68d3f1c3adc30494b8573a0aab45497b, compared to commit: 94dadc7effd29309dd2d8a5af345e694a5a5f741

🧾 Summary (10% most significant diffs)

Program Brillig opcodes (+/-) %
slice_dynamic_index_inliner_max -439 ✅ -10.91%
slice_dynamic_index_inliner_zero -439 ✅ -10.91%

Full diff report 👇
Program Brillig opcodes (+/-) %
slice_dynamic_index_inliner_min 4,567 (-2) -0.04%
global_consts_inliner_min 1,389 (-6) -0.43%
global_consts_inliner_max 1,363 (-6) -0.44%
global_consts_inliner_zero 1,363 (-6) -0.44%
global_var_regression_simple_inliner_max 28 (-2) -6.67%
global_var_regression_simple_inliner_zero 28 (-2) -6.67%
slice_dynamic_index_inliner_max 3,584 (-439) -10.91%
slice_dynamic_index_inliner_zero 3,584 (-439) -10.91%

@github-actions

github-actions Bot commented Sep 8, 2025

Copy link
Copy Markdown
Contributor

Changes to Brillig bytecode sizes

Generated at commit: 708f951a68d3f1c3adc30494b8573a0aab45497b, compared to commit: 94dadc7effd29309dd2d8a5af345e694a5a5f741

🧾 Summary (10% most significant diffs)

Program Brillig opcodes (+/-) %
global_var_regression_simple_inliner_max -4 ✅ -10.53%
global_var_regression_simple_inliner_zero -4 ✅ -10.53%

Full diff report 👇
Program Brillig opcodes (+/-) %
slice_dynamic_index_inliner_min 2,150 (-3) -0.14%
slice_dynamic_index_inliner_max 1,626 (-68) -4.01%
slice_dynamic_index_inliner_zero 1,626 (-68) -4.01%
global_consts_inliner_min 201 (-12) -5.63%
global_consts_inliner_max 183 (-12) -6.15%
global_consts_inliner_zero 183 (-12) -6.15%
global_var_regression_simple_inliner_max 34 (-4) -10.53%
global_var_regression_simple_inliner_zero 34 (-4) -10.53%

@TomAFrench TomAFrench added the bench-show Display benchmark results on PR label Sep 8, 2025
@TomAFrench TomAFrench marked this pull request as ready for review September 8, 2025 19:45

@github-actions github-actions Bot 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.

⚠️ 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: 3c52c4c Previous: 94dadc7 Ratio
test_report_zkpassport_noir-ecdsa_ 2 s 1 s 2

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

CC: @TomAFrench

@github-actions github-actions Bot 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.

ACVM Benchmarks

Details
Benchmark suite Current: 3c52c4c Previous: 94dadc7 Ratio
purely_sequential_opcodes 255324 ns/iter (± 628) 251340 ns/iter (± 741) 1.02
perfectly_parallel_opcodes 231613 ns/iter (± 5331) 227733 ns/iter (± 11543) 1.02
perfectly_parallel_batch_inversion_opcodes 2790096 ns/iter (± 922) 2792524 ns/iter (± 2435) 1.00

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

@github-actions github-actions Bot 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.

Opcode count

Details
Benchmark suite Current: 3c52c4c Previous: 94dadc7 Ratio
private-kernel-inner 15925 opcodes 15925 opcodes 1
private-kernel-reset 78389 opcodes 78389 opcodes 1
private-kernel-tail 12197 opcodes 12197 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 245383 opcodes 245383 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.

@github-actions github-actions Bot 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.

Execution Time

Details
Benchmark suite Current: 3c52c4c Previous: 94dadc7 Ratio
private-kernel-inner 0.012 s 0.012 s 1
private-kernel-reset 0.162 s 0.16 s 1.01
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.004 s 0.75
rollup-checkpoint-root-single-block 13.9 s 13.9 s 1
rollup-checkpoint-root 13.9 s 14 s 0.99
rollup-root 0.004 s 0.004 s 1
rollup-tx-base-private 0.301 s 0.3 s 1.00
rollup-tx-base-public 0.24 s 0.239 s 1.00
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.076 s 0.075 s 1.01

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

@github-actions github-actions Bot 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.

Artifact Size

Details
Benchmark suite Current: 3c52c4c Previous: 94dadc7 Ratio
private-kernel-inner 737.6 KB 737.6 KB 1
private-kernel-reset 2114.3 KB 2114.3 KB 1
private-kernel-tail 550.9 KB 550.9 KB 1
rollup-block-root-first-empty-tx 181.1 KB 181.1 KB 1
rollup-block-root-single-tx 179.5 KB 179.5 KB 1
rollup-block-root 259.5 KB 259.5 KB 1
rollup-checkpoint-merge 375 KB 375 KB 1
rollup-checkpoint-root-single-block 27646.7 KB 27646.7 KB 1
rollup-checkpoint-root 27692.1 KB 27692.1 KB 1
rollup-root 415.6 KB 415.6 KB 1
rollup-tx-base-private 4921.5 KB 4921.5 KB 1
rollup-tx-base-public 4574.3 KB 4574.3 KB 1
rollup-tx-merge 187.5 KB 187.5 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.

@github-actions github-actions Bot 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.

Compilation Time

Details
Benchmark suite Current: 3c52c4c Previous: 94dadc7 Ratio
private-kernel-inner 1.786 s 1.774 s 1.01
private-kernel-reset 8.168 s 7.86 s 1.04
private-kernel-tail 1.432 s 1.334 s 1.07
rollup-block-root-first-empty-tx 1.434 s 1.4 s 1.02
rollup-block-root-single-tx 1.43 s 1.37 s 1.04
rollup-block-root 1.46 s 1.44 s 1.01
rollup-checkpoint-merge 1.428 s 1.426 s 1.00
rollup-checkpoint-root-single-block 204 s 198 s 1.03
rollup-checkpoint-root 205 s 213 s 0.96
rollup-root 1.49 s 1.492 s 1.00
rollup-tx-base-private 18.12 s 18 s 1.01
rollup-tx-base-public 82.66 s 82.38 s 1.00
rollup-tx-merge 1.418 s 1.384 s 1.02
semaphore-depth-10 0.852 s 0.789 s 1.08
sha512-100-bytes 1.672 s 1.694 s 0.99

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

@github-actions github-actions Bot 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.

Compilation Memory

Details
Benchmark suite Current: 3c52c4c Previous: 94dadc7 Ratio
private-kernel-inner 273.16 MB 273.16 MB 1
private-kernel-reset 562.6 MB 562.6 MB 1
private-kernel-tail 256.34 MB 256.35 MB 1.00
rollup-block-root-first-empty-tx 342.85 MB 342.85 MB 1
rollup-block-root-single-tx 340.06 MB 340.07 MB 1.00
rollup-block-root 343.91 MB 343.89 MB 1.00
rollup-checkpoint-merge 343.94 MB 343.92 MB 1.00
rollup-checkpoint-root-single-block 9710 MB 9710 MB 1
rollup-checkpoint-root 9720 MB 9720 MB 1
rollup-root 346.53 MB 346.53 MB 1
rollup-tx-base-private 1360 MB 1360 MB 1
rollup-tx-base-public 6950 MB 6960 MB 1.00
rollup-tx-merge 338.93 MB 338.93 MB 1
semaphore_depth_10 96.83 MB 96.83 MB 1
sha512_100_bytes 251.24 MB 251.23 MB 1.00

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

@github-actions github-actions Bot 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.

Test Suite Duration

Details
Benchmark suite Current: 3c52c4c Previous: 94dadc7 Ratio
test_report_AztecProtocol_aztec-packages_noir-projects_aztec-nr 119 s 120 s 0.99
test_report_AztecProtocol_aztec-packages_noir-projects_noir-contracts 131 s 134 s 0.98
test_report_AztecProtocol_aztec-packages_noir-projects_noir-protocol-circuits_crates_blob 279 s 313 s 0.89
test_report_AztecProtocol_aztec-packages_noir-projects_noir-protocol-circuits_crates_private-kernel-lib 212 s 225 s 0.94
test_report_AztecProtocol_aztec-packages_noir-projects_noir-protocol-circuits_crates_reset-kernel-lib 34 s 34 s 1
test_report_AztecProtocol_aztec-packages_noir-projects_noir-protocol-circuits_crates_types 134 s 132 s 1.02
test_report_noir-lang_noir-bignum_ 147 s 159 s 0.92
test_report_noir-lang_noir_bigcurve_ 319 s 322 s 0.99
test_report_noir-lang_sha256_ 15 s 15 s 1
test_report_noir-lang_sha512_ 13 s 13 s 1
test_report_zkpassport_noir-ecdsa_ 2 s 1 s 2
test_report_zkpassport_noir_rsa_ 1 s 2 s 0.50

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

@github-actions github-actions Bot 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.

Execution Memory

Details
Benchmark suite Current: 3c52c4c Previous: 94dadc7 Ratio
private-kernel-inner 255.18 MB 255.18 MB 1
private-kernel-reset 292.72 MB 292.72 MB 1
private-kernel-tail 243.61 MB 243.61 MB 1
rollup-block-root 338.5 MB 338.5 MB 1
rollup-checkpoint-merge 337.36 MB 337.36 MB 1
rollup-checkpoint-root-single-block 1020 MB 1020 MB 1
rollup-checkpoint-root 1020 MB 1020 MB 1
rollup-root 338.56 MB 338.56 MB 1
rollup-tx-base-private 452.04 MB 452.04 MB 1
rollup-tx-base-public 466.93 MB 466.93 MB 1
rollup-tx-merge 336.75 MB 336.75 MB 1
semaphore_depth_10 73.48 MB 73.48 MB 1
sha512_100_bytes 71.73 MB 71.73 MB 1

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

@github-actions github-actions Bot 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.

⚠️ 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: d8c7570 Previous: 46df8f0 Ratio
rollup-root 0.005 s 0.004 s 1.25

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

CC: @TomAFrench

@TomAFrench TomAFrench requested a review from a team September 9, 2025 11:48
Comment thread compiler/noirc_evaluator/src/ssa/opt/constant_folding.rs Outdated
Comment thread compiler/noirc_evaluator/src/ssa/opt/constant_folding.rs
Comment thread compiler/noirc_evaluator/src/ssa/opt/constant_folding.rs
Comment thread compiler/noirc_evaluator/src/ssa/opt/constant_folding.rs Outdated
@vezenovm

vezenovm commented Sep 9, 2025

Copy link
Copy Markdown
Contributor

rollup-block-root-empty 1130 MB 998.53 MB 1.13
rollup-block-root-single-tx 10660 MB 9680 MB 1.10
rollup-block-root 10660 MB 9690 MB 1.10

If we are ok with the slight compilation memory degradation I am good with merging.

@github-actions github-actions Bot 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.

⚠️ 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: 5988137 Previous: d0cbb4f Ratio
rollup-block-root 244 s 203 s 1.20

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

CC: @TomAFrench

@TomAFrench TomAFrench added this pull request to the merge queue Oct 7, 2025
Merged via the queue into master with commit 9067781 Oct 7, 2025
132 checks passed
@TomAFrench TomAFrench deleted the tf/extra-constant-fold branch October 7, 2025 10:09
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Oct 8, 2025
Automated pull of nightly from the [noir](https://github.com/noir-lang/noir) programming language, a dependency of Aztec.
BEGIN_COMMIT_OVERRIDE
chore: Remove unnecessary allocation in `expr_with` (noir-lang/noir#10103)
chore(ACIR): inline `maybe_eq_predicate` (noir-lang/noir#10095)
chore: use `u64` over `Field` in template program (noir-lang/noir#10096)
chore: disallow slice arguments to blackbox functions (noir-lang/noir#10090)
chore(brillig_vm): Separate fuzzing module (noir-lang/noir#10091)
chore: ConstrainNotEqual requires acir predicate (noir-lang/noir#10062)
chore: bump version of bb used in tests (noir-lang/noir#10093)
chore: wrapping arithmetic tests (noir-lang/noir#9714)
chore(brillig_vm): Foreign call module and test re-org (noir-lang/noir#10089)
chore: add extra constraint folding pass (noir-lang/noir#9766)
chore: refactor brillig_blocks (noir-lang/noir#10088)
chore: add regression test for #9986 (noir-lang/noir#10087)
chore: Release Noir(1.0.0-beta.14) (noir-lang/noir#9942)
fix(tag_attr): keep whitespace tokens when parsing (noir-lang/noir#9981)
fix: hoist and then deduplicate (noir-lang/noir#10047)
chore: typos and some refactors in `acvm/src/pwg` (noir-lang/noir#10086)
chore: add in hack for `public_dispatch` (noir-lang/noir#10084)
fix(ssa): Avoid going through `i128` when casting signed to `u128` (noir-lang/noir#10045)
chore: avoid zero bits range-checks (noir-lang/noir#10083)
chore: bump external pinned commits (noir-lang/noir#10082)
fix(stdlib): Only compute the garbage `embedded_curve_result` result if we know we will need it (noir-lang/noir#10077)
fix(ssa): Keep defaults for values returned in the databus (noir-lang/noir#10042)
chore: remove unused predicate from mem-op solver (noir-lang/noir#10079)
chore(ACIR): snapshot tests for each instruction (noir-lang/noir#10071)
fix: remove generic length from ECDSA message hash in stdlib (noir-lang/noir#10043)
chore: validate that no jumps to function entry block exist (noir-lang/noir#10076)
feat(brillig): Centralize memory layout policy and reorganize memory regions (noir-lang/noir#9985)
chore(ci): fix permissions about publishing rustdoc (noir-lang/noir#10075)
chore(ACVM): use Vec instead of Hash for memory blocks (noir-lang/noir#10072)
feat(ssa): `constant_folding` with loop (noir-lang/noir#10019)
chore: take truncate into account for bit size (noir-lang/noir#10059)
chore: update check for `u128` overflow in `check_u128_mul_overflow` (noir-lang/noir#9998)
chore: update check for field overflow in `check_u128_mul_overflow` (noir-lang/noir#9968)
chore(ACIR): binary instructions snapshots (noir-lang/noir#10054)
chore(acir): SliceRemove refactor (noir-lang/noir#10058)
fix(fuzzer): Mark DivisionByZero with different types as equivalent (noir-lang/noir#10066)
chore(fuzz): Remove `is_frontend_friendly` from the AST fuzzer (noir-lang/noir#10046)
chore: use new ACIR syntax in docs, and some tests (noir-lang/noir#10057)
fix(ssa): SSA interpreter to use the 2nd arg in `slice_refcount` (noir-lang/noir#10034)
fix(ssa): SSA interpreter to return 0 for `Intrinsic::*RefCount` when constrained (noir-lang/noir#10033)
chore(ssa_fuzzer): fix array get/set  (noir-lang/noir#10031)
fix(acir): Extend slice on dynamic insertion and compilation panic when flattening (noir-lang/noir#10051)
chore(ACIR): extract convert_constrain_error helper (noir-lang/noir#10050)
chore(ACIR): expand signed lt, div and mod in SSA (noir-lang/noir#10036)
chore(ACIR): more consistent syntax and with less noise (noir-lang/noir#10014)
chore(acir): Code gen tests for slice intrinsics (noir-lang/noir#10017)
feat: parse and display SSA databus (noir-lang/noir#9991)
fix(ssa): Handle partially removed `ArrayGet` groups of complex type during OOB checks (noir-lang/noir#10027)
chore(acir): binary operations always have the same operand types (noir-lang/noir#10028)
feat: Add Module::parent and Module::child_modules (noir-lang/noir#10005)
chore: green light for ACVM optimisation (noir-lang/noir#10002)
chore: unit test for brillig solver (greenlight ACVM execution) (noir-lang/noir#9967)
chore(acir): avoid duplication when invoking brillig stdlib call (noir-lang/noir#10025)
chore: Use 8 partitions for rust tests (noir-lang/noir#10026)
chore: green light for ACVM execution audit (noir-lang/noir#9982)
chore: greenlight for ACVM execution (PWG) (noir-lang/noir#9961)
feat: optimize out noop casts on constants (noir-lang/noir#10024)
fix(mem2reg): consider call return aliases (noir-lang/noir#10016)
chore: bump external pinned commits (noir-lang/noir#10022)
fix(parser): enforce left brace after match expression (noir-lang/noir#10018)
chore(acir): Intrinsics and slice_ops modules as well as slice_ops doc comments (noir-lang/noir#10012)
fix: signed division by -1 can overflow (noir-lang/noir#9976)
chore(ci): fix external checks (noir-lang/noir#10009)
chore(ci): add provenance attestations to npm packages (noir-lang/noir#10011)
chore(ACIR): show all expressions as polynomials (noir-lang/noir#10007)
chore: remove unused feature flag (noir-lang/noir#9993)
chore(ci): fix docs breaking JS releases (noir-lang/noir#10010)
chore(ssa_fuzzer): add external coverage registration  (noir-lang/noir#9974)
END_COMMIT_OVERRIDE

Co-authored-by: Tom French <15848336+TomAFrench@users.noreply.github.com>
github-merge-queue Bot pushed a commit to AztecProtocol/aztec-packages that referenced this pull request Oct 8, 2025
Automated pull of nightly from the
[noir](https://github.com/noir-lang/noir) programming language, a
dependency of Aztec.
BEGIN_COMMIT_OVERRIDE
chore: Remove unnecessary allocation in `expr_with`
(noir-lang/noir#10103)
chore(ACIR): inline `maybe_eq_predicate`
(noir-lang/noir#10095)
chore: use `u64` over `Field` in template program
(noir-lang/noir#10096)
chore: disallow slice arguments to blackbox functions
(noir-lang/noir#10090)
chore(brillig_vm): Separate fuzzing module
(noir-lang/noir#10091)
chore: ConstrainNotEqual requires acir predicate
(noir-lang/noir#10062)
chore: bump version of bb used in tests
(noir-lang/noir#10093)
chore: wrapping arithmetic tests
(noir-lang/noir#9714)
chore(brillig_vm): Foreign call module and test re-org
(noir-lang/noir#10089)
chore: add extra constraint folding pass
(noir-lang/noir#9766)
chore: refactor brillig_blocks
(noir-lang/noir#10088)
chore: add regression test for #9986
(noir-lang/noir#10087)
chore: Release Noir(1.0.0-beta.14)
(noir-lang/noir#9942)
fix(tag_attr): keep whitespace tokens when parsing
(noir-lang/noir#9981)
fix: hoist and then deduplicate
(noir-lang/noir#10047)
chore: typos and some refactors in `acvm/src/pwg`
(noir-lang/noir#10086)
chore: add in hack for `public_dispatch`
(noir-lang/noir#10084)
fix(ssa): Avoid going through `i128` when casting signed to `u128`
(noir-lang/noir#10045)
chore: avoid zero bits range-checks
(noir-lang/noir#10083)
chore: bump external pinned commits
(noir-lang/noir#10082)
fix(stdlib): Only compute the garbage `embedded_curve_result` result if
we know we will need it (noir-lang/noir#10077)
fix(ssa): Keep defaults for values returned in the databus
(noir-lang/noir#10042)
chore: remove unused predicate from mem-op solver
(noir-lang/noir#10079)
chore(ACIR): snapshot tests for each instruction
(noir-lang/noir#10071)
fix: remove generic length from ECDSA message hash in stdlib
(noir-lang/noir#10043)
chore: validate that no jumps to function entry block exist
(noir-lang/noir#10076)
feat(brillig): Centralize memory layout policy and reorganize memory
regions (noir-lang/noir#9985)
chore(ci): fix permissions about publishing rustdoc
(noir-lang/noir#10075)
chore(ACVM): use Vec instead of Hash for memory blocks
(noir-lang/noir#10072)
feat(ssa): `constant_folding` with loop
(noir-lang/noir#10019)
chore: take truncate into account for bit size
(noir-lang/noir#10059)
chore: update check for `u128` overflow in `check_u128_mul_overflow`
(noir-lang/noir#9998)
chore: update check for field overflow in `check_u128_mul_overflow`
(noir-lang/noir#9968)
chore(ACIR): binary instructions snapshots
(noir-lang/noir#10054)
chore(acir): SliceRemove refactor
(noir-lang/noir#10058)
fix(fuzzer): Mark DivisionByZero with different types as equivalent
(noir-lang/noir#10066)
chore(fuzz): Remove `is_frontend_friendly` from the AST fuzzer
(noir-lang/noir#10046)
chore: use new ACIR syntax in docs, and some tests
(noir-lang/noir#10057)
fix(ssa): SSA interpreter to use the 2nd arg in `slice_refcount`
(noir-lang/noir#10034)
fix(ssa): SSA interpreter to return 0 for `Intrinsic::*RefCount` when
constrained (noir-lang/noir#10033)
chore(ssa_fuzzer): fix array get/set
(noir-lang/noir#10031)
fix(acir): Extend slice on dynamic insertion and compilation panic when
flattening (noir-lang/noir#10051)
chore(ACIR): extract convert_constrain_error helper
(noir-lang/noir#10050)
chore(ACIR): expand signed lt, div and mod in SSA
(noir-lang/noir#10036)
chore(ACIR): more consistent syntax and with less noise
(noir-lang/noir#10014)
chore(acir): Code gen tests for slice intrinsics
(noir-lang/noir#10017)
feat: parse and display SSA databus
(noir-lang/noir#9991)
fix(ssa): Handle partially removed `ArrayGet` groups of complex type
during OOB checks (noir-lang/noir#10027)
chore(acir): binary operations always have the same operand types
(noir-lang/noir#10028)
feat: Add Module::parent and Module::child_modules
(noir-lang/noir#10005)
chore: green light for ACVM optimisation
(noir-lang/noir#10002)
chore: unit test for brillig solver (greenlight ACVM execution)
(noir-lang/noir#9967)
chore(acir): avoid duplication when invoking brillig stdlib call
(noir-lang/noir#10025)
chore: Use 8 partitions for rust tests
(noir-lang/noir#10026)
chore: green light for ACVM execution audit
(noir-lang/noir#9982)
chore: greenlight for ACVM execution (PWG)
(noir-lang/noir#9961)
feat: optimize out noop casts on constants
(noir-lang/noir#10024)
fix(mem2reg): consider call return aliases
(noir-lang/noir#10016)
chore: bump external pinned commits
(noir-lang/noir#10022)
fix(parser): enforce left brace after match expression
(noir-lang/noir#10018)
chore(acir): Intrinsics and slice_ops modules as well as slice_ops doc
comments (noir-lang/noir#10012)
fix: signed division by -1 can overflow
(noir-lang/noir#9976)
chore(ci): fix external checks
(noir-lang/noir#10009)
chore(ci): add provenance attestations to npm packages
(noir-lang/noir#10011)
chore(ACIR): show all expressions as polynomials
(noir-lang/noir#10007)
chore: remove unused feature flag
(noir-lang/noir#9993)
chore(ci): fix docs breaking JS releases
(noir-lang/noir#10010)
chore(ssa_fuzzer): add external coverage registration
(noir-lang/noir#9974)
END_COMMIT_OVERRIDE
mralj 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: Remove unnecessary allocation in `expr_with` (noir-lang/noir#10103)
chore(ACIR): inline `maybe_eq_predicate` (noir-lang/noir#10095)
chore: use `u64` over `Field` in template program (noir-lang/noir#10096)
chore: disallow slice arguments to blackbox functions (noir-lang/noir#10090)
chore(brillig_vm): Separate fuzzing module (noir-lang/noir#10091)
chore: ConstrainNotEqual requires acir predicate (noir-lang/noir#10062)
chore: bump version of bb used in tests (noir-lang/noir#10093)
chore: wrapping arithmetic tests (noir-lang/noir#9714)
chore(brillig_vm): Foreign call module and test re-org (noir-lang/noir#10089)
chore: add extra constraint folding pass (noir-lang/noir#9766)
chore: refactor brillig_blocks (noir-lang/noir#10088)
chore: add regression test for #9986 (noir-lang/noir#10087)
chore: Release Noir(1.0.0-beta.14) (noir-lang/noir#9942)
fix(tag_attr): keep whitespace tokens when parsing (noir-lang/noir#9981)
fix: hoist and then deduplicate (noir-lang/noir#10047)
chore: typos and some refactors in `acvm/src/pwg` (noir-lang/noir#10086)
chore: add in hack for `public_dispatch` (noir-lang/noir#10084)
fix(ssa): Avoid going through `i128` when casting signed to `u128` (noir-lang/noir#10045)
chore: avoid zero bits range-checks (noir-lang/noir#10083)
chore: bump external pinned commits (noir-lang/noir#10082)
fix(stdlib): Only compute the garbage `embedded_curve_result` result if we know we will need it (noir-lang/noir#10077)
fix(ssa): Keep defaults for values returned in the databus (noir-lang/noir#10042)
chore: remove unused predicate from mem-op solver (noir-lang/noir#10079)
chore(ACIR): snapshot tests for each instruction (noir-lang/noir#10071)
fix: remove generic length from ECDSA message hash in stdlib (noir-lang/noir#10043)
chore: validate that no jumps to function entry block exist (noir-lang/noir#10076)
feat(brillig): Centralize memory layout policy and reorganize memory regions (noir-lang/noir#9985)
chore(ci): fix permissions about publishing rustdoc (noir-lang/noir#10075)
chore(ACVM): use Vec instead of Hash for memory blocks (noir-lang/noir#10072)
feat(ssa): `constant_folding` with loop (noir-lang/noir#10019)
chore: take truncate into account for bit size (noir-lang/noir#10059)
chore: update check for `u128` overflow in `check_u128_mul_overflow` (noir-lang/noir#9998)
chore: update check for field overflow in `check_u128_mul_overflow` (noir-lang/noir#9968)
chore(ACIR): binary instructions snapshots (noir-lang/noir#10054)
chore(acir): SliceRemove refactor (noir-lang/noir#10058)
fix(fuzzer): Mark DivisionByZero with different types as equivalent (noir-lang/noir#10066)
chore(fuzz): Remove `is_frontend_friendly` from the AST fuzzer (noir-lang/noir#10046)
chore: use new ACIR syntax in docs, and some tests (noir-lang/noir#10057)
fix(ssa): SSA interpreter to use the 2nd arg in `slice_refcount` (noir-lang/noir#10034)
fix(ssa): SSA interpreter to return 0 for `Intrinsic::*RefCount` when constrained (noir-lang/noir#10033)
chore(ssa_fuzzer): fix array get/set  (noir-lang/noir#10031)
fix(acir): Extend slice on dynamic insertion and compilation panic when flattening (noir-lang/noir#10051)
chore(ACIR): extract convert_constrain_error helper (noir-lang/noir#10050)
chore(ACIR): expand signed lt, div and mod in SSA (noir-lang/noir#10036)
chore(ACIR): more consistent syntax and with less noise (noir-lang/noir#10014)
chore(acir): Code gen tests for slice intrinsics (noir-lang/noir#10017)
feat: parse and display SSA databus (noir-lang/noir#9991)
fix(ssa): Handle partially removed `ArrayGet` groups of complex type during OOB checks (noir-lang/noir#10027)
chore(acir): binary operations always have the same operand types (noir-lang/noir#10028)
feat: Add Module::parent and Module::child_modules (noir-lang/noir#10005)
chore: green light for ACVM optimisation (noir-lang/noir#10002)
chore: unit test for brillig solver (greenlight ACVM execution) (noir-lang/noir#9967)
chore(acir): avoid duplication when invoking brillig stdlib call (noir-lang/noir#10025)
chore: Use 8 partitions for rust tests (noir-lang/noir#10026)
chore: green light for ACVM execution audit (noir-lang/noir#9982)
chore: greenlight for ACVM execution (PWG) (noir-lang/noir#9961)
feat: optimize out noop casts on constants (noir-lang/noir#10024)
fix(mem2reg): consider call return aliases (noir-lang/noir#10016)
chore: bump external pinned commits (noir-lang/noir#10022)
fix(parser): enforce left brace after match expression (noir-lang/noir#10018)
chore(acir): Intrinsics and slice_ops modules as well as slice_ops doc comments (noir-lang/noir#10012)
fix: signed division by -1 can overflow (noir-lang/noir#9976)
chore(ci): fix external checks (noir-lang/noir#10009)
chore(ci): add provenance attestations to npm packages (noir-lang/noir#10011)
chore(ACIR): show all expressions as polynomials (noir-lang/noir#10007)
chore: remove unused feature flag (noir-lang/noir#9993)
chore(ci): fix docs breaking JS releases (noir-lang/noir#10010)
chore(ssa_fuzzer): add external coverage registration  (noir-lang/noir#9974)
END_COMMIT_OVERRIDE

Co-authored-by: Tom French <15848336+TomAFrench@users.noreply.github.com>
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.

3 participants