Skip to content

chore(optimization): Enable experimental ownership clone scheme by default#8097

Merged
jfecher merged 9 commits intomasterfrom
jf/experimental-ownership-by-default
Apr 16, 2025
Merged

chore(optimization): Enable experimental ownership clone scheme by default#8097
jfecher merged 9 commits intomasterfrom
jf/experimental-ownership-by-default

Conversation

@jfecher
Copy link
Contributor

@jfecher jfecher commented Apr 15, 2025

Description

Problem*

Resolves #7287

Summary*

Enables the ownership scheme implemented in #7861 by default for fewer array copies - see the copy counts in that PR's comments.

Additional Context

Do not be deceived by line count on this PR! Most are test snapshot changes and ~400 net lines removed from ownership/mod.rs.

Expecting to see CI results similar to #7951.

Note that the -Zownership flag is still in the compiler, it just now only toggles whether immutable references are allowed.

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
Copy link
Contributor

github-actions bot commented Apr 15, 2025

Changes to Brillig bytecode sizes

Generated at commit: 9d601ebc00e49bc97c51debf3007e533ee56ad25, compared to commit: 28250eac56cf1717e8bea1a2bbdc75499832664b

🧾 Summary (10% most significant diffs)

Program Brillig opcodes (+/-) %
hashmap_inliner_zero +830 ❌ +12.13%
array_len_inliner_max +12 ❌ +12.12%
array_len_inliner_zero +12 ❌ +12.12%
reference_counts_inliner_max_inliner_max +69 ❌ +11.00%
reference_counts_inliner_0_inliner_max +67 ❌ +10.65%
reference_counts_inliner_min_inliner_max +67 ❌ +10.65%
brillig_cow_inliner_max +33 ❌ +10.28%
reference_counts_inliner_max_inliner_min +77 ❌ +8.98%
reference_counts_inliner_0_inliner_min +75 ❌ +8.73%
reference_counts_inliner_min_inliner_min +75 ❌ +8.73%
reference_counts_inliner_max_inliner_zero +66 ❌ +8.41%
reference_counts_inliner_0_inliner_zero +64 ❌ +8.13%
reference_counts_inliner_min_inliner_zero +64 ❌ +8.13%
aes128_encrypt_inliner_min -34 ✅ -8.06%
fold_complex_outputs_inliner_zero -42 ✅ -8.59%
fold_distinct_return_inliner_min -9 ✅ -8.74%
regression_6674_2_inliner_min -27 ✅ -9.51%
regression_11294_inliner_min -43 ✅ -10.19%
regression_6674_3_inliner_min -83 ✅ -10.39%
regression_6674_1_inliner_min -30 ✅ -10.45%
regression_6674_3_inliner_zero -54 ✅ -11.71%
slice_regex_inliner_max -287 ✅ -12.53%
regression_6674_3_inliner_max -60 ✅ -13.02%
simple_radix_inliner_min -13 ✅ -14.77%
to_bytes_integration_inliner_min -43 ✅ -19.63%

