Skip to content

chore(die): Remove RC tracker#9809

Merged
TomAFrench merged 6 commits intomasterfrom
mv/remove-rc-tracker
Sep 12, 2025
Merged

chore(die): Remove RC tracker#9809
TomAFrench merged 6 commits intomasterfrom
mv/remove-rc-tracker

Conversation

@vezenovm
Copy link
Contributor

@vezenovm vezenovm commented Sep 10, 2025

Description

Problem*

Part of greenlighting DIE #9517. I want to see the regressions from simplifying this pass here.

The RcTracker logic was built as an attempt to remove unnecessary inc_rc/dec_rc instructions when we were a lot less precise about laying down those instructions. Its effect can be seen in this PR #6783 which brought it back following a bug.

Summary*

Although there are some regressions, we can tell that we are being much smarter about cloning when comparing to the benchmarks in #6783. For example, nested_array_dynamic went down 309 opcodes in #6783, but is only regressing by 3 opcodes in this PR.

As the external benchmarks do not show regressions (and in fact some improvements such as for compilation time), I am marking this PR ready for review. I will then capture possible places we can improve our ownership/last uses analysis in separate issues.

I also had to block the --enable-brillig-debug-assertions flag from being active for the ski_calculus test as this caused us to hit stack too deep errors. It seems that the repeated cloned not being removed by the RC tracker began to take us over the stack limit.

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.

@vezenovm vezenovm added the bench-show Display benchmark results on PR label Sep 10, 2025
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: bd625cd Previous: 35b7c14 Ratio
purely_sequential_opcodes 255842 ns/iter (± 851) 255669 ns/iter (± 895) 1.00
perfectly_parallel_opcodes 226751 ns/iter (± 2923) 225616 ns/iter (± 6973) 1.01
perfectly_parallel_batch_inversion_opcodes 2796839 ns/iter (± 6370) 2795987 ns/iter (± 13010) 1.00

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

@github-actions
Copy link
Contributor

github-actions bot commented Sep 10, 2025

Changes to number of Brillig opcodes executed

Generated at commit: ebc1991edbb9ea63e6365071206ab15f026c0f63, compared to commit: 35b7c14f383c3f558bd1408ab47a83736703e6a4

🧾 Summary (10% most significant diffs)

Program Brillig opcodes (+/-) %
regression_9206_inliner_max +60 ❌ +240.00%
regression_9206_inliner_min +60 ❌ +240.00%
regression_9206_inliner_zero +60 ❌ +240.00%
brillig_nested_arrays_inliner_max +55 ❌ +47.41%
bit_shifts_u128_inliner_max +765 ❌ +42.55%
bit_shifts_u128_inliner_min +765 ❌ +42.55%
bit_shifts_u128_inliner_zero +765 ❌ +42.55%
side_effects_constrain_array_inliner_max +6 ❌ +14.63%
empty_strings_in_composite_arrays_inliner_max +33 ❌ +8.92%
brillig_nested_arrays_inliner_min +10 ❌ +6.06%
brillig_nested_arrays_inliner_zero +10 ❌ +6.06%
derive_inliner_zero +12 ❌ +4.92%
nested_array_in_slice_inliner_max +49 ❌ +4.47%

Full diff report 👇
Program Brillig opcodes (+/-) %
regression_9206_inliner_max 85 (+60) +240.00%
regression_9206_inliner_min 85 (+60) +240.00%
regression_9206_inliner_zero 85 (+60) +240.00%
brillig_nested_arrays_inliner_max 171 (+55) +47.41%
bit_shifts_u128_inliner_max 2,563 (+765) +42.55%
bit_shifts_u128_inliner_min 2,563 (+765) +42.55%
bit_shifts_u128_inliner_zero 2,563 (+765) +42.55%
side_effects_constrain_array_inliner_max 47 (+6) +14.63%
empty_strings_in_composite_arrays_inliner_max 403 (+33) +8.92%
brillig_nested_arrays_inliner_min 175 (+10) +6.06%
brillig_nested_arrays_inliner_zero 175 (+10) +6.06%
derive_inliner_zero 256 (+12) +4.92%
nested_array_in_slice_inliner_max 1,146 (+49) +4.47%
nested_arrays_from_brillig_inliner_min 200 (+8) +4.17%
derive_inliner_min 306 (+12) +4.08%
slice_regex_inliner_max 3,407 (+126) +3.84%
brillig_constant_reference_regression_inliner_max 82 (+3) +3.80%
brillig_constant_reference_regression_inliner_min 82 (+3) +3.80%
brillig_constant_reference_regression_inliner_zero 82 (+3) +3.80%
array_oob_regression_7965_inliner_max 322 (+9) +2.88%
array_oob_regression_7965_inliner_min 322 (+9) +2.88%
array_oob_regression_7965_inliner_zero 322 (+9) +2.88%
side_effects_constrain_array_inliner_min 120 (+3) +2.56%
side_effects_constrain_array_inliner_zero 120 (+3) +2.56%
simple_2d_array_inliner_max 124 (+3) +2.48%
simple_2d_array_inliner_min 124 (+3) +2.48%
simple_2d_array_inliner_zero 124 (+3) +2.48%
fold_complex_outputs_inliner_max 512 (+12) +2.40%
regression_8729_inliner_max 129 (+3) +2.38%
regression_8729_inliner_min 129 (+3) +2.38%
regression_8729_inliner_zero 129 (+3) +2.38%
lambda_from_array_inliner_max 2,736 (+60) +2.24%
lambda_from_array_inliner_min 2,736 (+60) +2.24%
lambda_from_array_inliner_zero 2,736 (+60) +2.24%
regression_4663_inliner_max 457 (+9) +2.01%
regression_4663_inliner_zero 457 (+9) +2.01%
databus_composite_calldata_inliner_max 589 (+9) +1.55%
databus_composite_calldata_inliner_min 589 (+9) +1.55%
databus_composite_calldata_inliner_zero 589 (+9) +1.55%
array_len_inliner_max 200 (+3) +1.52%
array_len_inliner_min 200 (+3) +1.52%
array_len_inliner_zero 200 (+3) +1.52%
slice_loop_inliner_max 844 (+12) +1.44%
a_7_function_inliner_max 1,797 (+21) +1.18%
brillig_pedersen_inliner_max 591 (+6) +1.03%
pedersen_check_inliner_max 591 (+6) +1.03%
brillig_pedersen_inliner_min 591 (+6) +1.03%
pedersen_check_inliner_min 591 (+6) +1.03%
brillig_pedersen_inliner_zero 591 (+6) +1.03%
pedersen_check_inliner_zero 591 (+6) +1.03%
brillig_rc_regression_6123_inliner_min 318 (+3) +0.95%
regression_6674_1_inliner_max 667 (+6) +0.91%
regression_6674_2_inliner_max 667 (+6) +0.91%
regression_6674_1_inliner_zero 691 (+6) +0.88%
regression_6674_2_inliner_zero 691 (+6) +0.88%
regression_6674_1_inliner_min 705 (+6) +0.86%
regression_6674_2_inliner_min 731 (+6) +0.83%
merkle_insert_inliner_max 2,958 (+24) +0.82%
array_to_slice_inliner_min 1,863 (+15) +0.81%
regression_6674_3_inliner_max 1,153 (+9) +0.79%
regression_6674_3_inliner_zero 1,153 (+9) +0.79%
higher_order_functions_inliner_max 826 (+6) +0.73%
slices_inliner_zero 2,727 (+18) +0.66%
regression_6674_3_inliner_min 1,493 (+9) +0.61%
slice_regex_inliner_zero 4,028 (+24) +0.60%
merkle_insert_inliner_zero 3,086 (+18) +0.59%
regression_struct_array_conditional_inliner_max 1,148 (+6) +0.53%
regression_struct_array_conditional_inliner_min 1,148 (+6) +0.53%
regression_struct_array_conditional_inliner_zero 1,148 (+6) +0.53%
array_dynamic_nested_blackbox_input_inliner_max 1,183 (+6) +0.51%
array_dynamic_nested_blackbox_input_inliner_zero 1,183 (+6) +0.51%
array_dynamic_nested_blackbox_input_inliner_min 1,197 (+6) +0.50%
fold_complex_outputs_inliner_zero 628 (+3) +0.48%
higher_order_functions_inliner_zero 1,268 (+6) +0.48%
unrolling_regression_8333_inliner_max 694 (+3) +0.43%
unrolling_regression_8333_inliner_min 694 (+3) +0.43%
unrolling_regression_8333_inliner_zero 694 (+3) +0.43%
simple_shield_inliner_max 2,118 (+9) +0.43%
simple_shield_inliner_zero 2,118 (+9) +0.43%
brillig_cow_inliner_zero 717 (+3) +0.42%
debug_logs_inliner_max 5,148 (+18) +0.35%
debug_logs_inliner_min 5,361 (+18) +0.34%
debug_logs_inliner_zero 5,361 (+18) +0.34%
brillig_cow_inliner_max 928 (+3) +0.32%
regression_5252_inliner_max 755,238 (+2,256) +0.30%
poseidon_bn254_hash_width_3_inliner_max 136,752 (+408) +0.30%
hashmap_inliner_max 56,644 (+162) +0.29%
poseidonsponge_x5_254_inliner_max 151,935 (+432) +0.29%
slice_regex_inliner_min 4,332 (+12) +0.28%
regression_11294_inliner_max 1,128 (+3) +0.27%
regression_11294_inliner_zero 1,128 (+3) +0.27%
fold_numeric_generic_poseidon_inliner_max 3,703 (+9) +0.24%
no_predicates_numeric_generic_poseidon_inliner_max 3,703 (+9) +0.24%
regression_11294_inliner_min 1,240 (+3) +0.24%
numeric_type_alias_inliner_max 1,302 (+3) +0.23%
numeric_type_alias_inliner_zero 1,302 (+3) +0.23%
fold_numeric_generic_poseidon_inliner_zero 4,478 (+9) +0.20%
no_predicates_numeric_generic_poseidon_inliner_zero 4,478 (+9) +0.20%
numeric_type_alias_inliner_min 1,570 (+3) +0.19%
hashmap_inliner_zero 72,008 (+130) +0.18%
nested_fmtstr_inliner_max 2,083 (+3) +0.14%
nested_fmtstr_inliner_min 2,083 (+3) +0.14%
nested_fmtstr_inliner_zero 2,083 (+3) +0.14%
regression_1144_1169_2399_6609_inliner_max 2,228 (+3) +0.13%
regression_1144_1169_2399_6609_inliner_zero 2,228 (+3) +0.13%
hashmap_inliner_min 76,274 (+102) +0.13%
uhashmap_inliner_max 143,155 (+186) +0.13%
nested_array_dynamic_inliner_max 2,479 (+3) +0.12%
regression_1144_1169_2399_6609_inliner_min 2,488 (+3) +0.12%
nested_array_dynamic_inliner_min 2,733 (+3) +0.11%
nested_array_dynamic_inliner_zero 2,733 (+3) +0.11%
slices_inliner_min 3,801 (+3) +0.08%
modulus_inliner_max 13,680 (+6) +0.04%
modulus_inliner_zero 13,680 (+6) +0.04%
uhashmap_inliner_zero 164,400 (+48) +0.03%
modulus_inliner_min 13,759 (+3) +0.02%
uhashmap_inliner_min 169,466 (+24) +0.01%
poseidon_bn254_hash_width_3_inliner_zero 164,906 (+6) +0.00%
regression_5252_inliner_zero 911,565 (+21) +0.00%
regression_5252_inliner_min 924,041 (+6) +0.00%
fold_2_to_17_inliner_max 769,121 (+3) +0.00%