Full diff report 👇
Program Brillig opcodes (+/-) %
hashmap_inliner_zero 7,673 (+830) +12.13%
array_len_inliner_max 111 (+12) +12.12%
array_len_inliner_zero 111 (+12) +12.12%
reference_counts_inliner_max_inliner_max 696 (+69) +11.00%
reference_counts_inliner_0_inliner_max 696 (+67) +10.65%
reference_counts_inliner_min_inliner_max 696 (+67) +10.65%
brillig_cow_inliner_max 354 (+33) +10.28%
reference_counts_inliner_max_inliner_min 934 (+77) +8.98%
reference_counts_inliner_0_inliner_min 934 (+75) +8.73%
reference_counts_inliner_min_inliner_min 934 (+75) +8.73%
reference_counts_inliner_max_inliner_zero 851 (+66) +8.41%
reference_counts_inliner_0_inliner_zero 851 (+64) +8.13%
reference_counts_inliner_min_inliner_zero 851 (+64) +8.13%
array_len_inliner_min 121 (+9) +8.04%
brillig_cow_inliner_zero 246 (+18) +7.89%
higher_order_functions_inliner_max 548 (+39) +7.66%
double_verify_proof_inliner_max 87 (+6) +7.41%
double_verify_proof_inliner_min 87 (+6) +7.41%
double_verify_proof_inliner_zero 87 (+6) +7.41%
array_rc_regression_7842_inliner_zero 91 (+6) +7.06%
regression_6734_inliner_min 61 (+3) +5.17%
struct_inputs_inliner_zero 249 (+12) +5.06%
tuple_inputs_inliner_max 316 (+15) +4.98%
higher_order_functions_inliner_zero 706 (+33) +4.90%
mutate_array_copy_inliner_min 140 (+6) +4.48%
7_function_inliner_max 527 (+21) +4.15%
hint_black_box_inliner_max 311 (+12) +4.01%
array_to_slice_inliner_max 489 (+18) +3.82%
higher_order_functions_inliner_min 1,269 (+45) +3.68%
struct_inputs_inliner_max 256 (+9) +3.64%
array_eq_inliner_max 87 (+3) +3.57%
regression_unsafe_no_predicates_inliner_min 87 (+3) +3.57%
array_eq_inliner_zero 87 (+3) +3.57%
array_neq_inliner_max 89 (+3) +3.49%
array_neq_inliner_zero 89 (+3) +3.49%
hint_black_box_inliner_zero 359 (+12) +3.46%
mutate_array_copy_inliner_zero 91 (+3) +3.41%
hint_black_box_inliner_min 369 (+12) +3.36%
array_eq_inliner_min 97 (+3) +3.19%
tuple_inputs_inliner_min 292 (+9) +3.18%
tuple_inputs_inliner_zero 292 (+9) +3.18%
regression_7062_inliner_max 98 (+3) +3.16%
brillig_calls_array_inliner_max 98 (+3) +3.16%
regression_7062_inliner_min 98 (+3) +3.16%
regression_7062_inliner_zero 98 (+3) +3.16%
array_neq_inliner_min 99 (+3) +3.13%
uhashmap_inliner_max 10,682 (+315) +3.04%
brillig_cow_inliner_min 315 (+9) +2.94%
fold_numeric_generic_poseidon_inliner_min 599 (+17) +2.92%
derive_inliner_zero 321 (+9) +2.88%
uhashmap_inliner_zero 6,722 (+185) +2.83%
brillig_arrays_inliner_max 116 (+3) +2.65%
brillig_arrays_inliner_zero 116 (+3) +2.65%
7_function_inliner_zero 499 (+12) +2.46%
uhashmap_inliner_min 7,385 (+174) +2.41%
regression_inliner_max 894 (+21) +2.41%
slice_dynamic_index_inliner_max 2,057 (+48) +2.39%
slice_dynamic_index_inliner_zero 2,057 (+48) +2.39%
brillig_blake2s_inliner_max 132 (+3) +2.33%
brillig_blake2s_inliner_zero 132 (+3) +2.33%
regression_inliner_zero 929 (+21) +2.31%
hashmap_inliner_max 16,390 (+367) +2.29%
6_inliner_max 135 (+3) +2.27%
6_inliner_zero 135 (+3) +2.27%
brillig_arrays_inliner_min 138 (+3) +2.22%
slices_inliner_min 2,224 (+48) +2.21%
simple_2d_array_inliner_min 139 (+3) +2.21%
array_rc_regression_7842_inliner_min 141 (+3) +2.17%
slice_dynamic_index_inliner_min 2,261 (+48) +2.17%
brillig_blake2s_inliner_min 142 (+3) +2.16%
6_inliner_min 145 (+3) +2.11%
array_to_slice_inliner_min 903 (+18) +2.03%
generics_inliner_zero 160 (+3) +1.91%
array_to_slice_inliner_zero 663 (+12) +1.84%
slice_loop_inliner_max 234 (+4) +1.74%
aes128_encrypt_inliner_max 406 (+6) +1.50%
slice_loop_inliner_zero 297 (+4) +1.37%
slice_loop_inliner_min 307 (+4) +1.32%
slices_inliner_zero 1,661 (+21) +1.28%
generics_inliner_min 239 (+3) +1.27%
array_dedup_regression_inliner_max 262 (+3) +1.16%
array_dedup_regression_inliner_zero 262 (+3) +1.16%
regression_inliner_min 1,056 (+12) +1.15%
encrypted_log_regression_inliner_max 268 (+3) +1.13%
array_dedup_regression_inliner_min 268 (+3) +1.13%
encrypted_log_regression_inliner_zero 268 (+3) +1.13%
encrypted_log_regression_inliner_min 281 (+3) +1.08%
strings_inliner_zero 909 (+9) +1.00%
hashmap_inliner_min 8,668 (+84) +0.98%
6_array_inliner_max 337 (+3) +0.90%
nested_array_dynamic_inliner_max 1,702 (+15) +0.89%
aes128_encrypt_inliner_zero 379 (+3) +0.80%
merkle_insert_inliner_zero 390 (+3) +0.78%
6_array_inliner_zero 395 (+3) +0.77%
references_inliner_min 401 (+3) +0.75%
6_array_inliner_min 405 (+3) +0.75%
merkle_insert_inliner_max 555 (+3) +0.54%
struct_inputs_inliner_min 268 (+1) +0.37%
strings_inliner_max 914 (+3) +0.33%
debug_logs_inliner_max 5,117 (+3) +0.06%
debug_logs_inliner_zero 5,318 (+3) +0.06%
debug_logs_inliner_min 8,979 (+3) +0.03%
7_function_inliner_min 610 (-1) -0.16%
brillig_cow_regression_inliner_max 1,211 (-3) -0.25%
brillig_cow_regression_inliner_zero 1,211 (-3) -0.25%
poseidon_bn254_hash_width_3_inliner_zero 4,449 (-12) -0.27%
poseidon_bn254_hash_width_3_inliner_max 4,860 (-18) -0.37%
nested_array_in_slice_inliner_max 762 (-3) -0.39%
poseidonsponge_x5_254_inliner_zero 2,911 (-15) -0.51%
no_predicates_numeric_generic_poseidon_inliner_min 579 (-3) -0.52%
regression_5252_inliner_min 3,416 (-18) -0.52%
poseidonsponge_x5_254_inliner_max 3,684 (-27) -0.73%
regression_5252_inliner_zero 3,245 (-24) -0.73%
array_dynamic_blackbox_input_inliner_min 392 (-3) -0.76%
slice_regex_inliner_zero 1,632 (-13) -0.79%
array_dynamic_blackbox_input_inliner_max 371 (-3) -0.80%
array_dynamic_blackbox_input_inliner_zero 371 (-3) -0.80%
simple_shield_inliner_max 683 (-6) -0.87%
regression_5252_inliner_max 3,971 (-36) -0.90%
poseidonsponge_x5_254_inliner_min 3,039 (-28) -0.91%
array_sort_inliner_min 318 (-3) -0.93%
simple_shield_inliner_zero 621 (-6) -0.96%
poseidon_bn254_hash_width_3_inliner_min 4,792 (-55) -1.13%
brillig_nested_arrays_inliner_min 239 (-3) -1.24%
slice_coercion_inliner_min 471 (-6) -1.26%
brillig_pedersen_inliner_min 465 (-6) -1.27%
pedersen_check_inliner_min 465 (-6) -1.27%
global_consts_inliner_min 232 (-3) -1.28%
regression_11294_inliner_max 221 (-3) -1.34%
regression_11294_inliner_zero 221 (-3) -1.34%
regression_capacity_tracker_inliner_max 216 (-3) -1.37%
regression_capacity_tracker_inliner_min 216 (-3) -1.37%
regression_capacity_tracker_inliner_zero 216 (-3) -1.37%
fold_numeric_generic_poseidon_inliner_max 638 (-9) -1.39%
no_predicates_numeric_generic_poseidon_inliner_max 638 (-9) -1.39%
brillig_pedersen_inliner_zero 423 (-6) -1.40%
pedersen_check_inliner_zero 423 (-6) -1.40%
to_be_bytes_inliner_min 210 (-3) -1.41%
slice_regex_inliner_min 2,000 (-29) -1.43%
brillig_nested_arrays_inliner_zero 206 (-3) -1.44%
brillig_pedersen_inliner_max 411 (-6) -1.44%
pedersen_check_inliner_max 411 (-6) -1.44%
global_consts_inliner_max 201 (-3) -1.47%
global_consts_inliner_zero 201 (-3) -1.47%
strings_inliner_min 1,042 (-16) -1.51%
brillig_calls_array_inliner_min 195 (-3) -1.52%
fold_2_to_17_inliner_min 364 (-6) -1.62%
brillig_calls_array_inliner_zero 168 (-3) -1.75%
bench_2_to_17_inliner_min 333 (-6) -1.77%
regression_bignum_inliner_min 327 (-6) -1.80%
pedersen_commitment_inliner_max 163 (-3) -1.81%
pedersen_commitment_inliner_zero 163 (-3) -1.81%
array_dynamic_nested_blackbox_input_inliner_min 323 (-6) -1.82%
array_dynamic_nested_blackbox_input_inliner_max 313 (-6) -1.88%
array_dynamic_nested_blackbox_input_inliner_zero 313 (-6) -1.88%
brillig_cow_regression_inliner_min 1,278 (-25) -1.92%
conditional_2_inliner_min 153 (-3) -1.92%
array_dynamic_inliner_min 298 (-6) -1.97%
nested_arrays_from_brillig_inliner_min 148 (-3) -1.99%
pedersen_commitment_inliner_min 147 (-3) -2.00%
array_dynamic_inliner_max 287 (-6) -2.05%
array_dynamic_inliner_zero 287 (-6) -2.05%
fold_numeric_generic_poseidon_inliner_zero 505 (-11) -2.13%
no_predicates_numeric_generic_poseidon_inliner_zero 505 (-11) -2.13%
hash_to_field_inliner_max 131 (-3) -2.24%
hash_to_field_inliner_zero 131 (-3) -2.24%
nested_array_dynamic_inliner_min 1,406 (-33) -2.29%
nested_array_dynamic_inliner_zero 1,406 (-33) -2.29%
ram_blowup_regression_inliner_min 250 (-6) -2.34%
regression_bignum_inliner_max 291 (-7) -2.35%
regression_bignum_inliner_zero 291 (-7) -2.35%
merkle_insert_inliner_min 408 (-10) -2.39%
import_inliner_min 120 (-3) -2.44%
to_le_bytes_inliner_max 116 (-3) -2.52%
to_le_bytes_inliner_zero 116 (-3) -2.52%
regression_7128_inliner_max 113 (-3) -2.59%
regression_7128_inliner_zero 113 (-3) -2.59%
simple_shield_inliner_min 713 (-19) -2.60%
conditional_2_inliner_max 110 (-3) -2.65%
conditional_2_inliner_zero 110 (-3) -2.65%
hash_to_field_inliner_min 198 (-6) -2.94%
databus_two_calldata_inliner_max 193 (-6) -3.02%
databus_two_calldata_inliner_min 193 (-6) -3.02%
databus_two_calldata_inliner_zero 193 (-6) -3.02%
bench_2_to_17_inliner_max 277 (-9) -3.15%
bench_2_to_17_inliner_zero 259 (-9) -3.36%
conditional_1_inliner_min 536 (-19) -3.42%
conditional_1_inliner_zero 536 (-19) -3.42%
fold_2_to_17_inliner_max 480 (-18) -3.61%
to_le_bytes_inliner_min 157 (-6) -3.68%
nested_dyn_array_regression_5782_inliner_max 156 (-6) -3.70%
nested_dyn_array_regression_5782_inliner_min 156 (-6) -3.70%
nested_dyn_array_regression_5782_inliner_zero 156 (-6) -3.70%
conditional_regression_661_inliner_min 154 (-6) -3.75%
conditional_regression_661_inliner_zero 148 (-6) -3.90%
brillig_rc_regression_6123_inliner_min 190 (-8) -4.04%
conditional_1_inliner_max 562 (-24) -4.10%
multi_scalar_mul_inliner_min 304 (-13) -4.10%
to_bytes_consistent_inliner_min 69 (-3) -4.17%
to_bytes_consistent_inliner_zero 69 (-3) -4.17%
regression_7128_inliner_min 134 (-6) -4.29%
array_if_cond_simple_inliner_max 130 (-6) -4.41%
array_if_cond_simple_inliner_min 130 (-6) -4.41%
array_if_cond_simple_inliner_zero 130 (-6) -4.41%
brillig_uninitialized_arrays_inliner_min 64 (-3) -4.48%
regression_6674_2_inliner_zero 190 (-9) -4.52%
reference_only_used_as_alias_inliner_min 239 (-12) -4.78%
fold_2_to_17_inliner_zero 356 (-18) -4.81%
conditional_regression_661_inliner_max 118 (-6) -4.84%
derive_inliner_min 526 (-28) -5.05%
regression_mem_op_predicate_inliner_max 108 (-6) -5.26%
regression_mem_op_predicate_inliner_min 108 (-6) -5.26%
regression_mem_op_predicate_inliner_zero 108 (-6) -5.26%
nested_array_in_slice_inliner_min 731 (-42) -5.43%
nested_array_in_slice_inliner_zero 731 (-42) -5.43%
regression_4088_inliner_min 52 (-3) -5.45%
regression_6674_1_inliner_zero 187 (-12) -6.03%
array_dynamic_main_output_inliner_max 92 (-6) -6.12%
array_dynamic_main_output_inliner_min 92 (-6) -6.12%
array_dynamic_main_output_inliner_zero 92 (-6) -6.12%
fold_complex_outputs_inliner_max 361 (-24) -6.23%
regression_6674_1_inliner_max 206 (-15) -6.79%
regression_6674_2_inliner_max 206 (-15) -6.79%
fold_complex_outputs_inliner_min 518 (-39) -7.00%
to_bits_inliner_min 184 (-16) -8.00%
aes128_encrypt_inliner_min 388 (-34) -8.06%
fold_complex_outputs_inliner_zero 447 (-42) -8.59%
fold_distinct_return_inliner_min 94 (-9) -8.74%
regression_6674_2_inliner_min 257 (-27) -9.51%
regression_11294_inliner_min 379 (-43) -10.19%
regression_6674_3_inliner_min 716 (-83) -10.39%
regression_6674_1_inliner_min 257 (-30) -10.45%
regression_6674_3_inliner_zero 407 (-54) -11.71%
slice_regex_inliner_max 2,004 (-287) -12.53%
regression_6674_3_inliner_max 401 (-60) -13.02%
simple_radix_inliner_min 75 (-13) -14.77%
to_bytes_integration_inliner_min 176 (-43) -19.63%

@github-actions
Copy link
Contributor

github-actions bot commented Apr 15, 2025

Changes to number of Brillig opcodes executed

Generated at commit: 9d601ebc00e49bc97c51debf3007e533ee56ad25, compared to commit: 28250eac56cf1717e8bea1a2bbdc75499832664b

🧾 Summary (10% most significant diffs)

Program Brillig opcodes (+/-) %
hashmap_inliner_max +7,287 ❌ +17.33%
uhashmap_inliner_max +17,392 ❌ +14.06%
bench_2_to_17_inliner_zero -71,942 ✅ -13.26%
bench_2_to_17_inliner_max -71,942 ✅ -14.29%
fold_2_to_17_inliner_max -136,844 ✅ -14.73%
fold_complex_outputs_inliner_min -156 ✅ -17.61%
fold_complex_outputs_inliner_zero -159 ✅ -19.49%
simple_radix_inliner_min -17 ✅ -19.54%
nested_dyn_array_regression_5782_inliner_max -36 ✅ -21.95%
nested_dyn_array_regression_5782_inliner_min -36 ✅ -21.95%
nested_dyn_array_regression_5782_inliner_zero -36 ✅ -21.95%
fold_complex_outputs_inliner_max -147 ✅ -24.54%
to_bits_inliner_min -169 ✅ -25.41%
array_dynamic_main_output_inliner_max -92 ✅ -30.36%
array_dynamic_main_output_inliner_min -92 ✅ -30.36%
array_dynamic_main_output_inliner_zero -92 ✅ -30.36%
reference_only_used_as_alias_inliner_min -140 ✅ -34.15%
regression_capacity_tracker_inliner_max -331 ✅ -36.78%
regression_capacity_tracker_inliner_min -331 ✅ -36.78%
regression_capacity_tracker_inliner_zero -331 ✅ -36.78%
fold_distinct_return_inliner_min -46 ✅ -38.33%
array_if_cond_simple_inliner_max -232 ✅ -42.80%
array_if_cond_simple_inliner_min -232 ✅ -42.80%
array_if_cond_simple_inliner_zero -232 ✅ -42.80%
to_bytes_integration_inliner_min -1,852 ✅ -43.69%