@github-actions
Copy link
Contributor

github-actions bot commented Sep 10, 2025

Changes to Brillig bytecode sizes

Generated at commit: ebc1991edbb9ea63e6365071206ab15f026c0f63, compared to commit: 35b7c14f383c3f558bd1408ab47a83736703e6a4

🧾 Summary (10% most significant diffs)

Program Brillig opcodes (+/-) %
regression_9206_inliner_max +60 ❌ +193.55%
regression_9206_inliner_min +60 ❌ +193.55%
regression_9206_inliner_zero +60 ❌ +193.55%
brillig_nested_arrays_inliner_max +55 ❌ +43.65%
empty_strings_in_composite_arrays_inliner_max +33 ❌ +8.92%
side_effects_constrain_array_inliner_max +6 ❌ +6.82%
derive_inliner_zero +18 ❌ +6.82%
regression_4663_inliner_max +18 ❌ +6.21%
regression_4663_inliner_zero +18 ❌ +6.21%
reference_counts_inliner_min_inliner_max +42 ❌ +6.03%
reference_counts_inliner_0_inliner_max +42 ❌ +6.03%
reference_counts_inliner_max_inliner_max +42 ❌ +6.03%
brillig_nested_arrays_inliner_min +10 ❌ +5.85%
brillig_nested_arrays_inliner_zero +10 ❌ +5.85%
derive_inliner_min +18 ❌ +5.83%

Full diff report 👇
Program Brillig opcodes (+/-) %
regression_9206_inliner_max 91 (+60) +193.55%
regression_9206_inliner_min 91 (+60) +193.55%
regression_9206_inliner_zero 91 (+60) +193.55%
brillig_nested_arrays_inliner_max 181 (+55) +43.65%
empty_strings_in_composite_arrays_inliner_max 403 (+33) +8.92%
side_effects_constrain_array_inliner_max 94 (+6) +6.82%
derive_inliner_zero 282 (+18) +6.82%
regression_4663_inliner_max 308 (+18) +6.21%
regression_4663_inliner_zero 308 (+18) +6.21%
reference_counts_inliner_min_inliner_max 738 (+42) +6.03%
reference_counts_inliner_0_inliner_max 738 (+42) +6.03%
reference_counts_inliner_max_inliner_max 738 (+42) +6.03%
brillig_nested_arrays_inliner_min 181 (+10) +5.85%
brillig_nested_arrays_inliner_zero 181 (+10) +5.85%
derive_inliner_min 327 (+18) +5.83%
reference_counts_slices_inliner_0_inliner_max 767 (+42) +5.79%
array_oob_regression_7965_inliner_max 274 (+15) +5.79%
array_oob_regression_7965_inliner_min 274 (+15) +5.79%
array_oob_regression_7965_inliner_zero 274 (+15) +5.79%
nested_array_in_slice_inliner_max 922 (+49) +5.61%
slice_regex_inliner_max 2,217 (+117) +5.57%
a_7_function_inliner_max 411 (+21) +5.38%
regression_7612_inliner_max 98 (+5) +5.38%
regression_7612_inliner_min 98 (+5) +5.38%
regression_7612_inliner_zero 98 (+5) +5.38%
nested_arrays_from_brillig_inliner_min 159 (+8) +5.30%
bit_shifts_u128_inliner_max 228 (+9) +4.11%
bit_shifts_u128_inliner_min 228 (+9) +4.11%
bit_shifts_u128_inliner_zero 228 (+9) +4.11%
brillig_constant_reference_regression_inliner_max 82 (+3) +3.80%
brillig_constant_reference_regression_inliner_min 82 (+3) +3.80%
brillig_constant_reference_regression_inliner_zero 82 (+3) +3.80%
unrolling_regression_8333_inliner_max 90 (+3) +3.45%
unrolling_regression_8333_inliner_min 90 (+3) +3.45%
unrolling_regression_8333_inliner_zero 90 (+3) +3.45%
regression_6674_1_inliner_zero 190 (+6) +3.26%
regression_6674_2_inliner_zero 190 (+6) +3.26%
regression_6674_1_inliner_min 200 (+6) +3.09%
fold_complex_outputs_inliner_max 420 (+12) +2.94%
regression_6674_1_inliner_max 210 (+6) +2.94%
simple_2d_array_inliner_max 105 (+3) +2.94%
regression_6674_2_inliner_max 210 (+6) +2.94%
simple_2d_array_inliner_min 105 (+3) +2.94%
simple_2d_array_inliner_zero 105 (+3) +2.94%
regression_6674_2_inliner_min 222 (+6) +2.78%
array_len_inliner_max 113 (+3) +2.73%
array_len_inliner_min 113 (+3) +2.73%
array_len_inliner_zero 113 (+3) +2.73%
side_effects_constrain_array_inliner_min 115 (+3) +2.68%
side_effects_constrain_array_inliner_zero 115 (+3) +2.68%
slice_loop_inliner_max 231 (+6) +2.67%
databus_composite_calldata_inliner_max 349 (+9) +2.65%
databus_composite_calldata_inliner_min 349 (+9) +2.65%
databus_composite_calldata_inliner_zero 349 (+9) +2.65%
nested_if_then_block_same_cond_inliner_max 118 (+3) +2.61%
nested_if_then_block_same_cond_inliner_min 118 (+3) +2.61%
nested_if_then_block_same_cond_inliner_zero 118 (+3) +2.61%
regression_8729_inliner_max 130 (+3) +2.36%
regression_8729_inliner_min 130 (+3) +2.36%
regression_8729_inliner_zero 130 (+3) +2.36%
regression_5252_inliner_max 4,017 (+90) +2.29%
merkle_insert_inliner_max 555 (+12) +2.21%
regression_6674_3_inliner_max 418 (+9) +2.20%
regression_6674_3_inliner_zero 418 (+9) +2.20%
array_dynamic_nested_blackbox_input_inliner_max 320 (+6) +1.91%
array_dynamic_nested_blackbox_input_inliner_zero 320 (+6) +1.91%
array_dynamic_nested_blackbox_input_inliner_min 330 (+6) +1.85%
array_to_slice_inliner_min 848 (+15) +1.80%
brillig_rc_regression_6123_inliner_min 181 (+3) +1.69%
regression_struct_array_conditional_inliner_max 395 (+6) +1.54%
regression_struct_array_conditional_inliner_min 395 (+6) +1.54%
regression_struct_array_conditional_inliner_zero 395 (+6) +1.54%
brillig_pedersen_inliner_max 408 (+6) +1.49%
pedersen_check_inliner_max 408 (+6) +1.49%
brillig_pedersen_inliner_min 408 (+6) +1.49%
pedersen_check_inliner_min 408 (+6) +1.49%
brillig_pedersen_inliner_zero 408 (+6) +1.49%
pedersen_check_inliner_zero 408 (+6) +1.49%
poseidonsponge_x5_254_inliner_max 3,697 (+54) +1.48%
lambda_from_array_inliner_max 4,128 (+60) +1.47%
lambda_from_array_inliner_min 4,128 (+60) +1.47%
lambda_from_array_inliner_zero 4,128 (+60) +1.47%
regression_6674_3_inliner_min 643 (+9) +1.42%
regression_11294_inliner_max 225 (+3) +1.35%
regression_11294_inliner_zero 225 (+3) +1.35%
brillig_cow_inliner_zero 242 (+3) +1.26%
fold_numeric_generic_poseidon_inliner_zero 507 (+6) +1.20%
no_predicates_numeric_generic_poseidon_inliner_zero 507 (+6) +1.20%
higher_order_functions_inliner_max 541 (+6) +1.12%
slices_inliner_zero 1,647 (+18) +1.10%
slice_regex_inliner_zero 1,653 (+18) +1.10%
regression_11294_inliner_min 293 (+3) +1.03%
fold_numeric_generic_poseidon_inliner_max 628 (+6) +0.96%
no_predicates_numeric_generic_poseidon_inliner_max 628 (+6) +0.96%
numeric_type_alias_inliner_max 327 (+3) +0.93%
numeric_type_alias_inliner_zero 327 (+3) +0.93%
brillig_cow_inliner_max 335 (+3) +0.90%
hashmap_inliner_max 18,708 (+153) +0.82%
poseidon_bn254_hash_width_3_inliner_max 4,850 (+39) +0.81%
higher_order_functions_inliner_zero 754 (+6) +0.80%
uhashmap_inliner_max 11,184 (+87) +0.78%
merkle_insert_inliner_zero 386 (+3) +0.78%
hashmap_inliner_zero 8,024 (+61) +0.77%
reference_counts_inliner_max_inliner_zero 878 (+6) +0.69%
reference_counts_inliner_0_inliner_zero 878 (+6) +0.69%
reference_counts_inliner_min_inliner_zero 878 (+6) +0.69%
fold_complex_outputs_inliner_zero 444 (+3) +0.68%
slice_regex_inliner_min 1,791 (+12) +0.67%
numeric_type_alias_inliner_min 465 (+3) +0.65%
fold_2_to_17_inliner_max 467 (+3) +0.65%
reference_counts_slices_inliner_0_inliner_zero 999 (+6) +0.60%
reference_counts_inliner_0_inliner_min 1,029 (+6) +0.59%
reference_counts_inliner_min_inliner_min 1,029 (+6) +0.59%
reference_counts_inliner_max_inliner_min 1,029 (+6) +0.59%
hashmap_inliner_min 8,962 (+51) +0.57%
reference_counts_slices_inliner_0_inliner_min 1,206 (+6) +0.50%
simple_shield_inliner_max 679 (+3) +0.44%
simple_shield_inliner_zero 679 (+3) +0.44%
uhashmap_inliner_zero 6,920 (+30) +0.44%
modulus_inliner_max 1,699 (+6) +0.35%
modulus_inliner_zero 1,699 (+6) +0.35%
debug_logs_inliner_max 5,136 (+18) +0.35%
debug_logs_inliner_min 5,337 (+18) +0.34%
debug_logs_inliner_zero 5,337 (+18) +0.34%
regression_1144_1169_2399_6609_inliner_max 898 (+3) +0.34%
regression_1144_1169_2399_6609_inliner_zero 898 (+3) +0.34%
regression_1144_1169_2399_6609_inliner_min 1,001 (+3) +0.30%
regression_5252_inliner_zero 3,224 (+9) +0.28%
nested_array_dynamic_inliner_min 1,337 (+3) +0.22%
nested_array_dynamic_inliner_zero 1,337 (+3) +0.22%
uhashmap_inliner_min 7,214 (+15) +0.21%
nested_array_dynamic_inliner_max 1,551 (+3) +0.19%
modulus_inliner_min 1,713 (+3) +0.18%
nested_fmtstr_inliner_max 2,081 (+3) +0.14%
nested_fmtstr_inliner_min 2,081 (+3) +0.14%
nested_fmtstr_inliner_zero 2,081 (+3) +0.14%
slices_inliner_min 2,187 (+3) +0.14%
poseidon_bn254_hash_width_3_inliner_zero 4,425 (+6) +0.14%
regression_5252_inliner_min 3,351 (+3) +0.09%

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: bd625cd Previous: 35b7c14 Ratio
private-kernel-inner 0.013 s 0.013 s 1
private-kernel-reset 0.164 s 0.163 s 1.01
private-kernel-tail 0.011 s 0.011 s 1
rollup-base-private 0.269 s 0.264 s 1.02
rollup-base-public 0.162 s 0.163 s 0.99
rollup-block-root 14.6 s 14.6 s 1
rollup-merge 0.002 s 0.002 s 1
rollup-root 0.004 s 0.004 s 1
semaphore-depth-10 0.019 s 0.019 s 1
sha512-100-bytes 0.099 s 0.102 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: bd625cd Previous: 35b7c14 Ratio
private-kernel-inner 14792 opcodes 14792 opcodes 1
private-kernel-reset 68868 opcodes 68868 opcodes 1
private-kernel-tail 11177 opcodes 11177 opcodes 1
rollup-base-private 221339 opcodes 221339 opcodes 1
rollup-base-public 159930 opcodes 159930 opcodes 1
rollup-block-root-empty 68108 opcodes 68108 opcodes 1
rollup-block-root-single-tx 964515 opcodes 964515 opcodes 1
rollup-block-root 965801 opcodes 965801 opcodes 1
rollup-merge 1409 opcodes 1409 opcodes 1
rollup-root 2631 opcodes 2631 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.