Full diff report 👇
Program Brillig opcodes (+/-) %
hashmap_inliner_max 49,347 (+7,287) +17.33%
uhashmap_inliner_max 141,058 (+17,392) +14.06%
array_rc_regression_7842_inliner_zero 111 (+9) +8.82%
uhashmap_inliner_zero 173,214 (+11,883) +7.37%
uhashmap_inliner_min 192,832 (+11,680) +6.45%
slice_dynamic_index_inliner_max 4,610 (+279) +6.44%
slice_dynamic_index_inliner_zero 4,610 (+279) +6.44%
array_len_inliner_max 202 (+12) +6.32%
array_len_inliner_zero 202 (+12) +6.32%
slice_dynamic_index_inliner_min 4,850 (+279) +6.10%
mutate_array_copy_inliner_zero 111 (+6) +5.71%
derive_inliner_zero 347 (+18) +5.47%
mutate_array_copy_inliner_min 178 (+9) +5.33%
higher_order_functions_inliner_max 844 (+39) +4.84%
regression_6734_inliner_min 65 (+3) +4.84%
regression_7062_inliner_max 70 (+3) +4.48%
regression_7062_inliner_min 70 (+3) +4.48%
regression_7062_inliner_zero 70 (+3) +4.48%
array_len_inliner_min 216 (+9) +4.35%
generics_inliner_zero 222 (+9) +4.23%
brillig_cow_inliner_max 948 (+33) +3.61%
array_rc_regression_7842_inliner_min 179 (+6) +3.47%
brillig_cow_inliner_zero 730 (+24) +3.40%
hashmap_inliner_zero 69,964 (+2,298) +3.40%
higher_order_functions_inliner_zero 1,225 (+39) +3.29%
brillig_calls_array_inliner_max 96 (+3) +3.23%
brillig_cow_inliner_min 1,254 (+36) +2.96%
7_function_inliner_max 2,061 (+58) +2.90%
generics_inliner_min 321 (+9) +2.88%
tuple_inputs_inliner_max 536 (+15) +2.88%
array_to_slice_inliner_zero 1,812 (+48) +2.72%
hashmap_inliner_min 84,544 (+2,236) +2.72%
tuple_inputs_inliner_min 578 (+15) +2.66%
tuple_inputs_inliner_zero 578 (+15) +2.66%
higher_order_functions_inliner_min 2,098 (+51) +2.49%
array_dedup_regression_inliner_max 678 (+15) +2.26%
array_dedup_regression_inliner_zero 678 (+15) +2.26%
brillig_arrays_inliner_max 141 (+3) +2.17%
brillig_arrays_inliner_zero 141 (+3) +2.17%
hint_black_box_inliner_max 587 (+12) +2.09%
simple_2d_array_inliner_min 164 (+3) +1.86%
brillig_arrays_inliner_min 169 (+3) +1.81%
struct_inputs_inliner_max 512 (+9) +1.79%
struct_inputs_inliner_zero 542 (+9) +1.69%
hint_black_box_inliner_zero 910 (+12) +1.34%
hint_black_box_inliner_min 924 (+12) +1.32%
array_dedup_regression_inliner_min 1,236 (+15) +1.23%
7_function_inliner_zero 2,215 (+24) +1.10%
regression_inliner_max 2,260 (+21) +0.94%
regression_inliner_zero 2,302 (+21) +0.92%
regression_inliner_min 2,622 (+15) +0.58%
references_inliner_min 615 (+3) +0.49%
slice_loop_inliner_max 843 (+4) +0.48%
encrypted_log_regression_inliner_max 847 (+3) +0.36%
encrypted_log_regression_inliner_zero 847 (+3) +0.36%
brillig_blake2s_inliner_max 855 (+3) +0.35%
brillig_blake2s_inliner_zero 855 (+3) +0.35%
6_inliner_max 858 (+3) +0.35%
6_inliner_zero 858 (+3) +0.35%
brillig_blake2s_inliner_min 869 (+3) +0.35%
6_inliner_min 872 (+3) +0.35%
slice_loop_inliner_zero 1,171 (+4) +0.34%
slice_loop_inliner_min 1,185 (+4) +0.34%
encrypted_log_regression_inliner_min 890 (+3) +0.34%
conditional_regression_short_circuit_inliner_max 934 (+3) +0.32%
conditional_regression_short_circuit_inliner_zero 934 (+3) +0.32%
conditional_regression_short_circuit_inliner_min 973 (+3) +0.31%
array_eq_inliner_max 999 (+3) +0.30%
array_eq_inliner_zero 999 (+3) +0.30%
array_neq_inliner_max 1,001 (+3) +0.30%
array_neq_inliner_zero 1,001 (+3) +0.30%
array_eq_inliner_min 1,013 (+3) +0.30%
array_neq_inliner_min 1,015 (+3) +0.30%
7_function_inliner_min 2,373 (+7) +0.30%
double_verify_proof_inliner_max 2,205 (+6) +0.27%
double_verify_proof_inliner_min 2,205 (+6) +0.27%
double_verify_proof_inliner_zero 2,205 (+6) +0.27%
aes128_encrypt_inliner_max 2,629 (+6) +0.23%
6_array_inliner_max 1,424 (+3) +0.21%
strings_inliner_max 1,521 (+3) +0.20%
strings_inliner_zero 1,813 (+3) +0.17%
6_array_inliner_zero 2,377 (+3) +0.13%
6_array_inliner_min 2,447 (+3) +0.12%
aes128_encrypt_inliner_zero 2,918 (+3) +0.10%
merkle_insert_inliner_max 2,978 (+3) +0.10%
merkle_insert_inliner_zero 3,114 (+3) +0.10%
debug_logs_inliner_max 5,129 (+3) +0.06%
debug_logs_inliner_zero 5,342 (+3) +0.06%
debug_logs_inliner_min 9,494 (+3) +0.03%
brillig_cow_regression_inliner_max 194,432 (-3) -0.00%
brillig_cow_regression_inliner_zero 194,432 (-3) -0.00%
slices_inliner_min 3,886 (-3) -0.08%
multi_scalar_mul_inliner_min 74,624 (-68) -0.09%
array_dynamic_blackbox_input_inliner_min 6,561 (-6) -0.09%
array_dynamic_blackbox_input_inliner_max 6,532 (-6) -0.09%
array_dynamic_blackbox_input_inliner_zero 6,532 (-6) -0.09%
to_be_bytes_inliner_min 1,903 (-3) -0.16%
slice_regex_inliner_zero 3,882 (-7) -0.18%
global_consts_inliner_min 1,474 (-3) -0.20%
global_consts_inliner_max 1,401 (-3) -0.21%
global_consts_inliner_zero 1,401 (-3) -0.21%
ram_blowup_regression_inliner_min 290,148 (-771) -0.27%
regression_11294_inliner_max 1,126 (-3) -0.27%
regression_11294_inliner_zero 1,126 (-3) -0.27%
brillig_cow_regression_inliner_min 197,115 (-530) -0.27%
poseidon_bn254_hash_width_3_inliner_zero 166,625 (-458) -0.27%
simple_shield_inliner_zero 2,164 (-6) -0.28%
simple_shield_inliner_max 2,132 (-6) -0.28%
to_le_bytes_inliner_min 1,031 (-3) -0.29%
regression_7128_inliner_max 994 (-3) -0.30%
regression_7128_inliner_zero 994 (-3) -0.30%
poseidon_bn254_hash_width_3_inliner_max 136,096 (-470) -0.34%
poseidonsponge_x5_254_inliner_zero 183,607 (-645) -0.35%
hash_to_field_inliner_max 815 (-3) -0.37%
hash_to_field_inliner_zero 815 (-3) -0.37%
regression_5252_inliner_zero 914,073 (-3,564) -0.39%
poseidonsponge_x5_254_inliner_max 151,009 (-651) -0.43%
array_sort_inliner_min 624 (-3) -0.48%
regression_5252_inliner_max 750,577 (-3,690) -0.49%
regression_7128_inliner_min 1,023 (-6) -0.58%
hash_to_field_inliner_min 895 (-6) -0.67%
brillig_nested_arrays_inliner_min 409 (-3) -0.73%
brillig_pedersen_inliner_min 795 (-6) -0.75%
pedersen_check_inliner_min 795 (-6) -0.75%
brillig_pedersen_inliner_zero 638 (-6) -0.93%
pedersen_check_inliner_zero 638 (-6) -0.93%
brillig_pedersen_inliner_max 593 (-6) -1.00%
pedersen_check_inliner_max 593 (-6) -1.00%
simple_shield_inliner_min 2,186 (-23) -1.04%
merkle_insert_inliner_min 2,878 (-31) -1.07%
brillig_nested_arrays_inliner_zero 250 (-3) -1.19%
slice_regex_inliner_min 8,229 (-101) -1.21%
to_bytes_consistent_inliner_min 477 (-6) -1.24%
to_bytes_consistent_inliner_zero 477 (-6) -1.24%
brillig_calls_array_inliner_min 238 (-3) -1.24%
regression_bignum_inliner_min 474 (-6) -1.25%
slice_coercion_inliner_min 458 (-6) -1.29%
poseidonsponge_x5_254_inliner_min 185,644 (-2,685) -1.43%
poseidon_bn254_hash_width_3_inliner_min 169,249 (-2,477) -1.44%
slices_inliner_zero 2,784 (-41) -1.45%
brillig_calls_array_inliner_zero 199 (-3) -1.49%
regression_5252_inliner_min 926,586 (-13,982) -1.49%
derive_inliner_min 589 (-9) -1.51%
pedersen_commitment_inliner_max 193 (-3) -1.53%
pedersen_commitment_inliner_zero 193 (-3) -1.53%
nested_arrays_from_brillig_inliner_min 189 (-3) -1.56%
pedersen_commitment_inliner_min 184 (-3) -1.60%
databus_two_calldata_inliner_max 365 (-6) -1.62%
databus_two_calldata_inliner_min 365 (-6) -1.62%
databus_two_calldata_inliner_zero 365 (-6) -1.62%
regression_bignum_inliner_max 422 (-7) -1.63%
regression_bignum_inliner_zero 422 (-7) -1.63%
conditional_regression_661_inliner_min 158 (-3) -1.86%
conditional_2_inliner_min 149 (-3) -1.97%
conditional_regression_661_inliner_zero 143 (-3) -2.05%
import_inliner_min 126 (-3) -2.33%
strings_inliner_min 2,460 (-60) -2.38%
conditional_2_inliner_max 114 (-3) -2.56%
conditional_regression_661_inliner_max 114 (-3) -2.56%
conditional_2_inliner_zero 114 (-3) -2.56%
slices_inliner_max 2,496 (-74) -2.88%
nested_array_dynamic_inliner_min 2,867 (-85) -2.88%
nested_array_dynamic_inliner_zero 2,867 (-85) -2.88%
array_to_slice_inliner_min 1,962 (-63) -3.11%
nested_array_dynamic_inliner_max 2,639 (-85) -3.12%
regression_11294_inliner_min 1,625 (-55) -3.27%
struct_inputs_inliner_min 565 (-21) -3.58%
regression_4449_inliner_min 4,317 (-207) -4.58%
regression_4449_inliner_max 4,303 (-207) -4.59%
regression_4449_inliner_zero 4,303 (-207) -4.59%
brillig_uninitialized_arrays_inliner_min 61 (-3) -4.69%
regression_4088_inliner_min 56 (-3) -5.08%
conditional_1_inliner_min 1,924 (-114) -5.59%
conditional_1_inliner_zero 1,924 (-114) -5.59%
conditional_1_inliner_max 1,884 (-112) -5.61%
regression_mem_op_predicate_inliner_max 94 (-6) -6.00%
regression_mem_op_predicate_inliner_min 94 (-6) -6.00%
regression_mem_op_predicate_inliner_zero 94 (-6) -6.00%
array_dynamic_nested_blackbox_input_inliner_min 1,194 (-85) -6.65%
array_dynamic_nested_blackbox_input_inliner_max 1,180 (-85) -6.72%
array_dynamic_nested_blackbox_input_inliner_zero 1,180 (-85) -6.72%
regression_6674_2_inliner_zero 695 (-53) -7.09%
regression_6674_1_inliner_zero 692 (-56) -7.49%
regression_6674_2_inliner_min 896 (-78) -8.01%
regression_6674_1_inliner_max 664 (-59) -8.16%
regression_6674_2_inliner_max 664 (-59) -8.16%
regression_6674_1_inliner_min 897 (-81) -8.28%
brillig_rc_regression_6123_inliner_min 291 (-28) -8.78%
aes128_encrypt_inliner_min 2,931 (-291) -9.03%
regression_6674_3_inliner_min 1,659 (-166) -9.10%
array_to_slice_inliner_max 947 (-99) -9.46%
nested_array_in_slice_inliner_min 1,251 (-133) -9.61%
nested_array_in_slice_inliner_zero 1,251 (-133) -9.61%
regression_6674_3_inliner_zero 1,143 (-129) -10.14%
fold_numeric_generic_poseidon_inliner_min 4,731 (-536) -10.18%
slice_regex_inliner_max 2,804 (-328) -10.47%
regression_6674_3_inliner_max 1,137 (-135) -10.61%
no_predicates_numeric_generic_poseidon_inliner_min 4,703 (-564) -10.71%
nested_array_in_slice_inliner_max 962 (-121) -11.17%
bench_2_to_17_inliner_min 563,699 (-71,939) -11.32%
fold_2_to_17_inliner_min 1,072,182 (-136,838) -11.32%
fold_numeric_generic_poseidon_inliner_max 3,775 (-486) -11.41%
no_predicates_numeric_generic_poseidon_inliner_max 3,775 (-486) -11.41%
fold_2_to_17_inliner_zero 1,034,760 (-136,844) -11.68%
array_dynamic_inliner_min 419 (-57) -11.97%
fold_numeric_generic_poseidon_inliner_zero 4,463 (-610) -12.02%
no_predicates_numeric_generic_poseidon_inliner_zero 4,463 (-610) -12.02%
array_dynamic_inliner_max 404 (-57) -12.36%
array_dynamic_inliner_zero 404 (-57) -12.36%
bench_2_to_17_inliner_zero 470,541 (-71,942) -13.26%
bench_2_to_17_inliner_max 431,326 (-71,942) -14.29%
fold_2_to_17_inliner_max 792,413 (-136,844) -14.73%
fold_complex_outputs_inliner_min 730 (-156) -17.61%
fold_complex_outputs_inliner_zero 657 (-159) -19.49%
simple_radix_inliner_min 70 (-17) -19.54%
nested_dyn_array_regression_5782_inliner_max 128 (-36) -21.95%
nested_dyn_array_regression_5782_inliner_min 128 (-36) -21.95%
nested_dyn_array_regression_5782_inliner_zero 128 (-36) -21.95%
fold_complex_outputs_inliner_max 452 (-147) -24.54%
to_bits_inliner_min 496 (-169) -25.41%
array_dynamic_main_output_inliner_max 211 (-92) -30.36%
array_dynamic_main_output_inliner_min 211 (-92) -30.36%
array_dynamic_main_output_inliner_zero 211 (-92) -30.36%
reference_only_used_as_alias_inliner_min 270 (-140) -34.15%
regression_capacity_tracker_inliner_max 569 (-331) -36.78%
regression_capacity_tracker_inliner_min 569 (-331) -36.78%
regression_capacity_tracker_inliner_zero 569 (-331) -36.78%
fold_distinct_return_inliner_min 74 (-46) -38.33%
array_if_cond_simple_inliner_max 310 (-232) -42.80%
array_if_cond_simple_inliner_min 310 (-232) -42.80%
array_if_cond_simple_inliner_zero 310 (-232) -42.80%
to_bytes_integration_inliner_min 2,387 (-1,852) -43.69%

@jfecher jfecher added the bench-show Display benchmark results on PR label Apr 15, 2025
@jfecher jfecher requested a review from a team April 15, 2025 19:34
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: a897238 Previous: 28250ea Ratio
purely_sequential_opcodes 265670 ns/iter (± 1582) 266299 ns/iter (± 1363) 1.00
perfectly_parallel_opcodes 233673 ns/iter (± 4223) 234245 ns/iter (± 3974) 1.00

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

Copy link
Member

@TomAFrench TomAFrench left a comment

Choose a reason for hiding this comment

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

LGTM, if you're unsure of this change then it might be a good idea to run aztec-packages CI with the experimental ownership flag turned on to make sure that this doesn't break some of the tests we don't run.

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: a897238 Previous: 28250ea Ratio
private-kernel-inner 0.029 s 0.029 s 1
private-kernel-reset 0.163 s 0.163 s 1
private-kernel-tail 0.017 s 0.017 s 1
rollup-base-private 0.333 s 0.33 s 1.01
rollup-base-public 0.214 s 0.216 s 0.99
rollup-block-root 11.8 s 11.6 s 1.02
rollup-merge 0.004 s 0.003 s 1.33
rollup-root 0.013 s 0.013 s 1

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

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

⚠️ Performance Alert ⚠️

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

Benchmark suite Current: a897238 Previous: 28250ea Ratio
rollup-merge 0.004 s 0.003 s 1.33

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.

Compilation Time

Details
Benchmark suite Current: a897238 Previous: 28250ea Ratio
regression_4709 0.653 s 0.649 s 1.01
ram_blowup_regression 12.9 s 12.8 s 1.01
global_var_regression_entry_points 0.451 s 0.459 s 0.98
private-kernel-inner 2.3 s 2.414 s 0.95
private-kernel-reset 6.616 s 6.72 s 0.98
private-kernel-tail 1.074 s 1.088 s 0.99
rollup-base-private 18.54 s 18.44 s 1.01
rollup-base-public 13.86 s 13.68 s 1.01
rollup-block-root-empty 0.892 s 0.928 s 0.96
rollup-block-root-single-tx 120 s 126 s 0.95
rollup-block-root 121 s 120 s 1.01
rollup-merge 0.902 s 0.832 s 1.08
rollup-root 1.336 s 1.336 s 1

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

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

Test Suite Duration

Details
Benchmark suite Current: a897238 Previous: 28250ea Ratio
test_report_AztecProtocol_aztec-packages_noir-projects_aztec-nr 49 s 50 s 0.98
test_report_AztecProtocol_aztec-packages_noir-projects_noir-contracts 85 s 92 s 0.92
test_report_AztecProtocol_aztec-packages_noir-projects_noir-protocol-circuits_crates_blob 39 s 39 s 1
test_report_AztecProtocol_aztec-packages_noir-projects_noir-protocol-circuits_crates_private-kernel-lib 173 s 169 s 1.02
test_report_AztecProtocol_aztec-packages_noir-projects_noir-protocol-circuits_crates_rollup-lib 157 s 164 s 0.96
test_report_AztecProtocol_aztec-packages_noir-projects_noir-protocol-circuits_crates_types 50 s 50 s 1
test_report_noir-lang_noir-bignum_ 410 s 411 s 1.00
test_report_noir-lang_noir_bigcurve_ 242 s 237 s 1.02
test_report_noir-lang_sha512_ 29 s 29 s 1

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

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

Execution Memory