Compilation Time

Details
Benchmark suite Current: bd625cd Previous: 35b7c14 Ratio
private-kernel-inner 1.734 s 1.85 s 0.94
private-kernel-reset 8.666 s 8.574 s 1.01
private-kernel-tail 1.39 s 1.446 s 0.96
rollup-base-private 18.66 s 18.34 s 1.02
rollup-base-public 17.08 s 17.02 s 1.00
rollup-block-root-empty 18.78 s 17.06 s 1.10
rollup-block-root-single-tx 237 s 213 s 1.11
rollup-block-root 210 s 196 s 1.07
rollup-merge 1.388 s 1.416 s 0.98
rollup-root 1.474 s 1.562 s 0.94
semaphore-depth-10 0.791 s 0.813 s 0.97
sha512-100-bytes 1.847 s 1.687 s 1.09

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: bd625cd Previous: 35b7c14 Ratio
private-kernel-inner 711.9 KB 711.7 KB 1.00
private-kernel-reset 2027.3 KB 2026.9 KB 1.00
private-kernel-tail 534.7 KB 533.7 KB 1.00
rollup-base-private 4352.4 KB 4351.2 KB 1.00
rollup-base-public 3359.4 KB 3355.4 KB 1.00
rollup-block-root-empty 3866.9 KB 3805.1 KB 1.02
rollup-block-root-single-tx 30946.7 KB 30677.1 KB 1.01
rollup-block-root 30979.2 KB 30711.5 KB 1.01
rollup-merge 190.2 KB 190.2 KB 1
rollup-root 392.8 KB 392.8 KB 1
semaphore-depth-10 634 KB 634 KB 1
sha512-100-bytes 527.6 KB 527.6 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.

⚠️ 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: 03594dc Previous: 574550b Ratio
rollup-base-private 24.34 s 18.86 s 1.29

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 'Execution Time'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.20.

Benchmark suite Current: 4b3d913 Previous: 6f8c890 Ratio
rollup-root 0.005 s 0.004 s 1.25

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 Memory

Details
Benchmark suite Current: bd625cd Previous: 35b7c14 Ratio
private-kernel-inner 258.83 MB 258.82 MB 1.00
private-kernel-reset 291.99 MB 291.99 MB 1
private-kernel-tail 243.6 MB 243.57 MB 1.00
rollup-base-private 506.71 MB 506.71 MB 1
rollup-base-public 439.12 MB 439.09 MB 1.00
rollup-block-root 1540 MB 1500 MB 1.03
rollup-merge 331.16 MB 331.16 MB 1
rollup-root 333.69 MB 333.69 MB 1
semaphore_depth_10 72.87 MB 72.87 MB 1
sha512_100_bytes 69.42 MB 69.42 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.

Compilation Memory

Details
Benchmark suite Current: bd625cd Previous: 35b7c14 Ratio
private-kernel-inner 285.2 MB 285.18 MB 1.00
private-kernel-reset 594.21 MB 594.19 MB 1.00
private-kernel-tail 259.78 MB 259.75 MB 1.00
rollup-base-private 1360 MB 1360 MB 1
rollup-base-public 1420 MB 1420 MB 1
rollup-block-root-empty 1020 MB 999.21 MB 1.02
rollup-block-root-single-tx 9680 MB 9680 MB 1
rollup-block-root 9690 MB 9690 MB 1
rollup-merge 333.41 MB 333.41 MB 1
rollup-root 344.12 MB 344.12 MB 1
semaphore_depth_10 107.62 MB 107.62 MB 1
sha512_100_bytes 265.53 MB 265.52 MB 1.00

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: bd625cd Previous: 35b7c14 Ratio
test_report_AztecProtocol_aztec-packages_noir-projects_aztec-nr 101 s 100 s 1.01
test_report_AztecProtocol_aztec-packages_noir-projects_noir-contracts 131 s 128 s 1.02
test_report_AztecProtocol_aztec-packages_noir-projects_noir-protocol-circuits_crates_blob 206 s 206 s 1
test_report_AztecProtocol_aztec-packages_noir-projects_noir-protocol-circuits_crates_private-kernel-lib 216 s 218 s 0.99
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_rollup-lib 630 s 598 s 1.05
test_report_AztecProtocol_aztec-packages_noir-projects_noir-protocol-circuits_crates_types 99 s 97 s 1.02
test_report_noir-lang_noir-bignum_ 133 s 137 s 0.97
test_report_noir-lang_noir_bigcurve_ 374 s 340 s 1.10
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_ 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.

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: bd625cd Previous: 35b7c14 Ratio
test_report_zkpassport_noir-ecdsa_ 2 s 1 s 2

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

CC: @TomAFrench

@vezenovm vezenovm marked this pull request as ready for review September 11, 2025 17:24
@vezenovm vezenovm requested review from a team and jfecher September 11, 2025 17:28
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.

I do think it is better to move in the direction of each SSA pass doing one thing rather than having passes with mostly-unrelated functionality bundled together like we have in DIE. So I think this is a code improvement.

The regressions are a bit unfortunate in some cases but I'm hoping the ownership changes we discussed on marking methods as automatically borrowing may offset them.

@TomAFrench TomAFrench added this pull request to the merge queue Sep 12, 2025
Merged via the queue into master with commit 294caf8 Sep 12, 2025
123 checks passed
@TomAFrench TomAFrench deleted the mv/remove-rc-tracker branch September 12, 2025 14:53
AztecBot added a commit to AztecProtocol/aztec-packages that referenced this pull request Sep 26, 2025
Automated pull of nightly from the [noir](https://github.com/noir-lang/noir) programming language, a dependency of Aztec.
BEGIN_COMMIT_OVERRIDE
chore: print ACIR AssertZero as an equation (noir-lang/noir#9970)
chore(acir): Switch to inline SSA for slice intrinsics tests (noir-lang/noir#10000)
fix(fuzz): Handle divisor of zero msg in error comparison (noir-lang/noir#9995)
fix(ssa): Handle OOB indexing of slice literals in `remove_unreachalbe_instructions` (noir-lang/noir#9999)
chore: Add `DataFlowGraph::instruction_result` for getting a known number of results (noir-lang/noir#9989)
chore(ast_fuzzer): Allow passing compilation options to cvise tool (noir-lang/noir#9996)
chore(ssa_gen): Do not generate out of bounds checks for array assignments in ACIR (noir-lang/noir#9992)
chore: add more to/from le/be bits/bytes edge case tests (noir-lang/noir#9906)
fix: Disable early mem2reg (noir-lang/noir#9987)
chore(ci): free up space on github runner (noir-lang/noir#9994)
chore(ssa): Nits in `remove_bit_shift` and `remove_if_else` (noir-lang/noir#9965)
chore(ssa_executor): add compilation example  (noir-lang/noir#9937)
chore(acir): More arrays refactors  (noir-lang/noir#9962)
chore(test): add panicking tests for 'defunctionalize' (noir-lang/noir#8510)
chore: remove_if_else docs and refactors (noir-lang/noir#9929)
chore(acir): Do not copy element type sizes array when initializing (noir-lang/noir#9955)
fix: correct max_bit_size when left-shifting (noir-lang/noir#9770)
chore: checked_to_unchecked enhancements from audit review (noir-lang/noir#9958)
chore(ssa): Remove `offset` from `ArrayGet` and `ArraySet` (noir-lang/noir#9956)
chore(acir): Add some unit tests for arrays and light refactors (noir-lang/noir#9953)
chore: add regression test for #9852 (noir-lang/noir#9960)
chore(fuzz): Add error equivalency for bit-shift overflow in the SSA interpreter (noir-lang/noir#9957)
feat(cli): Visualize the Control Flow Graph (noir-lang/noir#9867)
chore: minor constant_folding refactors (noir-lang/noir#9954)
chore!: several ACIR serialisation changes (noir-lang/noir#8134)
chore(ci): only send slack notifications during the week (noir-lang/noir#9946)
chore: assumes no load-store in array_set (noir-lang/noir#9940)
chore(acir): Arrays module doc comments (noir-lang/noir#9947)
fix: correctly handle unusual radices in `ToRadix` decompositions (noir-lang/noir#9941)
fix(ssa): Start with checked operations in index calculations (noir-lang/noir#9888)
feat: no need to use dummy slice values in remove_if_else (noir-lang/noir#9928)
chore: bump external pinned commits (noir-lang/noir#9938)
chore: redo typo PR by viktorking7 (noir-lang/noir#9939)
chore: Release Noir(1.0.0-beta.13) (noir-lang/noir#9737)
chore(ssa): Validate array operands (noir-lang/noir#9932)
chore(licm): Add `CanBeHoistedResult::WithRefCount` (noir-lang/noir#9849)
chore(ci): alert in slack if fuzzer fails (noir-lang/noir#9910)
fix(fmt): missing skip whitespace when formatting match (noir-lang/noir#9905)
chore(acir_gen): New shared_context module and some additional unit tests (noir-lang/noir#9895)
chore: bump external pinned commits (noir-lang/noir#9902)
chore: validate SSA intrinsics arguments and return types (noir-lang/noir#9892)
chore(die): small nit to remove a check which is not useful (noir-lang/noir#9898)
chore: implement Display for brillig (noir-lang/noir#9893)
chore(acir_gen): Call module (noir-lang/noir#9896)
feat: allow initializing dynamic arrays (noir-lang/noir#9899)
fix(acir_gen): Handle flattening of numeric types when an `Array` contains a `DynamicArray` (noir-lang/noir#9887)
fix(mem2reg): Do not attempt to analyze an instruction simplified to a global (noir-lang/noir#9882)
fix: error on returning slice from main (noir-lang/noir#9636)
fix(acir_gen): Fix entry point indices (noir-lang/noir#9881)
chore: move `ram_blowup_regression` to be a compile-only test (noir-lang/noir#9874)
chore: validate SSA call arguments (noir-lang/noir#9876)
fix(ssa): Simplify always-fail range constraint (noir-lang/noir#9885)
chore(fuzz): Refactor logging in the AST fuzzer (noir-lang/noir#9884)
chore(ssa_fuzzer): refactor brillig target (noir-lang/noir#9821)
fix(fuzz): Always introduce a local binding before match (noir-lang/noir#9883)
chore(acir_gen): Switching existing ACIR gen tests to use parser and cleanup test module (noir-lang/noir#9878)
chore(acir_gen): Remove Brillig execution with constant arguments  (noir-lang/noir#9879)
fix: disallow `_` in where clauses, and disallow unused trait impl generics (noir-lang/noir#9871)
chore: bump external pinned commits (noir-lang/noir#9875)
feat: LSP lightweight mode (noir-lang/noir#9869)
chore: use `w` prefix for ACIR witnesses (noir-lang/noir#9839)
chore: greenlight remove enable side effects (noir-lang/noir#9833)
fix(fuzz): Avoid OOB when `in_no_dynamic` mode (noir-lang/noir#9858)
chore(ssa): Run purity analysis before preprocessing of functions (noir-lang/noir#9837)
fix: check for signed division overflow (noir-lang/noir#9857)
chore: Add tests from post-order PR (noir-lang/noir#9846)
chore(acir): Parse full program (foldable functions) (noir-lang/noir#9859)
chore: greenlight remove_bit_shifts (revised) (noir-lang/noir#9813)
feat(die): Prune unused entry block parameters for non-entry points (noir-lang/noir#9843)
chore: greenlight check_u128_mul_overflow (noir-lang/noir#9759)
chore: greenlight `remove_unreachable_instructions` for new requirements (noir-lang/noir#9810)
chore: use enum for instruction deduplication safety (noir-lang/noir#9824)
feat(LSP): signature help for macro attributes (noir-lang/noir#9536)
feat(LSP): folding ranges (noir-lang/noir#9854)
chore(die): IncrementRc/DecrementRc comments (noir-lang/noir#9855)
chore(ownership): Add tests for cloning nested arrays returned from indexing (noir-lang/noir#9789)
chore: validate that all jmpif conditions are boolean (noir-lang/noir#9850)
chore: bump external pinned commits (noir-lang/noir#9848)
chore(opt): Fetch set of Brillig entry points without reachability and recursive functions computation  (noir-lang/noir#9844)
chore: tests for map in stdlib (noir-lang/noir#9676)
chore(ssa): Brillig entry point specialization post check  (noir-lang/noir#9845)
chore: delete some unused snapshots (noir-lang/noir#9841)
feat(ssa): SSA CLI (noir-lang/noir#9826)
chore: more ACIR parser usages in tests, and optimize general optimizations (noir-lang/noir#9836)
chore(die): Remove RC tracker (noir-lang/noir#9809)
feat: better check_u128_mul_overflow logic when an operand is constant (noir-lang/noir#9835)
chore: increase number of cases tried in PR fuzzing (noir-lang/noir#9829)
chore: remove variable flag from poseidon2 hash (noir-lang/noir#9834)
chore: enforce that we only visit blocks once with new deque type (noir-lang/noir#9825)
chore(test): add tests for unconstrained `main` recursion (noir-lang/noir#8551)
chore: adding tests to vec (noir-lang/noir#9715)
feat(fuzz): Allow index OOB with a small probability (noir-lang/noir#9803)
chore(die): Encapsulate array access checks in separate module (noir-lang/noir#9828)
chore: use the ACIR parser in redundant_ranges tests (noir-lang/noir#9827)
chore: prefer `From` for infallible numeric casts (noir-lang/noir#9802)
chore: add a regression test for #4663 (noir-lang/noir#9819)
chore: bump linked bb version (noir-lang/noir#9237)
chore: use `DataFlowGraph` over `Function` in constant_folding (noir-lang/noir#9811)
chore: add a regression test for #6285 (noir-lang/noir#9817)
feat(fuzz): Generate calls to `slice_remove` and `slice_insert` in the AST fuzzer (noir-lang/noir#9786)
chore: no need to use `get_max_num_bits` if lhs is a constant (noir-lang/noir#9812)
chore(ci): fix release workflow permissions (noir-lang/noir#9822)
fix: do not simplify constraints with induction variable (noir-lang/noir#9806)
fix(ssa): Do not hoist unsafe `array_get` in Brillig (noir-lang/noir#9805)
fix(ownership): consider ident in nested l-value as used (noir-lang/noir#9793)
fix(mem2reg): handle instruction simplified to multiple (noir-lang/noir#9782)
fix: proper error when dividing by minus 1 (noir-lang/noir#9762)
chore: tests for field in stdlib (noir-lang/noir#9677)
chore(ssa_fuzzer): separate fuzzer runtimes + add brillig fuzz target (noir-lang/noir#9753)
feat(ownership): Do not clone indexed call results containing arrays (noir-lang/noir#9791)
Revert "chore: move `ram_blowup_regression` to be a compile-only test" (noir-lang/noir#9801)
feat: reverse loop condition in brillig to avoid NOT instruction (noir-lang/noir#9779)
chore: move `ram_blowup_regression` to be a compile-only test (noir-lang/noir#9790)
fix(docs): moves docs to correct path for sharing domain with landing (noir-lang/noir#9687)
chore: Check an inline always weight threshold during inline info computation (noir-lang/noir#9487)
chore: remove snapshots from `test_programs` artifacts (noir-lang/noir#9788)
chore: bump `@web/dev-server-esbuild` and `playwright` (noir-lang/noir#9781)
fix(ssa): Replace failing array access with constraint and defaults (noir-lang/noir#9776)
chore(die): Module doc comments (noir-lang/noir#9768)
chore: encapsulate constant folding logic better (noir-lang/noir#9773)
chore(ci): publish attestations on uploaded binaries (noir-lang/noir#9777)
feat: remove useless jump when branching in brillig (noir-lang/noir#9778)
chore: add `LoopContext::new` (noir-lang/noir#9720)
feat(ownership): Do not clone nested Index expressions (noir-lang/noir#9772)
chore(ci): add permissions to CI workflows (noir-lang/noir#9763)
fix(ssa): Accurate purities of ArraySet and RC instructions in Brillig (noir-lang/noir#9736)
chore: add test for when pending snapshots are committed (noir-lang/noir#9757)
chore(docs): Copy latest getting started guide into versioned docs (noir-lang/noir#9755)
chore: migrate away from fxhash to address advisory (noir-lang/noir#9752)
fix(fuzz): Install `just` in nightly fuzz workflow (noir-lang/noir#9756)
fix: wrong error message in brillig bit shift overflow (noir-lang/noir#9702)
chore: bump dependencies (noir-lang/noir#9751)
fix: left bit shift u128 would overflow Field (noir-lang/noir#9723)
Revert "chore: migrate away from fxhash to address advisory (noir-lang/noir#9750)"
chore: migrate away from fxhash to address advisory (noir-lang/noir#9750)
chore: bump external pinned commits (noir-lang/noir#9748)
chore(inlining): Skip weight calc for ACIR functions and recursive Brillig functions (noir-lang/noir#9739)
chore(ssa): Consolidate should inline check into a single filter (noir-lang/noir#9738)
feat: re-enable early mem2reg pass (noir-lang/noir#9744)
fix(ssa): Mark whether an ArrayGet requires a predicate based upon the runtime (noir-lang/noir#9712)
chore(licm): Identify untested code; refactoring; minor fixes (noir-lang/noir#9718)
chore(docs): Update Aztec logo in noir docs (noir-lang/noir#9740)
chore(ssa_fuzzer): refactor ssa fuzzer (noir-lang/noir#9651)
fix: error on boolean shift overflow in interpreter (noir-lang/noir#9724)
chore: do not inline acir calls in brillig (noir-lang/noir#9412)
chore: remove empty main from frontend tests (noir-lang/noir#9726)
chore: add tests for slice (noir-lang/noir#9650)
chore: greenlight `make_constrain_not_equal` for audits (noir-lang/noir#9535)
chore: Release Noir(1.0.0-beta.12) (noir-lang/noir#9565)
chore(test): Filter `ram_blowup_regression` by default on local testing (noir-lang/noir#9721)
chore(ci): force cargo-binstall to install tools in CI (noir-lang/noir#9722)
fix(ssa): Simplify instructions during `remove_unreachable_instructions` (noir-lang/noir#9709)
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 Sep 26, 2025
Automated pull of nightly from the [noir](https://github.com/noir-lang/noir) programming language, a dependency of Aztec.
BEGIN_COMMIT_OVERRIDE
chore: print ACIR AssertZero as an equation (noir-lang/noir#9970)
chore(acir): Switch to inline SSA for slice intrinsics tests (noir-lang/noir#10000)
fix(fuzz): Handle divisor of zero msg in error comparison (noir-lang/noir#9995)
fix(ssa): Handle OOB indexing of slice literals in `remove_unreachalbe_instructions` (noir-lang/noir#9999)
chore: Add `DataFlowGraph::instruction_result` for getting a known number of results (noir-lang/noir#9989)
chore(ast_fuzzer): Allow passing compilation options to cvise tool (noir-lang/noir#9996)
chore(ssa_gen): Do not generate out of bounds checks for array assignments in ACIR (noir-lang/noir#9992)
chore: add more to/from le/be bits/bytes edge case tests (noir-lang/noir#9906)
fix: Disable early mem2reg (noir-lang/noir#9987)
chore(ci): free up space on github runner (noir-lang/noir#9994)
chore(ssa): Nits in `remove_bit_shift` and `remove_if_else` (noir-lang/noir#9965)
chore(ssa_executor): add compilation example  (noir-lang/noir#9937)
chore(acir): More arrays refactors  (noir-lang/noir#9962)
chore(test): add panicking tests for 'defunctionalize' (noir-lang/noir#8510)
chore: remove_if_else docs and refactors (noir-lang/noir#9929)
chore(acir): Do not copy element type sizes array when initializing (noir-lang/noir#9955)
fix: correct max_bit_size when left-shifting (noir-lang/noir#9770)
chore: checked_to_unchecked enhancements from audit review (noir-lang/noir#9958)
chore(ssa): Remove `offset` from `ArrayGet` and `ArraySet` (noir-lang/noir#9956)
chore(acir): Add some unit tests for arrays and light refactors (noir-lang/noir#9953)
chore: add regression test for #9852 (noir-lang/noir#9960)
chore(fuzz): Add error equivalency for bit-shift overflow in the SSA interpreter (noir-lang/noir#9957)
feat(cli): Visualize the Control Flow Graph (noir-lang/noir#9867)
chore: minor constant_folding refactors (noir-lang/noir#9954)
chore!: several ACIR serialisation changes (noir-lang/noir#8134)
chore(ci): only send slack notifications during the week (noir-lang/noir#9946)
chore: assumes no load-store in array_set (noir-lang/noir#9940)
chore(acir): Arrays module doc comments (noir-lang/noir#9947)
fix: correctly handle unusual radices in `ToRadix` decompositions (noir-lang/noir#9941)
fix(ssa): Start with checked operations in index calculations (noir-lang/noir#9888)
feat: no need to use dummy slice values in remove_if_else (noir-lang/noir#9928)
chore: bump external pinned commits (noir-lang/noir#9938)
chore: redo typo PR by viktorking7 (noir-lang/noir#9939)
chore: Release Noir(1.0.0-beta.13) (noir-lang/noir#9737)
chore(ssa): Validate array operands (noir-lang/noir#9932)
chore(licm): Add `CanBeHoistedResult::WithRefCount` (noir-lang/noir#9849)
chore(ci): alert in slack if fuzzer fails (noir-lang/noir#9910)
fix(fmt): missing skip whitespace when formatting match (noir-lang/noir#9905)
chore(acir_gen): New shared_context module and some additional unit tests (noir-lang/noir#9895)
chore: bump external pinned commits (noir-lang/noir#9902)
chore: validate SSA intrinsics arguments and return types (noir-lang/noir#9892)
chore(die): small nit to remove a check which is not useful (noir-lang/noir#9898)
chore: implement Display for brillig (noir-lang/noir#9893)
chore(acir_gen): Call module (noir-lang/noir#9896)
feat: allow initializing dynamic arrays (noir-lang/noir#9899)
fix(acir_gen): Handle flattening of numeric types when an `Array` contains a `DynamicArray` (noir-lang/noir#9887)
fix(mem2reg): Do not attempt to analyze an instruction simplified to a global (noir-lang/noir#9882)
fix: error on returning slice from main (noir-lang/noir#9636)
fix(acir_gen): Fix entry point indices (noir-lang/noir#9881)
chore: move `ram_blowup_regression` to be a compile-only test (noir-lang/noir#9874)
chore: validate SSA call arguments (noir-lang/noir#9876)
fix(ssa): Simplify always-fail range constraint (noir-lang/noir#9885)
chore(fuzz): Refactor logging in the AST fuzzer (noir-lang/noir#9884)
chore(ssa_fuzzer): refactor brillig target (noir-lang/noir#9821)
fix(fuzz): Always introduce a local binding before match (noir-lang/noir#9883)
chore(acir_gen): Switching existing ACIR gen tests to use parser and cleanup test module (noir-lang/noir#9878)
chore(acir_gen): Remove Brillig execution with constant arguments  (noir-lang/noir#9879)
fix: disallow `_` in where clauses, and disallow unused trait impl generics (noir-lang/noir#9871)
chore: bump external pinned commits (noir-lang/noir#9875)
feat: LSP lightweight mode (noir-lang/noir#9869)
chore: use `w` prefix for ACIR witnesses (noir-lang/noir#9839)
chore: greenlight remove enable side effects (noir-lang/noir#9833)
fix(fuzz): Avoid OOB when `in_no_dynamic` mode (noir-lang/noir#9858)
chore(ssa): Run purity analysis before preprocessing of functions (noir-lang/noir#9837)
fix: check for signed division overflow (noir-lang/noir#9857)
chore: Add tests from post-order PR (noir-lang/noir#9846)
chore(acir): Parse full program (foldable functions) (noir-lang/noir#9859)
chore: greenlight remove_bit_shifts (revised) (noir-lang/noir#9813)
feat(die): Prune unused entry block parameters for non-entry points (noir-lang/noir#9843)
chore: greenlight check_u128_mul_overflow (noir-lang/noir#9759)
chore: greenlight `remove_unreachable_instructions` for new requirements (noir-lang/noir#9810)
chore: use enum for instruction deduplication safety (noir-lang/noir#9824)
feat(LSP): signature help for macro attributes (noir-lang/noir#9536)
feat(LSP): folding ranges (noir-lang/noir#9854)
chore(die): IncrementRc/DecrementRc comments (noir-lang/noir#9855)
chore(ownership): Add tests for cloning nested arrays returned from indexing (noir-lang/noir#9789)
chore: validate that all jmpif conditions are boolean (noir-lang/noir#9850)
chore: bump external pinned commits (noir-lang/noir#9848)
chore(opt): Fetch set of Brillig entry points without reachability and recursive functions computation  (noir-lang/noir#9844)
chore: tests for map in stdlib (noir-lang/noir#9676)
chore(ssa): Brillig entry point specialization post check  (noir-lang/noir#9845)
chore: delete some unused snapshots (noir-lang/noir#9841)
feat(ssa): SSA CLI (noir-lang/noir#9826)
chore: more ACIR parser usages in tests, and optimize general optimizations (noir-lang/noir#9836)
chore(die): Remove RC tracker (noir-lang/noir#9809)
feat: better check_u128_mul_overflow logic when an operand is constant (noir-lang/noir#9835)
chore: increase number of cases tried in PR fuzzing (noir-lang/noir#9829)
chore: remove variable flag from poseidon2 hash (noir-lang/noir#9834)
chore: enforce that we only visit blocks once with new deque type (noir-lang/noir#9825)
chore(test): add tests for unconstrained `main` recursion (noir-lang/noir#8551)
chore: adding tests to vec (noir-lang/noir#9715)
feat(fuzz): Allow index OOB with a small probability (noir-lang/noir#9803)
chore(die): Encapsulate array access checks in separate module (noir-lang/noir#9828)
chore: use the ACIR parser in redundant_ranges tests (noir-lang/noir#9827)
chore: prefer `From` for infallible numeric casts (noir-lang/noir#9802)
chore: add a regression test for #4663 (noir-lang/noir#9819)
chore: bump linked bb version (noir-lang/noir#9237)
chore: use `DataFlowGraph` over `Function` in constant_folding (noir-lang/noir#9811)
chore: add a regression test for #6285 (noir-lang/noir#9817)
feat(fuzz): Generate calls to `slice_remove` and `slice_insert` in the AST fuzzer (noir-lang/noir#9786)
chore: no need to use `get_max_num_bits` if lhs is a constant (noir-lang/noir#9812)
chore(ci): fix release workflow permissions (noir-lang/noir#9822)
fix: do not simplify constraints with induction variable (noir-lang/noir#9806)
fix(ssa): Do not hoist unsafe `array_get` in Brillig (noir-lang/noir#9805)
fix(ownership): consider ident in nested l-value as used (noir-lang/noir#9793)
fix(mem2reg): handle instruction simplified to multiple (noir-lang/noir#9782)
fix: proper error when dividing by minus 1 (noir-lang/noir#9762)
chore: tests for field in stdlib (noir-lang/noir#9677)
chore(ssa_fuzzer): separate fuzzer runtimes + add brillig fuzz target (noir-lang/noir#9753)
feat(ownership): Do not clone indexed call results containing arrays (noir-lang/noir#9791)
Revert "chore: move `ram_blowup_regression` to be a compile-only test" (noir-lang/noir#9801)
feat: reverse loop condition in brillig to avoid NOT instruction (noir-lang/noir#9779)
chore: move `ram_blowup_regression` to be a compile-only test (noir-lang/noir#9790)
fix(docs): moves docs to correct path for sharing domain with landing (noir-lang/noir#9687)
chore: Check an inline always weight threshold during inline info computation (noir-lang/noir#9487)
chore: remove snapshots from `test_programs` artifacts (noir-lang/noir#9788)
chore: bump `@web/dev-server-esbuild` and `playwright` (noir-lang/noir#9781)
fix(ssa): Replace failing array access with constraint and defaults (noir-lang/noir#9776)
chore(die): Module doc comments (noir-lang/noir#9768)
chore: encapsulate constant folding logic better (noir-lang/noir#9773)
chore(ci): publish attestations on uploaded binaries (noir-lang/noir#9777)
feat: remove useless jump when branching in brillig (noir-lang/noir#9778)
chore: add `LoopContext::new` (noir-lang/noir#9720)
feat(ownership): Do not clone nested Index expressions (noir-lang/noir#9772)
chore(ci): add permissions to CI workflows (noir-lang/noir#9763)
fix(ssa): Accurate purities of ArraySet and RC instructions in Brillig (noir-lang/noir#9736)
chore: add test for when pending snapshots are committed (noir-lang/noir#9757)
chore(docs): Copy latest getting started guide into versioned docs (noir-lang/noir#9755)
chore: migrate away from fxhash to address advisory (noir-lang/noir#9752)
fix(fuzz): Install `just` in nightly fuzz workflow (noir-lang/noir#9756)
fix: wrong error message in brillig bit shift overflow (noir-lang/noir#9702)
chore: bump dependencies (noir-lang/noir#9751)
fix: left bit shift u128 would overflow Field (noir-lang/noir#9723)
Revert "chore: migrate away from fxhash to address advisory (noir-lang/noir#9750)"
chore: migrate away from fxhash to address advisory (noir-lang/noir#9750)
chore: bump external pinned commits (noir-lang/noir#9748)
chore(inlining): Skip weight calc for ACIR functions and recursive Brillig functions (noir-lang/noir#9739)
chore(ssa): Consolidate should inline check into a single filter (noir-lang/noir#9738)
feat: re-enable early mem2reg pass (noir-lang/noir#9744)
fix(ssa): Mark whether an ArrayGet requires a predicate based upon the runtime (noir-lang/noir#9712)
chore(licm): Identify untested code; refactoring; minor fixes (noir-lang/noir#9718)
chore(docs): Update Aztec logo in noir docs (noir-lang/noir#9740)
chore(ssa_fuzzer): refactor ssa fuzzer (noir-lang/noir#9651)
fix: error on boolean shift overflow in interpreter (noir-lang/noir#9724)
chore: do not inline acir calls in brillig (noir-lang/noir#9412)
chore: remove empty main from frontend tests (noir-lang/noir#9726)
chore: add tests for slice (noir-lang/noir#9650)
chore: greenlight `make_constrain_not_equal` for audits (noir-lang/noir#9535)
chore: Release Noir(1.0.0-beta.12) (noir-lang/noir#9565)
chore(test): Filter `ram_blowup_regression` by default on local testing (noir-lang/noir#9721)
chore(ci): force cargo-binstall to install tools in CI (noir-lang/noir#9722)
fix(ssa): Simplify instructions during `remove_unreachable_instructions` (noir-lang/noir#9709)
END_COMMIT_OVERRIDE
github-merge-queue bot pushed a commit to AztecProtocol/aztec-packages that referenced this pull request Sep 26, 2025
Automated pull of nightly from the
[noir](https://github.com/noir-lang/noir) programming language, a
dependency of Aztec.
BEGIN_COMMIT_OVERRIDE
chore: print ACIR AssertZero as an equation
(noir-lang/noir#9970)
chore(acir): Switch to inline SSA for slice intrinsics tests
(noir-lang/noir#10000)
fix(fuzz): Handle divisor of zero msg in error comparison
(noir-lang/noir#9995)
fix(ssa): Handle OOB indexing of slice literals in
`remove_unreachalbe_instructions`
(noir-lang/noir#9999)
chore: Add `DataFlowGraph::instruction_result` for getting a known
number of results (noir-lang/noir#9989)
chore(ast_fuzzer): Allow passing compilation options to cvise tool
(noir-lang/noir#9996)
chore(ssa_gen): Do not generate out of bounds checks for array
assignments in ACIR (noir-lang/noir#9992)
chore: add more to/from le/be bits/bytes edge case tests
(noir-lang/noir#9906)
fix: Disable early mem2reg (noir-lang/noir#9987)
chore(ci): free up space on github runner
(noir-lang/noir#9994)
chore(ssa): Nits in `remove_bit_shift` and `remove_if_else`
(noir-lang/noir#9965)
chore(ssa_executor): add compilation example
(noir-lang/noir#9937)
chore(acir): More arrays refactors
(noir-lang/noir#9962)
chore(test): add panicking tests for 'defunctionalize'
(noir-lang/noir#8510)
chore: remove_if_else docs and refactors
(noir-lang/noir#9929)
chore(acir): Do not copy element type sizes array when initializing
(noir-lang/noir#9955)
fix: correct max_bit_size when left-shifting
(noir-lang/noir#9770)
chore: checked_to_unchecked enhancements from audit review
(noir-lang/noir#9958)
chore(ssa): Remove `offset` from `ArrayGet` and `ArraySet`
(noir-lang/noir#9956)
chore(acir): Add some unit tests for arrays and light refactors
(noir-lang/noir#9953)
chore: add regression test for #9852
(noir-lang/noir#9960)
chore(fuzz): Add error equivalency for bit-shift overflow in the SSA
interpreter (noir-lang/noir#9957)
feat(cli): Visualize the Control Flow Graph
(noir-lang/noir#9867)
chore: minor constant_folding refactors
(noir-lang/noir#9954)
chore!: several ACIR serialisation changes
(noir-lang/noir#8134)
chore(ci): only send slack notifications during the week
(noir-lang/noir#9946)
chore: assumes no load-store in array_set
(noir-lang/noir#9940)
chore(acir): Arrays module doc comments
(noir-lang/noir#9947)
fix: correctly handle unusual radices in `ToRadix` decompositions
(noir-lang/noir#9941)
fix(ssa): Start with checked operations in index calculations
(noir-lang/noir#9888)
feat: no need to use dummy slice values in remove_if_else
(noir-lang/noir#9928)
chore: bump external pinned commits
(noir-lang/noir#9938)
chore: redo typo PR by viktorking7
(noir-lang/noir#9939)
chore: Release Noir(1.0.0-beta.13)
(noir-lang/noir#9737)
chore(ssa): Validate array operands
(noir-lang/noir#9932)
chore(licm): Add `CanBeHoistedResult::WithRefCount`
(noir-lang/noir#9849)
chore(ci): alert in slack if fuzzer fails
(noir-lang/noir#9910)
fix(fmt): missing skip whitespace when formatting match
(noir-lang/noir#9905)
chore(acir_gen): New shared_context module and some additional unit
tests (noir-lang/noir#9895)
chore: bump external pinned commits
(noir-lang/noir#9902)
chore: validate SSA intrinsics arguments and return types
(noir-lang/noir#9892)
chore(die): small nit to remove a check which is not useful
(noir-lang/noir#9898)
chore: implement Display for brillig
(noir-lang/noir#9893)
chore(acir_gen): Call module
(noir-lang/noir#9896)
feat: allow initializing dynamic arrays
(noir-lang/noir#9899)
fix(acir_gen): Handle flattening of numeric types when an `Array`
contains a `DynamicArray` (noir-lang/noir#9887)
fix(mem2reg): Do not attempt to analyze an instruction simplified to a
global (noir-lang/noir#9882)
fix: error on returning slice from main
(noir-lang/noir#9636)
fix(acir_gen): Fix entry point indices
(noir-lang/noir#9881)
chore: move `ram_blowup_regression` to be a compile-only test
(noir-lang/noir#9874)
chore: validate SSA call arguments
(noir-lang/noir#9876)
fix(ssa): Simplify always-fail range constraint
(noir-lang/noir#9885)
chore(fuzz): Refactor logging in the AST fuzzer
(noir-lang/noir#9884)
chore(ssa_fuzzer): refactor brillig target
(noir-lang/noir#9821)
fix(fuzz): Always introduce a local binding before match
(noir-lang/noir#9883)
chore(acir_gen): Switching existing ACIR gen tests to use parser and
cleanup test module (noir-lang/noir#9878)
chore(acir_gen): Remove Brillig execution with constant arguments
(noir-lang/noir#9879)
fix: disallow `_` in where clauses, and disallow unused trait impl
generics (noir-lang/noir#9871)
chore: bump external pinned commits
(noir-lang/noir#9875)
feat: LSP lightweight mode (noir-lang/noir#9869)
chore: use `w` prefix for ACIR witnesses
(noir-lang/noir#9839)
chore: greenlight remove enable side effects
(noir-lang/noir#9833)
fix(fuzz): Avoid OOB when `in_no_dynamic` mode
(noir-lang/noir#9858)
chore(ssa): Run purity analysis before preprocessing of functions
(noir-lang/noir#9837)
fix: check for signed division overflow
(noir-lang/noir#9857)
chore: Add tests from post-order PR
(noir-lang/noir#9846)
chore(acir): Parse full program (foldable functions)
(noir-lang/noir#9859)
chore: greenlight remove_bit_shifts (revised)
(noir-lang/noir#9813)
feat(die): Prune unused entry block parameters for non-entry points
(noir-lang/noir#9843)
chore: greenlight check_u128_mul_overflow
(noir-lang/noir#9759)
chore: greenlight `remove_unreachable_instructions` for new requirements
(noir-lang/noir#9810)
chore: use enum for instruction deduplication safety
(noir-lang/noir#9824)
feat(LSP): signature help for macro attributes
(noir-lang/noir#9536)
feat(LSP): folding ranges (noir-lang/noir#9854)
chore(die): IncrementRc/DecrementRc comments
(noir-lang/noir#9855)
chore(ownership): Add tests for cloning nested arrays returned from
indexing (noir-lang/noir#9789)
chore: validate that all jmpif conditions are boolean
(noir-lang/noir#9850)
chore: bump external pinned commits
(noir-lang/noir#9848)
chore(opt): Fetch set of Brillig entry points without reachability and
recursive functions computation
(noir-lang/noir#9844)
chore: tests for map in stdlib
(noir-lang/noir#9676)
chore(ssa): Brillig entry point specialization post check
(noir-lang/noir#9845)
chore: delete some unused snapshots
(noir-lang/noir#9841)
feat(ssa): SSA CLI (noir-lang/noir#9826)
chore: more ACIR parser usages in tests, and optimize general
optimizations (noir-lang/noir#9836)
chore(die): Remove RC tracker
(noir-lang/noir#9809)
feat: better check_u128_mul_overflow logic when an operand is constant
(noir-lang/noir#9835)
chore: increase number of cases tried in PR fuzzing
(noir-lang/noir#9829)
chore: remove variable flag from poseidon2 hash
(noir-lang/noir#9834)
chore: enforce that we only visit blocks once with new deque type
(noir-lang/noir#9825)
chore(test): add tests for unconstrained `main` recursion
(noir-lang/noir#8551)
chore: adding tests to vec (noir-lang/noir#9715)
feat(fuzz): Allow index OOB with a small probability
(noir-lang/noir#9803)
chore(die): Encapsulate array access checks in separate module
(noir-lang/noir#9828)
chore: use the ACIR parser in redundant_ranges tests
(noir-lang/noir#9827)
chore: prefer `From` for infallible numeric casts
(noir-lang/noir#9802)
chore: add a regression test for #4663
(noir-lang/noir#9819)
chore: bump linked bb version
(noir-lang/noir#9237)
chore: use `DataFlowGraph` over `Function` in constant_folding
(noir-lang/noir#9811)
chore: add a regression test for #6285
(noir-lang/noir#9817)
feat(fuzz): Generate calls to `slice_remove` and `slice_insert` in the
AST fuzzer (noir-lang/noir#9786)
chore: no need to use `get_max_num_bits` if lhs is a constant
(noir-lang/noir#9812)
chore(ci): fix release workflow permissions
(noir-lang/noir#9822)
fix: do not simplify constraints with induction variable
(noir-lang/noir#9806)
fix(ssa): Do not hoist unsafe `array_get` in Brillig
(noir-lang/noir#9805)
fix(ownership): consider ident in nested l-value as used
(noir-lang/noir#9793)
fix(mem2reg): handle instruction simplified to multiple
(noir-lang/noir#9782)
fix: proper error when dividing by minus 1
(noir-lang/noir#9762)
chore: tests for field in stdlib
(noir-lang/noir#9677)
chore(ssa_fuzzer): separate fuzzer runtimes + add brillig fuzz target
(noir-lang/noir#9753)
feat(ownership): Do not clone indexed call results containing arrays
(noir-lang/noir#9791)
Revert "chore: move `ram_blowup_regression` to be a compile-only test"
(noir-lang/noir#9801)
feat: reverse loop condition in brillig to avoid NOT instruction
(noir-lang/noir#9779)
chore: move `ram_blowup_regression` to be a compile-only test
(noir-lang/noir#9790)
fix(docs): moves docs to correct path for sharing domain with landing
(noir-lang/noir#9687)
chore: Check an inline always weight threshold during inline info
computation (noir-lang/noir#9487)
chore: remove snapshots from `test_programs` artifacts
(noir-lang/noir#9788)
chore: bump `@web/dev-server-esbuild` and `playwright`
(noir-lang/noir#9781)
fix(ssa): Replace failing array access with constraint and defaults
(noir-lang/noir#9776)
chore(die): Module doc comments
(noir-lang/noir#9768)
chore: encapsulate constant folding logic better
(noir-lang/noir#9773)
chore(ci): publish attestations on uploaded binaries
(noir-lang/noir#9777)
feat: remove useless jump when branching in brillig
(noir-lang/noir#9778)
chore: add `LoopContext::new`
(noir-lang/noir#9720)
feat(ownership): Do not clone nested Index expressions
(noir-lang/noir#9772)
chore(ci): add permissions to CI workflows
(noir-lang/noir#9763)
fix(ssa): Accurate purities of ArraySet and RC instructions in Brillig
(noir-lang/noir#9736)
chore: add test for when pending snapshots are committed
(noir-lang/noir#9757)
chore(docs): Copy latest getting started guide into versioned docs
(noir-lang/noir#9755)
chore: migrate away from fxhash to address advisory
(noir-lang/noir#9752)
fix(fuzz): Install `just` in nightly fuzz workflow
(noir-lang/noir#9756)
fix: wrong error message in brillig bit shift overflow
(noir-lang/noir#9702)
chore: bump dependencies (noir-lang/noir#9751)
fix: left bit shift u128 would overflow Field
(noir-lang/noir#9723)
Revert "chore: migrate away from fxhash to address advisory
(noir-lang/noir#9750)"
chore: migrate away from fxhash to address advisory
(noir-lang/noir#9750)
chore: bump external pinned commits
(noir-lang/noir#9748)
chore(inlining): Skip weight calc for ACIR functions and recursive
Brillig functions (noir-lang/noir#9739)
chore(ssa): Consolidate should inline check into a single filter
(noir-lang/noir#9738)
feat: re-enable early mem2reg pass
(noir-lang/noir#9744)
fix(ssa): Mark whether an ArrayGet requires a predicate based upon the
runtime (noir-lang/noir#9712)
chore(licm): Identify untested code; refactoring; minor fixes
(noir-lang/noir#9718)
chore(docs): Update Aztec logo in noir docs
(noir-lang/noir#9740)
chore(ssa_fuzzer): refactor ssa fuzzer
(noir-lang/noir#9651)
fix: error on boolean shift overflow in interpreter
(noir-lang/noir#9724)
chore: do not inline acir calls in brillig
(noir-lang/noir#9412)
chore: remove empty main from frontend tests
(noir-lang/noir#9726)
chore: add tests for slice (noir-lang/noir#9650)
chore: greenlight `make_constrain_not_equal` for audits
(noir-lang/noir#9535)
chore: Release Noir(1.0.0-beta.12)
(noir-lang/noir#9565)
chore(test): Filter `ram_blowup_regression` by default on local testing
(noir-lang/noir#9721)
chore(ci): force cargo-binstall to install tools in CI
(noir-lang/noir#9722)
fix(ssa): Simplify instructions during `remove_unreachable_instructions`
(noir-lang/noir#9709)
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: print ACIR AssertZero as an equation (noir-lang/noir#9970)
chore(acir): Switch to inline SSA for slice intrinsics tests (noir-lang/noir#10000)
fix(fuzz): Handle divisor of zero msg in error comparison (noir-lang/noir#9995)
fix(ssa): Handle OOB indexing of slice literals in `remove_unreachalbe_instructions` (noir-lang/noir#9999)
chore: Add `DataFlowGraph::instruction_result` for getting a known number of results (noir-lang/noir#9989)
chore(ast_fuzzer): Allow passing compilation options to cvise tool (noir-lang/noir#9996)
chore(ssa_gen): Do not generate out of bounds checks for array assignments in ACIR (noir-lang/noir#9992)
chore: add more to/from le/be bits/bytes edge case tests (noir-lang/noir#9906)
fix: Disable early mem2reg (noir-lang/noir#9987)
chore(ci): free up space on github runner (noir-lang/noir#9994)
chore(ssa): Nits in `remove_bit_shift` and `remove_if_else` (noir-lang/noir#9965)
chore(ssa_executor): add compilation example  (noir-lang/noir#9937)
chore(acir): More arrays refactors  (noir-lang/noir#9962)
chore(test): add panicking tests for 'defunctionalize' (noir-lang/noir#8510)
chore: remove_if_else docs and refactors (noir-lang/noir#9929)
chore(acir): Do not copy element type sizes array when initializing (noir-lang/noir#9955)
fix: correct max_bit_size when left-shifting (noir-lang/noir#9770)
chore: checked_to_unchecked enhancements from audit review (noir-lang/noir#9958)
chore(ssa): Remove `offset` from `ArrayGet` and `ArraySet` (noir-lang/noir#9956)
chore(acir): Add some unit tests for arrays and light refactors (noir-lang/noir#9953)
chore: add regression test for #9852 (noir-lang/noir#9960)
chore(fuzz): Add error equivalency for bit-shift overflow in the SSA interpreter (noir-lang/noir#9957)
feat(cli): Visualize the Control Flow Graph (noir-lang/noir#9867)
chore: minor constant_folding refactors (noir-lang/noir#9954)
chore!: several ACIR serialisation changes (noir-lang/noir#8134)
chore(ci): only send slack notifications during the week (noir-lang/noir#9946)
chore: assumes no load-store in array_set (noir-lang/noir#9940)
chore(acir): Arrays module doc comments (noir-lang/noir#9947)
fix: correctly handle unusual radices in `ToRadix` decompositions (noir-lang/noir#9941)
fix(ssa): Start with checked operations in index calculations (noir-lang/noir#9888)
feat: no need to use dummy slice values in remove_if_else (noir-lang/noir#9928)
chore: bump external pinned commits (noir-lang/noir#9938)
chore: redo typo PR by viktorking7 (noir-lang/noir#9939)
chore: Release Noir(1.0.0-beta.13) (noir-lang/noir#9737)
chore(ssa): Validate array operands (noir-lang/noir#9932)
chore(licm): Add `CanBeHoistedResult::WithRefCount` (noir-lang/noir#9849)
chore(ci): alert in slack if fuzzer fails (noir-lang/noir#9910)
fix(fmt): missing skip whitespace when formatting match (noir-lang/noir#9905)
chore(acir_gen): New shared_context module and some additional unit tests (noir-lang/noir#9895)
chore: bump external pinned commits (noir-lang/noir#9902)
chore: validate SSA intrinsics arguments and return types (noir-lang/noir#9892)
chore(die): small nit to remove a check which is not useful (noir-lang/noir#9898)
chore: implement Display for brillig (noir-lang/noir#9893)
chore(acir_gen): Call module (noir-lang/noir#9896)
feat: allow initializing dynamic arrays (noir-lang/noir#9899)
fix(acir_gen): Handle flattening of numeric types when an `Array` contains a `DynamicArray` (noir-lang/noir#9887)
fix(mem2reg): Do not attempt to analyze an instruction simplified to a global (noir-lang/noir#9882)
fix: error on returning slice from main (noir-lang/noir#9636)
fix(acir_gen): Fix entry point indices (noir-lang/noir#9881)
chore: move `ram_blowup_regression` to be a compile-only test (noir-lang/noir#9874)
chore: validate SSA call arguments (noir-lang/noir#9876)
fix(ssa): Simplify always-fail range constraint (noir-lang/noir#9885)
chore(fuzz): Refactor logging in the AST fuzzer (noir-lang/noir#9884)
chore(ssa_fuzzer): refactor brillig target (noir-lang/noir#9821)
fix(fuzz): Always introduce a local binding before match (noir-lang/noir#9883)
chore(acir_gen): Switching existing ACIR gen tests to use parser and cleanup test module (noir-lang/noir#9878)
chore(acir_gen): Remove Brillig execution with constant arguments  (noir-lang/noir#9879)
fix: disallow `_` in where clauses, and disallow unused trait impl generics (noir-lang/noir#9871)
chore: bump external pinned commits (noir-lang/noir#9875)
feat: LSP lightweight mode (noir-lang/noir#9869)
chore: use `w` prefix for ACIR witnesses (noir-lang/noir#9839)
chore: greenlight remove enable side effects (noir-lang/noir#9833)
fix(fuzz): Avoid OOB when `in_no_dynamic` mode (noir-lang/noir#9858)
chore(ssa): Run purity analysis before preprocessing of functions (noir-lang/noir#9837)
fix: check for signed division overflow (noir-lang/noir#9857)
chore: Add tests from post-order PR (noir-lang/noir#9846)
chore(acir): Parse full program (foldable functions) (noir-lang/noir#9859)
chore: greenlight remove_bit_shifts (revised) (noir-lang/noir#9813)
feat(die): Prune unused entry block parameters for non-entry points (noir-lang/noir#9843)
chore: greenlight check_u128_mul_overflow (noir-lang/noir#9759)
chore: greenlight `remove_unreachable_instructions` for new requirements (noir-lang/noir#9810)
chore: use enum for instruction deduplication safety (noir-lang/noir#9824)
feat(LSP): signature help for macro attributes (noir-lang/noir#9536)
feat(LSP): folding ranges (noir-lang/noir#9854)
chore(die): IncrementRc/DecrementRc comments (noir-lang/noir#9855)
chore(ownership): Add tests for cloning nested arrays returned from indexing (noir-lang/noir#9789)
chore: validate that all jmpif conditions are boolean (noir-lang/noir#9850)
chore: bump external pinned commits (noir-lang/noir#9848)
chore(opt): Fetch set of Brillig entry points without reachability and recursive functions computation  (noir-lang/noir#9844)
chore: tests for map in stdlib (noir-lang/noir#9676)
chore(ssa): Brillig entry point specialization post check  (noir-lang/noir#9845)
chore: delete some unused snapshots (noir-lang/noir#9841)
feat(ssa): SSA CLI (noir-lang/noir#9826)
chore: more ACIR parser usages in tests, and optimize general optimizations (noir-lang/noir#9836)
chore(die): Remove RC tracker (noir-lang/noir#9809)
feat: better check_u128_mul_overflow logic when an operand is constant (noir-lang/noir#9835)
chore: increase number of cases tried in PR fuzzing (noir-lang/noir#9829)
chore: remove variable flag from poseidon2 hash (noir-lang/noir#9834)
chore: enforce that we only visit blocks once with new deque type (noir-lang/noir#9825)
chore(test): add tests for unconstrained `main` recursion (noir-lang/noir#8551)
chore: adding tests to vec (noir-lang/noir#9715)
feat(fuzz): Allow index OOB with a small probability (noir-lang/noir#9803)
chore(die): Encapsulate array access checks in separate module (noir-lang/noir#9828)
chore: use the ACIR parser in redundant_ranges tests (noir-lang/noir#9827)
chore: prefer `From` for infallible numeric casts (noir-lang/noir#9802)
chore: add a regression test for #4663 (noir-lang/noir#9819)
chore: bump linked bb version (noir-lang/noir#9237)
chore: use `DataFlowGraph` over `Function` in constant_folding (noir-lang/noir#9811)
chore: add a regression test for #6285 (noir-lang/noir#9817)
feat(fuzz): Generate calls to `slice_remove` and `slice_insert` in the AST fuzzer (noir-lang/noir#9786)
chore: no need to use `get_max_num_bits` if lhs is a constant (noir-lang/noir#9812)
chore(ci): fix release workflow permissions (noir-lang/noir#9822)
fix: do not simplify constraints with induction variable (noir-lang/noir#9806)
fix(ssa): Do not hoist unsafe `array_get` in Brillig (noir-lang/noir#9805)
fix(ownership): consider ident in nested l-value as used (noir-lang/noir#9793)
fix(mem2reg): handle instruction simplified to multiple (noir-lang/noir#9782)
fix: proper error when dividing by minus 1 (noir-lang/noir#9762)
chore: tests for field in stdlib (noir-lang/noir#9677)
chore(ssa_fuzzer): separate fuzzer runtimes + add brillig fuzz target (noir-lang/noir#9753)
feat(ownership): Do not clone indexed call results containing arrays (noir-lang/noir#9791)
Revert "chore: move `ram_blowup_regression` to be a compile-only test" (noir-lang/noir#9801)
feat: reverse loop condition in brillig to avoid NOT instruction (noir-lang/noir#9779)
chore: move `ram_blowup_regression` to be a compile-only test (noir-lang/noir#9790)
fix(docs): moves docs to correct path for sharing domain with landing (noir-lang/noir#9687)
chore: Check an inline always weight threshold during inline info computation (noir-lang/noir#9487)
chore: remove snapshots from `test_programs` artifacts (noir-lang/noir#9788)
chore: bump `@web/dev-server-esbuild` and `playwright` (noir-lang/noir#9781)
fix(ssa): Replace failing array access with constraint and defaults (noir-lang/noir#9776)
chore(die): Module doc comments (noir-lang/noir#9768)
chore: encapsulate constant folding logic better (noir-lang/noir#9773)
chore(ci): publish attestations on uploaded binaries (noir-lang/noir#9777)
feat: remove useless jump when branching in brillig (noir-lang/noir#9778)
chore: add `LoopContext::new` (noir-lang/noir#9720)
feat(ownership): Do not clone nested Index expressions (noir-lang/noir#9772)
chore(ci): add permissions to CI workflows (noir-lang/noir#9763)
fix(ssa): Accurate purities of ArraySet and RC instructions in Brillig (noir-lang/noir#9736)
chore: add test for when pending snapshots are committed (noir-lang/noir#9757)
chore(docs): Copy latest getting started guide into versioned docs (noir-lang/noir#9755)
chore: migrate away from fxhash to address advisory (noir-lang/noir#9752)
fix(fuzz): Install `just` in nightly fuzz workflow (noir-lang/noir#9756)
fix: wrong error message in brillig bit shift overflow (noir-lang/noir#9702)
chore: bump dependencies (noir-lang/noir#9751)
fix: left bit shift u128 would overflow Field (noir-lang/noir#9723)
Revert "chore: migrate away from fxhash to address advisory (noir-lang/noir#9750)"
chore: migrate away from fxhash to address advisory (noir-lang/noir#9750)
chore: bump external pinned commits (noir-lang/noir#9748)
chore(inlining): Skip weight calc for ACIR functions and recursive Brillig functions (noir-lang/noir#9739)
chore(ssa): Consolidate should inline check into a single filter (noir-lang/noir#9738)
feat: re-enable early mem2reg pass (noir-lang/noir#9744)
fix(ssa): Mark whether an ArrayGet requires a predicate based upon the runtime (noir-lang/noir#9712)
chore(licm): Identify untested code; refactoring; minor fixes (noir-lang/noir#9718)
chore(docs): Update Aztec logo in noir docs (noir-lang/noir#9740)
chore(ssa_fuzzer): refactor ssa fuzzer (noir-lang/noir#9651)
fix: error on boolean shift overflow in interpreter (noir-lang/noir#9724)
chore: do not inline acir calls in brillig (noir-lang/noir#9412)
chore: remove empty main from frontend tests (noir-lang/noir#9726)
chore: add tests for slice (noir-lang/noir#9650)
chore: greenlight `make_constrain_not_equal` for audits (noir-lang/noir#9535)
chore: Release Noir(1.0.0-beta.12) (noir-lang/noir#9565)
chore(test): Filter `ram_blowup_regression` by default on local testing (noir-lang/noir#9721)
chore(ci): force cargo-binstall to install tools in CI (noir-lang/noir#9722)
fix(ssa): Simplify instructions during `remove_unreachable_instructions` (noir-lang/noir#9709)
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.

3 participants