Details
Benchmark suite Current: a897238 Previous: 28250ea Ratio
private-kernel-inner 208.97 MB 209.31 MB 1.00
private-kernel-reset 246.07 MB 246.05 MB 1.00
private-kernel-tail 183.12 MB 183.15 MB 1.00
rollup-base-private 486.82 MB 486.82 MB 1
rollup-base-public 462.81 MB 462.8 MB 1.00
rollup-block-root 1710 MB 1710 MB 1
rollup-merge 254.15 MB 254.16 MB 1.00
rollup-root 260.72 MB 260.72 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: a897238 Previous: 28250ea Ratio
private-kernel-inner 270.21 MB 270.26 MB 1.00
private-kernel-reset 550.53 MB 550.44 MB 1.00
private-kernel-tail 199.56 MB 199.53 MB 1.00
rollup-base-private 1370 MB 1370 MB 1
rollup-base-public 1350 MB 1350 MB 1
rollup-block-root-empty 270.22 MB 270.21 MB 1.00
rollup-block-root-single-tx 7770 MB 7770 MB 1
rollup-block-root 7780 MB 7780 MB 1
rollup-merge 271.38 MB 271.4 MB 1.00
rollup-root 321.89 MB 321.95 MB 1.00

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

@TomAFrench
Copy link
Member

huh, looks like we have a failing test here as well.

@jfecher
Copy link
Contributor Author

jfecher commented Apr 16, 2025

huh, looks like we have a failing test here as well.

Those were the inliner tests since the expected counts have now changed. They had some non-superficial changes so I was taking a little while to go through them and update them all. The main thing to note is that since we often clone into each function call, the actual call to array_refcount now clones the reference count which needs to be accounted for. Hopefully we can remove this when immutable references are later stabilized.

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: 2603d77 Previous: b591847 Ratio
test_report_AztecProtocol_aztec-packages_noir-projects_noir-protocol-circuits_crates_blob 50 s 41 s 1.22

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

CC: @TomAFrench

@jfecher jfecher enabled auto-merge April 16, 2025 17:15
@jfecher jfecher added this pull request to the merge queue Apr 16, 2025
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Apr 16, 2025
@jfecher jfecher added this pull request to the merge queue Apr 16, 2025
Merged via the queue into master with commit e1c2ed0 Apr 16, 2025
113 checks passed
@jfecher jfecher deleted the jf/experimental-ownership-by-default branch April 16, 2025 18:22
defkit pushed a commit that referenced this pull request Apr 21, 2025
…fault (#8097)

Co-authored-by: TomAFrench <tom@tomfren.ch>
github-merge-queue bot pushed a commit to AztecProtocol/aztec-packages that referenced this pull request Apr 22, 2025
Automated pull of nightly from the
[noir](https://github.com/noir-lang/noir) programming language, a
dependency of Aztec.
BEGIN_COMMIT_OVERRIDE
fix(brillig): SliceRefCount reads from the appropriate pointer
(noir-lang/noir#8148)
chore: remove try_merge_only_changed_indices
(noir-lang/noir#8142)
chore(ssa): Test terminator value constant folding and resolve cache for
data bus (noir-lang/noir#8132)
chore: parse nop in SSA parser
(noir-lang/noir#8141)
fix(ssa): Do not inline simple recursive functions
(noir-lang/noir#8127)
fix: wrapping mul support for u128
(noir-lang/noir#7941)
chore: update ACVM doc (noir-lang/noir#8004)
fix(ssa): Loop range with u1
(noir-lang/noir#8131)
fix(acir): Check whether opcodes were laid down for non-equality check
before fetching payload locations
(noir-lang/noir#8133)
chore: add a benchmark for opcodes which need a batchable inversion
(noir-lang/noir#8110)
chore: create module for array handling in acirgen
(noir-lang/noir#8119)
feat: avoid unnecessary zero check in brillig overflow check
(noir-lang/noir#8109)
chore(optimization): Enable experimental ownership clone scheme by
default (noir-lang/noir#8097)
chore(experimental): Function::simple_optimization for SSA optimizations
(noir-lang/noir#8102)
feat: replace field divisions by constants with multiplication by inv…
(noir-lang/noir#8053)
fix(ssa): fix possibility to `Field % Field` operaions in Brillig from
SSA (noir-lang/noir#8105)
fix(parser): error on missing let semicolon in trait (and others)
(noir-lang/noir#8101)
chore: simpler `make_mutable` in `array_set` optimization
(noir-lang/noir#8106)
chore(docs): update bb commands to match 0.84.0
(noir-lang/noir#8050)
chore: don't use `set_value_from_id` in `constant_folding`
(noir-lang/noir#8091)
fix: add proper handling for `u128` in comptime interpreter
(noir-lang/noir#8079)
feat: Port callstack resolution from aztec to noirjs
(noir-lang/noir#7642)
fix(ssa): Do not unroll loop with break
(noir-lang/noir#8090)
feat: `#[allow(dead_code)]`
(noir-lang/noir#8066)
chore: don't use `set_value_from_id` in `loop_invariant`
(noir-lang/noir#8085)
feat(experimental): Implement separate `-Zownership` analysis for
ownership pass (noir-lang/noir#7861)
chore(docs): Add architecture docs
(noir-lang/noir#7992)
chore: don't use `set_value_from_id` in `simplify_cfg`
(noir-lang/noir#8072)
chore: don't use `set_from_value_id` in `remove_if_else`
(noir-lang/noir#8070)
chore: don't use `set_value_from_id` in `remove_bit_shifts`
(noir-lang/noir#8071)
fix: replace values in data_bus too
(noir-lang/noir#8086)
chore: bump bignum timeout (noir-lang/noir#8080)
chore: Accept optional test path for emitting integration tests
(noir-lang/noir#8062)
feat: ssa fuzzer (noir-lang/noir#7641)
fix: Allow more slack in AST calibration for CI
(noir-lang/noir#8076)
chore: Print `unsafe { ... }` around calls to Brillig from ACIR in AST
(noir-lang/noir#8077)
fix: SSA pass print filter to include the count
(noir-lang/noir#8074)
END_COMMIT_OVERRIDE

---------

Co-authored-by: AztecBot <tech@aztecprotocol.com>
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 Apr 24, 2025
🤖 I have created a new Aztec Packages release
---


##
[0.86.0](v0.85.0...v0.86.0)
(2025-04-24)


### ⚠ BREAKING CHANGES

* Use combined p2p and http prover coordination
([#13760](#13760))
* use single extended viem client
([#13715](#13715))
* remove slice read from CALL
([#13729](#13729))

### Features

* `#[allow(dead_code)]` (noir-lang/noir#8066)
([366d980](366d980))
* add aztec-up amm test w/ proving & sponsoredfpc
([#13209](#13209))
([f54c8a1](f54c8a1))
* Add Rollup to registry and produce blocks
([#13556](#13556))
([9ed10d3](9ed10d3))
* adding devnet tests
([#12808](#12808))
([7687a1f](7687a1f))
* audit tracking tooling
([#13639](#13639))
([e50d8e0](e50d8e0))
* **avm:** fast entity indexing without macros
([#13737](#13737))
([5c8a993](5c8a993))
* **avm:** quick n dirty memory trace
([#13659](#13659))
([062c6a9](062c6a9))
* **avm:** support col arrays and add keccak cols
([#13711](#13711))
([9c4345a](9c4345a))
* **avm:** tagged value type in C++
([#13540](#13540))
([b30b5b3](b30b5b3))
* avoid unnecessary zero check in brillig overflow check
(noir-lang/noir#8109)
([366d980](366d980))
* **contracts:** static + snapshotted validator set
([#13046](#13046))
([90033f2](90033f2))
* enable mempool limiter on devnet
([#13722](#13722))
([36fb0a1](36fb0a1))
* exec opcode spec table
([#13594](#13594))
([d4d503a](d4d503a))
* **experimental:** Implement separate `-Zownership` analysis for
ownership pass (noir-lang/noir#7861)
([366d980](366d980))
* expose mempool limit through helm chart
([#13616](#13616))
([822e8d9](822e8d9))
* Garaga UltraStarknet[Zk]Honk flavours
([#11489](#11489))
([6bc34a1](6bc34a1))
* IPA claim as public component
([#13429](#13429))
([1ce3c43](1ce3c43))
* no longer recompute vk's in CIVC proofs
([#13590](#13590))
([66a61ba](66a61ba))
* **p2p:** add private peers
([#12585](#12585))
([4264c8c](4264c8c))
* **p2p:** optional P2P_BROADCAST_PORT
([#13525](#13525))
([f709fab](f709fab))
* Port callstack resolution from aztec to noirjs
(noir-lang/noir#7642)
([366d980](366d980))
* Refactor IPA claim handling in acir format to support them for AVM
([#13547](#13547))
([df73c05](df73c05))
* remove slice read from CALL
([#13729](#13729))
([7e7eb85](7e7eb85))
* replace field divisions by constants with multiplication by inv…
(noir-lang/noir#8053)
([366d980](366d980))
* report world state size on disk
([#13706](#13706))
([0dd8a7e](0dd8a7e))
* skip inverting field elements with values +-1 in ACVM
(noir-lang/noir#8049)
([44c1347](44c1347))
* SMT Verificaiton Module: Data Structures
([#13658](#13658))
([2de3bc5](2de3bc5))
* SMT verification module updates
([#13551](#13551))
([f02123d](f02123d))
* ssa fuzzer (noir-lang/noir#7641)
([366d980](366d980))
* Tighter timing on ACVM
([#13743](#13743))
([45cd39b](45cd39b))
* track rewards and slots
([#13546](#13546))
([489c6cf](489c6cf))
* Use combined p2p and http prover coordination
([#13760](#13760))
([4d04e62](4d04e62))
* VK generation test for HonkRecursionConstraint
([#13637](#13637))
([71e81ce](71e81ce))


### Bug Fixes

* **acir:** Check whether opcodes were laid down for non-equality check
before fetching payload locations
(noir-lang/noir#8133)
([366d980](366d980))
* add proper handling for `u128` in comptime interpreter
(noir-lang/noir#8079)
([366d980](366d980))
* Add version to gossipsub protocol
([#13567](#13567))
([8ce4829](8ce4829))
* allow keywords in function names in SSA parser
(noir-lang/noir#8063)
([44c1347](44c1347))
* Allow more slack in AST calibration for CI
(noir-lang/noir#8076)
([366d980](366d980))
* amm bot
([#13553](#13553))
([6b93832](6b93832)),
closes
[#13544](#13544)
* **avm:** cpp addressing
([#13652](#13652))
([9d941b6](9d941b6))
* blob sink waits for reg address when needed
([#13628](#13628))
([486a42a](486a42a))
* **brillig:** SliceRefCount reads from the appropriate pointer
(noir-lang/noir#8148)
([366d980](366d980))
* Check against multiple aws profiles in build instance credentails
([#13421](#13421))
([71a408a](71a408a))
* dependency cycles in public simulator - part 0 (sim -&gt; context)
([#13678](#13678))
([e00089f](e00089f))
* dependency cycles in public simulator - part 1 (errors/revertReason)
([#13679](#13679))
([c75e365](c75e365))
* dependency cycles in public simulator part 2 (serializable bytecode)
([#13680](#13680))
([5d3e24c](5d3e24c))
* discv5 test failure
([#13653](#13653))
([58c143b](58c143b))
* **docs:** Make viewing (outdated) protocol specs work locally
([#13534](#13534))
([694537d](694537d))
* Increase timeout for p2p integration test
([#13720](#13720))
([c244b2e](c244b2e))
* mac bb --version
([#13690](#13690))
([9f8b64f](9f8b64f))
* make translator use ultra rather than eccvm ops
([#13489](#13489))
([53c070d](53c070d))
* more worker fixes
([#13759](#13759))
([080485a](080485a))
* move helm lint to build
([#13532](#13532))
([7768ff8](7768ff8))
* native ivc benches not publishing
([#13665](#13665))
([7ab712d](7ab712d))
* no exports of simulator should depend on jest-mock-extended
([#13694](#13694))
([65a9f33](65a9f33))
* only clear trailing zeros on logs
([#13727](#13727))
([e392d7c](e392d7c))
* **p2p:** better batch connection sampling
([#13674](#13674))
([9c1d9f1](9c1d9f1))
* **p2p:** reqresp types + batch request tx pool filtering
([#13666](#13666))
([8e2a3c9](8e2a3c9))
* **parser:** error on missing let semicolon in trait (and others)
(noir-lang/noir#8101)
([366d980](366d980))
* pass along coinbase
([#13560](#13560))
([593f810](593f810)),
closes
[#13643](#13643)
* prover-node start
([#13627](#13627))
([5d87f7a](5d87f7a))
* quote numbers
([#13654](#13654))
([f0d1ec1](f0d1ec1))
* remove all txs from a failed epoch
([#13771](#13771))
([abc4623](abc4623))
* remove insecure dummy round derivation from sumcheck and shplemini
([#13488](#13488))
([9a3bb46](9a3bb46))
* replace values in data_bus too
(noir-lang/noir#8086)
([366d980](366d980))
* retry deploy npm
([#13691](#13691))
([76cab3f](76cab3f))
* run yarn
([#13713](#13713))
([0e51259](0e51259))
* squash nightly foundry warning
([#13640](#13640))
([e21f9fd](e21f9fd))
* SSA pass print filter to include the count
(noir-lang/noir#8074)
([366d980](366d980))
* **ssa:** Do not inline simple recursive functions
(noir-lang/noir#8127)
([366d980](366d980))
* **ssa:** Do not unroll loop with break
(noir-lang/noir#8090)
([366d980](366d980))
* **ssa:** Do not use inner else condition when collapsing IfElse based
upon the then condition (noir-lang/noir#8040)
([44c1347](44c1347))
* **ssa:** fix possibility to `Field % Field` operaions in Brillig from
SSA (noir-lang/noir#8105)
([366d980](366d980))
* **ssa:** Loop range with u1
(noir-lang/noir#8131)
([366d980](366d980))
* update metric name to avoid conflicts
([#13629](#13629))
([70c58ab](70c58ab)),
closes
[#13626](#13626)
* wasm memory benchmark
([#13573](#13573))
([9a73c4a](9a73c4a))
* wrapping mul support for u128
(noir-lang/noir#7941)
([366d980](366d980))


### Miscellaneous

* Accept optional test path for emitting integration tests
(noir-lang/noir#8062)
([366d980](366d980))
* Add `GITHUB_TOKEN` to more workflow steps
(noir-lang/noir#8046)
([44c1347](44c1347))
* add a benchmark for opcodes which need a batchable inversion
(noir-lang/noir#8110)
([366d980](366d980))
* add hacky faster bootstrap for bb-centric e2e flow
([#13587](#13587))
([498d433](498d433))
* address some visibility warnings
([#13728](#13728))
([35dec90](35dec90))
* **avm:** less codegen for lookups
([#13741](#13741))
([ec468d9](ec468d9))
* **avm:** move interaction jobs to trace builders
([#13621](#13621))
([caac1c9](caac1c9))
* bb.js non-inlined web workers
([#13736](#13736))
([0e604a1](0e604a1))
* **bb:** debugging helpers
([#13584](#13584))
([0ebb29e](0ebb29e))
* **bb:** Make goblin a proper source module
([#13580](#13580))
([3048a14](3048a14))
* bespoke export for client native prover / PXE server store lazy load
([#13783](#13783))
([640dd08](640dd08))
* Blob and archiver syncing improvements
([#13542](#13542))
([629aa2a](629aa2a)),
closes
[#13530](#13530)
* blob archive client factory code
([#13648](#13648))
([7b16791](7b16791))
* bug list
([#13773](#13773))
([c6d4fb8](c6d4fb8))
* bump axois
([#13453](#13453))
([1c20920](1c20920))
* bump bb to 0.84.0 (noir-lang/noir#8047)
([44c1347](44c1347))
* bump bignum timeout (noir-lang/noir#8080)
([366d980](366d980))
* bump external pinned commits
(noir-lang/noir#8045)
([44c1347](44c1347))
* **ci:** run non dependent bootstrap build steps in parallel
([#13454](#13454))
([b17e18d](b17e18d))
* cleanup aztec up amm test
([#13754](#13754))
([3d92afe](3d92afe))
* Cleanup scripts in package jsons in yarn-project
([#13527](#13527))
([a296945](a296945))
* **contracts:** core/staking -&gt; core/slashing
([#13748](#13748))
([5d93a0e](5d93a0e))
* create module for array handling in acirgen
(noir-lang/noir#8119)
([366d980](366d980))
* dashboards use ${data_source} variable
([#13613](#13613))
([45533d9](45533d9))
* delete honk_recursion for building ACIR
([#13664](#13664))
([ac95729](ac95729))
* delete Ultra Vanilla CIVC
([#13669](#13669))
([ae578a2](ae578a2))
* delete zeromorph
([#13667](#13667))
([c8acae0](c8acae0))
* Disable blobscan by default
([#13742](#13742))
([c55088e](c55088e))
* **docs:** `aztec` and `aztec-wallet` cli reference updates
([#13692](#13692))
([d11d154](d11d154))
* **docs:** add 0.85.0 docs
([#13578](#13578))
([cf07358](cf07358))
* **docs:** add AND/XOR bug to bug list
([#13784](#13784))
([797ae6d](797ae6d))
* **docs:** Add architecture docs
(noir-lang/noir#7992)
([366d980](366d980))
* **docs:** adding redirects for node guide
([#13768](#13768))
([e96e5bf](e96e5bf))
* **docs:** bugfix + deploy on master
([#13717](#13717))
([010975a](010975a))
* **docs:** Fix some stuff on fees, rm confusing storage example
([#13501](#13501))
([c00b20b](c00b20b))
* **docs:** Sequencer and Prover Guide
([#13433](#13433))
([55b9a2b](55b9a2b))
* **docs:** update bb commands to match 0.84.0
(noir-lang/noir#8050)
([366d980](366d980))
* **docs:** Update docs bootrap to to include release
([#13615](#13615))
([2154d5e](2154d5e))
* don't use `set_from_value_id` in `remove_if_else`
(noir-lang/noir#8070)
([366d980](366d980))
* don't use `set_value_from_id` in `as_slice_length`
(noir-lang/noir#8039)
([44c1347](44c1347))
* don't use `set_value_from_id` in `constant_folding`
(noir-lang/noir#8091)
([366d980](366d980))
* don't use `set_value_from_id` in `loop_invariant`
(noir-lang/noir#8085)
([366d980](366d980))
* don't use `set_value_from_id` in `remove_bit_shifts`
(noir-lang/noir#8071)
([366d980](366d980))
* don't use `set_value_from_id` in `simplify_cfg`
(noir-lang/noir#8072)
([366d980](366d980))
* **experimental:** Function::simple_optimization for SSA optimizations
(noir-lang/noir#8102)
([366d980](366d980))
* Fetch rollup address using version as index
([#13620](#13620))
([60e73f9](60e73f9))
* Fix license files
([#13695](#13695))
([9931fb8](9931fb8))
* mempool limit
([#13735](#13735))
([def1287](def1287))
* mint block rewards for 200K blocks at deployment
([#13537](#13537))
([1a3a326](1a3a326))
* move check_circuit functionality from `TranslatorCircuitBuilder` into
a `TranslatorCircuitChecker`
([#13761](#13761))
([e4e7fca](e4e7fca))
* noir test flake addition
([#13663](#13663))
([c302fdd](c302fdd))
* **noir-contracts:** update readme
([#13563](#13563))
([42dfbbf](42dfbbf))
* **optimization:** Enable experimental ownership clone scheme by
default (noir-lang/noir#8097)
([366d980](366d980))
* parse nop in SSA parser (noir-lang/noir#8141)
([366d980](366d980))
* ping luke instead of cody on bb benchmark regressions
([#13718](#13718))
([2802f5a](2802f5a))
* playground improvements
([#13588](#13588))
([4c3453b](4c3453b))
* **playground:** bump vite
([#13750](#13750))
([7e72420](7e72420))
* Print `unsafe { ... }` around calls to Brillig from ACIR in AST
(noir-lang/noir#8077)
([366d980](366d980))
* **public/avm:** from hints to the end of the world
([#13459](#13459))
([a89de5d](a89de5d))
* redo typo PR by dizer-ti
([#13757](#13757))
([075d3a8](075d3a8))
* release playground on s3.
([#13582](#13582))
([2f9458a](2f9458a))
* **release:** give aztec release image sensible default entrypoint
([#13517](#13517))
([a864c06](a864c06))
* remove circuit simulator
([#13689](#13689))
([a00566c](a00566c))
* Remove code of the fake AVM recursive verifier
([#13614](#13614))
([048dfed](048dfed))
* remove msm sorter
([#13668](#13668))
([ff29d86](ff29d86))
* remove old terraform configs
([#13716](#13716))
([49ac1db](49ac1db)),
closes
[#13651](#13651)
* remove omit param from serialize derivation
([#13703](#13703))
([6af5943](6af5943))
* remove pcs vk from vk
([#13638](#13638))
([0e941ef](0e941ef))
* remove try_merge_only_changed_indices
(noir-lang/noir#8142)
([366d980](366d980))
* replace relative paths to noir-protocol-circuits
([78c87b5](78c87b5))
* replace relative paths to noir-protocol-circuits
([4e53cd1](4e53cd1))
* replace relative paths to noir-protocol-circuits
([3a33c47](3a33c47))
* replace relative paths to noir-protocol-circuits
([eaaa85b](eaaa85b))
* replace relative paths to noir-protocol-circuits
([648a4fe](648a4fe))
* replace relative paths to noir-protocol-circuits
([b3f4745](b3f4745))
* replace relative paths to noir-protocol-circuits
([269b316](269b316))
* replace relative paths to noir-protocol-circuits
([1330efe](1330efe))
* replace relative paths to noir-protocol-circuits
([a739284](a739284))
* Sanity check block number from archiver before returning it
([#13631](#13631))
([e459b2a](e459b2a))
* simpler `make_mutable` in `array_set` optimization
(noir-lang/noir#8106)
([366d980](366d980))
* **spartan:** bump default kind resources
([#13747](#13747))
([8ca828f](8ca828f))
* **ssa:** Additional unrolling and mem2reg passes
(noir-lang/noir#8017)
([44c1347](44c1347))
* **ssa:** Remove IfElse pass basic SSA tests
(noir-lang/noir#8058)
([44c1347](44c1347))
* **ssa:** Test terminator value constant folding and resolve cache for
data bus (noir-lang/noir#8132)
([366d980](366d980))
* starknet feature flag
([#13681](#13681))
([2b6c627](2b6c627))
* stop prover node swallowing start prover job errors
([#13676](#13676))
([90c2b7b](90c2b7b))
* **test:** AST generation calibration test
(noir-lang/noir#8054)
([44c1347](44c1347))
* update ACVM doc (noir-lang/noir#8004)
([366d980](366d980))
* Update docs snippet
([#13739](#13739))
([7fb333a](7fb333a))
* update staking asset handler address
([#13566](#13566))
([daa09f2](daa09f2))
* Updated contract addresses for alpha-testnet
([#13585](#13585))
([9f0ff4a](9f0ff4a))
* Use chain monitor to sync system time in p2p tests
([#13632](#13632))
([abbad4c](abbad4c))
* use public component key for pairing inputs
([#13705](#13705))
([467166f](467166f))
* use PublicComponentKeys
([#13686](#13686))
([68e4b6f](68e4b6f))
* use single extended viem client
([#13715](#13715))
([cf637dc](cf637dc))
* validate block header hash in circuits
([#13094](#13094))
([f19c182](f19c182))
* wasm proof verifying with native bb
([#13499](#13499))
([1ad9249](1ad9249))


### Documentation

* fees tutorial
([#13357](#13357))
([c580657](c580657))
* move snippets all versions
([#13650](#13650))
([a2f5553](a2f5553))
* Update glossary & snippets
([#13661](#13661))
([d55816d](d55816d))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: AztecBot <tech@aztecprotocol.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.

Rework inc_rc, dec_rc and how arrays are handled in brillig in general

2 participants