Skip to content

chore(brillig): Remove redundant jmp in branch codegen#11727

Open
vezenovm wants to merge 1 commit intomasterfrom
mv/brillig-branch-swap-optimization
Open

chore(brillig): Remove redundant jmp in branch codegen#11727
vezenovm wants to merge 1 commit intomasterfrom
mv/brillig-branch-swap-optimization

Conversation

@vezenovm
Copy link
Contributor

Description

Problem

No issue just an optimization I found while looking at Brillig

Summary

  • Swap then/else section ordering in codegen_branch so the else path is the fall-through from JumpIf, 3 jumps -> 2
  • New test for ArrayCopy procedure to validate one JumpIf

Additional Context

User Documentation

Check one:

  • No user documentation needed.
  • Changes in docs/ included in this PR.
  • [For Experimental Features] Changes in docs/ 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 changed the title chore(brillig): Remove redundant jmp in IR branch codegen chore(brillig): Remove redundant jmp in branch codegen Feb 27, 2026
@github-actions
Copy link
Contributor

Changes to number of Brillig opcodes executed

Generated at commit: 9cc10711a8d930c6cd6c8b1b392b17aac9525a28, compared to commit: 65c393913680ed3fcf03e359136860a6b4bde530

🧾 Summary (10% most significant diffs)

Program Brillig opcodes (+/-) %
bit_shifts_comptime_inliner_max -3 ✅ -3.30%
bit_shifts_comptime_inliner_min -3 ✅ -3.30%
bit_shifts_comptime_inliner_zero -3 ✅ -3.30%
regression_7128_inliner_max -32 ✅ -3.33%
regression_7128_inliner_min -32 ✅ -3.33%
regression_7128_inliner_zero -32 ✅ -3.33%
fold_2_to_17_inliner_max -9,320 ✅ -3.39%
merkle_insert_inliner_zero -90 ✅ -3.50%
pedersen_hash_inliner_max -15 ✅ -3.56%
pedersen_hash_inliner_zero -15 ✅ -3.56%
signed_division_inliner_max -6 ✅ -3.70%
signed_division_inliner_min -6 ✅ -3.70%
signed_division_inliner_zero -6 ✅ -3.70%
merkle_insert_inliner_max -90 ✅ -3.71%
regression_8009_inliner_max -4 ✅ -4.88%
regression_8009_inliner_min -4 ✅ -4.88%
regression_8009_inliner_zero -4 ✅ -4.88%
regression_10008_inliner_max -4 ✅ -5.71%
regression_10008_inliner_min -4 ✅ -5.71%
regression_10008_inliner_zero -4 ✅ -5.71%
regression_8726_inliner_max -4 ✅ -6.35%
regression_8726_inliner_min -4 ✅ -6.35%
regression_8726_inliner_zero -4 ✅ -6.35%

Full diff report 👇
Program Brillig opcodes (+/-) %
array_dynamic_nested_blackbox_input_inliner_min 1,194 (-1) -0.08%
array_dynamic_nested_blackbox_input_inliner_max 1,180 (-1) -0.08%
array_dynamic_nested_blackbox_input_inliner_zero 1,180 (-1) -0.08%
regression_10975_inliner_min 598 (-1) -0.17%
regression_capacity_tracker_inliner_max 577 (-1) -0.17%
regression_capacity_tracker_inliner_min 577 (-1) -0.17%
regression_capacity_tracker_inliner_zero 577 (-1) -0.17%
nested_vector_pop_front_return_inliner_min 561 (-1) -0.18%
nested_vector_pop_front_return_inliner_max 546 (-1) -0.18%
nested_vector_pop_front_return_inliner_zero 546 (-1) -0.18%
nested_vector_return_inliner_min 509 (-1) -0.20%
regression_9496_inliner_max 502 (-1) -0.20%
regression_9496_inliner_min 502 (-1) -0.20%
regression_9496_inliner_zero 502 (-1) -0.20%
nested_vector_return_inliner_max 492 (-1) -0.20%
nested_vector_return_inliner_zero 492 (-1) -0.20%
regression_11294_inliner_min 1,189 (-3) -0.25%
regression_11294_inliner_max 1,124 (-3) -0.27%
regression_11294_inliner_zero 1,124 (-3) -0.27%
nested_vector_push_front_return_inliner_min 722 (-2) -0.28%
nested_vector_push_front_return_inliner_max 707 (-2) -0.28%
nested_vector_push_front_return_inliner_zero 707 (-2) -0.28%
array_if_cond_simple_inliner_max 307 (-1) -0.32%
array_if_cond_simple_inliner_min 307 (-1) -0.32%
array_if_cond_simple_inliner_zero 307 (-1) -0.32%
regression_9860_inliner_max 581 (-2) -0.34%
regression_9860_inliner_min 581 (-2) -0.34%
regression_9860_inliner_zero 581 (-2) -0.34%
regression_11463_inliner_min 557 (-2) -0.36%
regression_11463_inliner_max 529 (-2) -0.38%
regression_11463_inliner_zero 529 (-2) -0.38%
higher_order_functions_inliner_min 1,457 (-6) -0.41%
regression_11402_inliner_max 217 (-1) -0.46%
regression_11402_inliner_min 217 (-1) -0.46%
regression_11402_inliner_zero 217 (-1) -0.46%
nested_vector_last_index_access_post_insert_inliner_max 419 (-2) -0.48%
nested_vector_last_index_access_post_insert_inliner_min 419 (-2) -0.48%
nested_vector_last_index_access_post_insert_inliner_zero 419 (-2) -0.48%
array_dynamic_main_output_inliner_max 209 (-1) -0.48%
array_dynamic_main_output_inliner_min 209 (-1) -0.48%
array_dynamic_main_output_inliner_zero 209 (-1) -0.48%
regression_10197_inliner_max 388 (-2) -0.51%
regression_10197_inliner_min 388 (-2) -0.51%
regression_10197_inliner_zero 388 (-2) -0.51%
array_dynamic_inliner_min 369 (-2) -0.54%
higher_order_functions_inliner_max 538 (-3) -0.55%
array_dynamic_inliner_max 355 (-2) -0.56%
array_dynamic_inliner_zero 355 (-2) -0.56%
conditional_vector_insert_at_end_of_vector_inliner_max 352 (-2) -0.56%
conditional_vector_insert_at_end_of_vector_inliner_min 352 (-2) -0.56%
conditional_vector_insert_at_end_of_vector_inliner_zero 352 (-2) -0.56%
array_dedup_regression_inliner_max 873 (-5) -0.57%
array_dedup_regression_inliner_min 873 (-5) -0.57%
array_dedup_regression_inliner_zero 873 (-5) -0.57%
aes128_encrypt_inliner_min 2,743 (-16) -0.58%
uhashmap_inliner_max 113,788 (-667) -0.58%
regression_9102_inliner_min 166 (-1) -0.60%
regression_9102_inliner_max 154 (-1) -0.65%
regression_9102_inliner_zero 154 (-1) -0.65%
hashmap_inliner_max 44,216 (-289) -0.65%
regression_9593_inliner_max 148 (-1) -0.67%
regression_9593_inliner_min 148 (-1) -0.67%
regression_9593_inliner_zero 148 (-1) -0.67%
nested_array_dynamic_inliner_min 1,623 (-11) -0.67%
nested_array_dynamic_inliner_zero 1,623 (-11) -0.67%
nested_array_dynamic_inliner_max 1,605 (-11) -0.68%
higher_order_functions_inliner_zero 868 (-6) -0.69%
poseidon_bn254_hash_width_3_inliner_min 153,822 (-1,105) -0.71%
aes128_encrypt_inliner_zero 2,202 (-16) -0.72%
array_set_not_deduplicated_inliner_min 274 (-2) -0.72%
array_set_not_deduplicated_inliner_zero 274 (-2) -0.72%
aes128_encrypt_inliner_max 2,176 (-16) -0.73%
poseidon_bn254_hash_width_3_inliner_zero 146,015 (-1,097) -0.75%
array_to_vector_inliner_min 1,298 (-10) -0.76%
vectors_inliner_min 4,153 (-33) -0.79%
uhashmap_inliner_min 140,144 (-1,151) -0.81%
poseidonsponge_x5_254_inliner_min 170,557 (-1,407) -0.82%
nested_dyn_array_regression_5782_inliner_max 120 (-1) -0.83%
nested_dyn_array_regression_5782_inliner_min 120 (-1) -0.83%
nested_dyn_array_regression_5782_inliner_zero 120 (-1) -0.83%
poseidonsponge_x5_254_inliner_zero 168,588 (-1,407) -0.83%
regression_5252_inliner_min 847,903 (-7,082) -0.83%
array_to_vector_inliner_zero 837 (-7) -0.83%
uhashmap_inliner_zero 136,916 (-1,151) -0.83%
regression_5252_inliner_zero 837,469 (-7,082) -0.84%
conditional_1_inliner_min 1,407 (-12) -0.85%
conditional_1_inliner_zero 1,407 (-12) -0.85%
vectors_inliner_zero 3,120 (-27) -0.86%
brillig_rc_regression_6123_inliner_min 230 (-2) -0.86%
conditional_1_inliner_max 1,358 (-12) -0.88%
array_sort_inliner_min 990 (-9) -0.90%
poseidon_bn254_hash_width_3_inliner_max 116,428 (-1,087) -0.92%
hashmap_inliner_min 66,435 (-629) -0.94%
vectors_inliner_max 2,799 (-27) -0.96%
hashmap_inliner_zero 63,975 (-629) -0.97%
nested_vector_pop_back_inliner_max 305 (-3) -0.97%
nested_vector_pop_back_inliner_min 305 (-3) -0.97%
nested_vector_pop_back_inliner_zero 305 (-3) -0.97%
signed_arithmetic_inliner_max 197 (-2) -1.01%
signed_arithmetic_inliner_min 197 (-2) -1.01%
signed_arithmetic_inliner_zero 197 (-2) -1.01%
array_sort_inliner_max 873 (-9) -1.02%
array_sort_inliner_zero 873 (-9) -1.02%
reference_alias_in_array_inliner_min 96 (-1) -1.03%
vector_loop_inliner_min 956 (-10) -1.04%
regression_9037_inliner_max 2,383 (-25) -1.04%
regression_9037_inliner_min 2,383 (-25) -1.04%
regression_9037_inliner_zero 2,383 (-25) -1.04%
array_of_references_in_loop_inliner_min 95 (-1) -1.04%
vector_dynamic_index_inliner_min 3,571 (-38) -1.05%
poseidonsponge_x5_254_inliner_max 126,413 (-1,397) -1.09%
regression_5252_inliner_max 626,407 (-7,032) -1.11%
nested_array_in_vector_inliner_min 780 (-9) -1.14%
nested_array_in_vector_inliner_zero 780 (-9) -1.14%
regression_10170_inliner_max 866 (-10) -1.14%
regression_10170_inliner_min 866 (-10) -1.14%
regression_10170_inliner_zero 866 (-10) -1.14%
vector_dynamic_index_inliner_max 3,219 (-38) -1.17%
vector_dynamic_index_inliner_zero 3,219 (-38) -1.17%
nested_array_in_vector_inliner_max 750 (-9) -1.19%
array_of_references_in_loop_inliner_max 83 (-1) -1.19%
array_of_references_in_loop_inliner_zero 83 (-1) -1.19%
encrypted_log_regression_inliner_min 737 (-9) -1.21%
databus_two_calldata_inliner_max 321 (-4) -1.23%
databus_two_calldata_inliner_min 321 (-4) -1.23%
databus_two_calldata_inliner_zero 321 (-4) -1.23%
array_set_not_deduplicated_inliner_max 159 (-2) -1.24%
encrypted_log_regression_inliner_max 711 (-9) -1.25%
encrypted_log_regression_inliner_zero 711 (-9) -1.25%
vector_push_back_remove_if_else_bug_inliner_max 75 (-1) -1.32%
fold_complex_outputs_inliner_min 450 (-6) -1.32%
vector_push_back_remove_if_else_bug_inliner_min 75 (-1) -1.32%
vector_push_back_remove_if_else_bug_inliner_zero 75 (-1) -1.32%
regression_8975_inliner_min 73 (-1) -1.35%
regression_7062_inliner_max 69 (-1) -1.43%
regression_7062_inliner_min 69 (-1) -1.43%
regression_7062_inliner_zero 69 (-1) -1.43%
regression_6674_3_inliner_min 496 (-8) -1.59%
brillig_cow_assign_inliner_max 471 (-8) -1.67%
brillig_cow_assign_inliner_min 471 (-8) -1.67%
brillig_cow_assign_inliner_zero 471 (-8) -1.67%
to_be_bytes_inliner_min 1,825 (-31) -1.67%
to_be_bytes_inliner_max 1,812 (-31) -1.68%
to_be_bytes_inliner_zero 1,812 (-31) -1.68%
array_to_vector_inliner_max 397 (-7) -1.73%
numeric_type_alias_inliner_min 686 (-13) -1.86%
regression_1144_1169_2399_6609_inliner_min 2,329 (-47) -1.98%
signed_div_inliner_max 981 (-20) -2.00%
signed_div_inliner_min 981 (-20) -2.00%
signed_div_inliner_zero 981 (-20) -2.00%
array_dynamic_blackbox_input_inliner_min 5,764 (-128) -2.17%
array_dynamic_blackbox_input_inliner_max 5,735 (-128) -2.18%
array_dynamic_blackbox_input_inliner_zero 5,735 (-128) -2.18%
regression_1144_1169_2399_6609_inliner_max 2,085 (-47) -2.20%
regression_1144_1169_2399_6609_inliner_zero 2,085 (-47) -2.20%
numeric_type_alias_inliner_max 573 (-13) -2.22%
numeric_type_alias_inliner_zero 573 (-13) -2.22%
fold_numeric_generic_poseidon_inliner_min 1,938 (-51) -2.56%
no_predicates_numeric_generic_poseidon_inliner_min 1,938 (-51) -2.56%
brillig_pedersen_inliner_max 544 (-15) -2.68%
pedersen_check_inliner_max 544 (-15) -2.68%
fold_numeric_generic_poseidon_inliner_max 1,848 (-52) -2.74%
no_predicates_numeric_generic_poseidon_inliner_max 1,848 (-52) -2.74%
fold_numeric_generic_poseidon_inliner_zero 1,848 (-52) -2.74%
no_predicates_numeric_generic_poseidon_inliner_zero 1,848 (-52) -2.74%
brillig_cow_regression_inliner_min 183,378 (-5,513) -2.92%
brillig_cow_regression_inliner_max 183,408 (-5,528) -2.93%
brillig_cow_regression_inliner_zero 183,408 (-5,528) -2.93%
simple_shield_inliner_max 1,670 (-51) -2.96%
fold_2_to_17_inliner_min 149,222 (-4,660) -3.03%
fold_2_to_17_inliner_zero 149,222 (-4,660) -3.03%
bench_2_to_17_inliner_min 156,903 (-4,900) -3.03%
bit_shifts_runtime_inliner_max 312 (-10) -3.11%
bit_shifts_runtime_inliner_min 312 (-10) -3.11%
bit_shifts_runtime_inliner_zero 312 (-10) -3.11%
bench_2_to_17_inliner_max 151,962 (-4,900) -3.12%
bench_2_to_17_inliner_zero 151,962 (-4,900) -3.12%
regression_struct_array_conditional_inliner_max 1,100 (-36) -3.17%
regression_struct_array_conditional_inliner_min 1,100 (-36) -3.17%
regression_struct_array_conditional_inliner_zero 1,100 (-36) -3.17%
bit_shifts_comptime_inliner_max 88 (-3) -3.30%
bit_shifts_comptime_inliner_min 88 (-3) -3.30%
bit_shifts_comptime_inliner_zero 88 (-3) -3.30%
regression_7128_inliner_max 929 (-32) -3.33%
regression_7128_inliner_min 929 (-32) -3.33%
regression_7128_inliner_zero 929 (-32) -3.33%
fold_2_to_17_inliner_max 265,703 (-9,320) -3.39%
merkle_insert_inliner_zero 2,480 (-90) -3.50%
pedersen_hash_inliner_max 406 (-15) -3.56%
pedersen_hash_inliner_zero 406 (-15) -3.56%
signed_division_inliner_max 156 (-6) -3.70%
signed_division_inliner_min 156 (-6) -3.70%
signed_division_inliner_zero 156 (-6) -3.70%
merkle_insert_inliner_max 2,334 (-90) -3.71%
regression_8009_inliner_max 78 (-4) -4.88%
regression_8009_inliner_min 78 (-4) -4.88%
regression_8009_inliner_zero 78 (-4) -4.88%
regression_10008_inliner_max 66 (-4) -5.71%
regression_10008_inliner_min 66 (-4) -5.71%
regression_10008_inliner_zero 66 (-4) -5.71%
regression_8726_inliner_max 59 (-4) -6.35%
regression_8726_inliner_min 59 (-4) -6.35%
regression_8726_inliner_zero 59 (-4) -6.35%

@github-actions
Copy link
Contributor

Changes to Brillig bytecode sizes

Generated at commit: 9cc10711a8d930c6cd6c8b1b392b17aac9525a28, compared to commit: 65c393913680ed3fcf03e359136860a6b4bde530

🧾 Summary (10% most significant diffs)

Program Brillig opcodes (+/-) %
regression_1144_1169_2399_6609_inliner_max -19 ✅ -2.09%
regression_1144_1169_2399_6609_inliner_zero -19 ✅ -2.09%
higher_order_functions_inliner_max -10 ✅ -2.13%
higher_order_functions_inliner_zero -13 ✅ -2.14%
bit_shifts_comptime_inliner_max -4 ✅ -3.15%
bit_shifts_comptime_inliner_min -4 ✅ -3.15%
bit_shifts_comptime_inliner_zero -4 ✅ -3.15%
signed_inactive_division_by_zero_inliner_max -3 ✅ -4.48%
signed_inactive_division_by_zero_inliner_min -3 ✅ -4.48%
signed_inactive_division_by_zero_inliner_zero -3 ✅ -4.48%
inactive_signed_bitshift_inliner_max -4 ✅ -4.88%
inactive_signed_bitshift_inliner_min -4 ✅ -4.88%
inactive_signed_bitshift_inliner_zero -4 ✅ -4.88%
regression_8009_inliner_max -6 ✅ -5.04%
regression_8009_inliner_min -6 ✅ -5.04%
regression_8009_inliner_zero -6 ✅ -5.04%
bit_shifts_runtime_inliner_max -28 ✅ -5.23%
bit_shifts_runtime_inliner_min -28 ✅ -5.23%
bit_shifts_runtime_inliner_zero -28 ✅ -5.23%
signed_division_inliner_max -12 ✅ -5.41%
signed_division_inliner_min -12 ✅ -5.41%
signed_division_inliner_zero -12 ✅ -5.41%
regression_9971_inliner_max -6 ✅ -5.50%
regression_9971_inliner_min -6 ✅ -5.50%
regression_9971_inliner_zero -6 ✅ -5.50%
regression_8726_inliner_max -6 ✅ -6.90%
regression_8726_inliner_min -6 ✅ -6.90%
regression_8726_inliner_zero -6 ✅ -6.90%
regression_10008_inliner_max -15 ✅ -8.02%
regression_10008_inliner_min -15 ✅ -8.02%
regression_10008_inliner_zero -15 ✅ -8.02%

Full diff report 👇
Program Brillig opcodes (+/-) %
poseidon_bn254_hash_width_3_inliner_max 5,143 (-1) -0.02%
poseidon_bn254_hash_width_3_inliner_min 4,843 (-1) -0.02%
poseidon_bn254_hash_width_3_inliner_zero 4,633 (-1) -0.02%
regression_5252_inliner_max 4,632 (-1) -0.02%
poseidonsponge_x5_254_inliner_max 4,400 (-1) -0.02%
hashmap_inliner_max 13,490 (-4) -0.03%
regression_5252_inliner_min 3,357 (-1) -0.03%
regression_5252_inliner_zero 3,246 (-1) -0.03%
poseidonsponge_x5_254_inliner_min 3,073 (-1) -0.03%
poseidonsponge_x5_254_inliner_zero 3,014 (-1) -0.03%
hashmap_inliner_min 8,814 (-4) -0.05%
hashmap_inliner_zero 7,911 (-4) -0.05%
vector_regex_inliner_min 1,868 (-1) -0.05%
uhashmap_inliner_max 9,311 (-5) -0.05%
vector_regex_inliner_zero 1,730 (-1) -0.06%
uhashmap_inliner_min 7,093 (-5) -0.07%
uhashmap_inliner_zero 6,726 (-5) -0.07%
brillig_cow_regression_inliner_max 1,324 (-1) -0.08%
brillig_cow_regression_inliner_zero 1,324 (-1) -0.08%
nested_array_dynamic_inliner_min 1,316 (-1) -0.08%
nested_array_dynamic_inliner_zero 1,316 (-1) -0.08%
nested_array_dynamic_inliner_max 1,298 (-1) -0.08%
brillig_cow_regression_inliner_min 1,215 (-1) -0.08%
reference_counts_vectors_inliner_0_inliner_min 1,176 (-1) -0.08%
vector_regex_inliner_max 1,017 (-1) -0.10%
reference_counts_vectors_inliner_0_inliner_zero 1,001 (-1) -0.10%
reference_counts_inliner_min_inliner_min 997 (-1) -0.10%
reference_counts_inliner_0_inliner_min 997 (-1) -0.10%
reference_counts_inliner_max_inliner_min 990 (-1) -0.10%
reference_counts_inliner_0_inliner_zero 864 (-1) -0.12%
reference_counts_inliner_min_inliner_zero 864 (-1) -0.12%
reference_counts_inliner_max_inliner_zero 857 (-1) -0.12%
reference_counts_vectors_inliner_0_inliner_max 828 (-1) -0.12%
simple_shield_inliner_max 675 (-1) -0.15%
conditional_1_inliner_max 626 (-1) -0.16%
fold_numeric_generic_poseidon_inliner_min 601 (-1) -0.17%
no_predicates_numeric_generic_poseidon_inliner_min 601 (-1) -0.17%
merkle_insert_inliner_max 589 (-1) -0.17%
conditional_1_inliner_min 557 (-1) -0.18%
conditional_1_inliner_zero 557 (-1) -0.18%
aes128_encrypt_inliner_max 535 (-1) -0.19%
aes128_encrypt_inliner_min 526 (-1) -0.19%
aes128_encrypt_inliner_zero 523 (-1) -0.19%
fold_complex_outputs_inliner_min 502 (-1) -0.20%
fold_numeric_generic_poseidon_inliner_max 459 (-1) -0.22%
no_predicates_numeric_generic_poseidon_inliner_max 459 (-1) -0.22%
fold_numeric_generic_poseidon_inliner_zero 459 (-1) -0.22%
no_predicates_numeric_generic_poseidon_inliner_zero 459 (-1) -0.22%
numeric_type_alias_inliner_min 437 (-1) -0.23%
brillig_pedersen_inliner_max 432 (-1) -0.23%
pedersen_check_inliner_max 432 (-1) -0.23%
regression_10197_inliner_max 407 (-1) -0.25%
regression_10197_inliner_min 407 (-1) -0.25%
regression_10197_inliner_zero 407 (-1) -0.25%
regression_struct_array_conditional_inliner_max 387 (-1) -0.26%
regression_struct_array_conditional_inliner_min 387 (-1) -0.26%
array_dynamic_blackbox_input_inliner_min 387 (-1) -0.26%
regression_struct_array_conditional_inliner_zero 387 (-1) -0.26%
regression_6674_3_inliner_min 386 (-1) -0.26%
merkle_insert_inliner_zero 384 (-1) -0.26%
brillig_cow_inliner_max 379 (-1) -0.26%
brillig_cow_inliner_min 379 (-1) -0.26%
brillig_cow_inliner_zero 379 (-1) -0.26%
array_dynamic_blackbox_input_inliner_max 366 (-1) -0.27%
array_dynamic_blackbox_input_inliner_zero 366 (-1) -0.27%
regression_9160_inliner_max 363 (-1) -0.27%
regression_9160_inliner_min 363 (-1) -0.27%
regression_9160_inliner_zero 363 (-1) -0.27%
numeric_type_alias_inliner_max 346 (-1) -0.29%
numeric_type_alias_inliner_zero 346 (-1) -0.29%
array_dynamic_nested_blackbox_input_inliner_min 327 (-1) -0.30%
array_dynamic_inliner_min 326 (-1) -0.31%
array_dynamic_nested_blackbox_input_inliner_max 317 (-1) -0.31%
array_dynamic_nested_blackbox_input_inliner_zero 317 (-1) -0.31%
array_dynamic_inliner_max 316 (-1) -0.32%
array_dynamic_inliner_zero 316 (-1) -0.32%
last_uses_regression_8935_inliner_max 294 (-1) -0.34%
last_uses_regression_8935_inliner_min 294 (-1) -0.34%
last_uses_regression_8935_inliner_zero 294 (-1) -0.34%
nested_array_in_vector_inliner_min 870 (-3) -0.34%
nested_array_in_vector_inliner_zero 870 (-3) -0.34%
fold_2_to_17_inliner_max 289 (-1) -0.34%
nested_vector_return_inliner_min 285 (-1) -0.35%
nested_array_in_vector_inliner_max 840 (-3) -0.36%
pedersen_hash_inliner_max 274 (-1) -0.36%
pedersen_hash_inliner_zero 274 (-1) -0.36%
nested_vector_return_inliner_max 270 (-1) -0.37%
nested_vector_return_inliner_zero 270 (-1) -0.37%
vectors_inliner_min 2,607 (-10) -0.38%
regression_10975_inliner_min 513 (-2) -0.39%
bench_2_to_17_inliner_min 253 (-1) -0.39%
regression_10446_inliner_max 251 (-1) -0.40%
regression_10446_inliner_min 251 (-1) -0.40%
regression_10446_inliner_zero 251 (-1) -0.40%
array_dedup_regression_inliner_max 250 (-1) -0.40%
array_dedup_regression_inliner_min 250 (-1) -0.40%
fold_2_to_17_inliner_min 250 (-1) -0.40%
array_dedup_regression_inliner_zero 250 (-1) -0.40%
fold_2_to_17_inliner_zero 250 (-1) -0.40%
regression_11294_inliner_min 246 (-1) -0.40%
regression_9860_inliner_max 240 (-1) -0.41%
regression_9860_inliner_min 240 (-1) -0.41%
regression_9860_inliner_zero 240 (-1) -0.41%
regression_10975_inliner_max 475 (-2) -0.42%
regression_10975_inliner_zero 475 (-2) -0.42%
encrypted_log_regression_inliner_min 237 (-1) -0.42%
regression_11294_inliner_max 223 (-1) -0.45%
regression_11294_inliner_zero 223 (-1) -0.45%
encrypted_log_regression_inliner_max 222 (-1) -0.45%
encrypted_log_regression_inliner_zero 222 (-1) -0.45%
databus_two_calldata_inliner_max 220 (-1) -0.45%
databus_two_calldata_inliner_min 220 (-1) -0.45%
databus_two_calldata_inliner_zero 220 (-1) -0.45%
regression_9593_inliner_max 213 (-1) -0.47%
regression_9593_inliner_min 213 (-1) -0.47%
regression_9593_inliner_zero 213 (-1) -0.47%
vectors_inliner_max 2,074 (-10) -0.48%
vectors_inliner_zero 2,062 (-10) -0.48%
to_be_bytes_inliner_min 194 (-1) -0.51%
vector_dynamic_index_inliner_min 2,134 (-11) -0.51%
global_nested_array_regression_9270_inliner_min 190 (-1) -0.52%
to_be_bytes_inliner_max 185 (-1) -0.54%
to_be_bytes_inliner_zero 185 (-1) -0.54%
regression_10170_inliner_max 554 (-3) -0.54%
regression_10170_inliner_min 554 (-3) -0.54%
regression_10170_inliner_zero 554 (-3) -0.54%
regression_9037_inliner_max 183 (-1) -0.54%
regression_9037_inliner_min 183 (-1) -0.54%
regression_9037_inliner_zero 183 (-1) -0.54%
global_nested_array_regression_9270_inliner_max 182 (-1) -0.55%
brillig_rc_regression_6123_inliner_min 182 (-1) -0.55%
global_nested_array_regression_9270_inliner_zero 182 (-1) -0.55%
array_to_vector_inliner_min 725 (-4) -0.55%
bench_2_to_17_inliner_max 181 (-1) -0.55%
bench_2_to_17_inliner_zero 181 (-1) -0.55%
regression_11402_inliner_max 175 (-1) -0.57%
regression_11402_inliner_min 175 (-1) -0.57%
regression_11402_inliner_zero 175 (-1) -0.57%
vector_loop_inliner_min 347 (-2) -0.57%
array_set_not_deduplicated_inliner_max 167 (-1) -0.60%
array_set_not_deduplicated_inliner_min 165 (-1) -0.60%
array_set_not_deduplicated_inliner_zero 165 (-1) -0.60%
vector_dynamic_index_inliner_max 1,738 (-11) -0.63%
vector_dynamic_index_inliner_zero 1,738 (-11) -0.63%
nested_dyn_array_regression_5782_inliner_max 148 (-1) -0.67%
nested_dyn_array_regression_5782_inliner_min 148 (-1) -0.67%
nested_dyn_array_regression_5782_inliner_zero 148 (-1) -0.67%
vector_dynamic_insert_inliner_min 437 (-3) -0.68%
regression_9467_inliner_max 144 (-1) -0.69%
nested_vector_last_index_access_post_insert_inliner_max 288 (-2) -0.69%
nested_vector_last_index_access_post_insert_inliner_min 288 (-2) -0.69%
brillig_array_ifelse_inliner_min 144 (-1) -0.69%
regression_9467_inliner_min 144 (-1) -0.69%
regression_9467_inliner_zero 144 (-1) -0.69%
nested_vector_last_index_access_post_insert_inliner_zero 288 (-2) -0.69%
regression_9496_inliner_max 573 (-4) -0.69%
regression_9496_inliner_min 573 (-4) -0.69%
regression_9496_inliner_zero 573 (-4) -0.69%
array_to_vector_inliner_zero 570 (-4) -0.70%
regression_9102_inliner_min 137 (-1) -0.72%
nested_vector_pop_front_return_inliner_min 396 (-3) -0.75%
regression_9907_inliner_min 131 (-1) -0.76%
brillig_array_ifelse_inliner_max 130 (-1) -0.76%
brillig_array_ifelse_inliner_zero 130 (-1) -0.76%
vector_dynamic_insert_inliner_max 389 (-3) -0.77%
vector_dynamic_insert_inliner_zero 389 (-3) -0.77%
regression_9102_inliner_max 129 (-1) -0.77%
regression_9102_inliner_zero 129 (-1) -0.77%
nested_vector_pop_front_return_inliner_max 385 (-3) -0.77%
nested_vector_pop_front_return_inliner_zero 385 (-3) -0.77%
array_if_cond_simple_inliner_max 125 (-1) -0.79%
array_if_cond_simple_inliner_min 125 (-1) -0.79%
array_if_cond_simple_inliner_zero 125 (-1) -0.79%
brillig_cow_assign_inliner_max 122 (-1) -0.81%
brillig_cow_assign_inliner_min 122 (-1) -0.81%
brillig_cow_assign_inliner_zero 122 (-1) -0.81%
regression_9907_inliner_max 120 (-1) -0.83%
regression_9907_inliner_zero 120 (-1) -0.83%
array_sort_inliner_min 478 (-4) -0.83%
regression_11463_inliner_min 230 (-2) -0.86%
nested_vector_push_front_return_inliner_min 453 (-4) -0.88%
nested_vector_push_front_return_inliner_max 442 (-4) -0.90%
nested_vector_push_front_return_inliner_zero 442 (-4) -0.90%
fold_call_witness_condition_inliner_max 110 (-1) -0.90%
fold_call_witness_condition_inliner_min 110 (-1) -0.90%
fold_call_witness_condition_inliner_zero 110 (-1) -0.90%
regression_11463_inliner_max 218 (-2) -0.91%
regression_7128_inliner_max 109 (-1) -0.91%
regression_7128_inliner_min 109 (-1) -0.91%
regression_11463_inliner_zero 218 (-2) -0.91%
regression_7128_inliner_zero 109 (-1) -0.91%
nested_vector_pop_back_inliner_max 325 (-3) -0.91%
nested_vector_pop_back_inliner_min 325 (-3) -0.91%
nested_vector_pop_back_inliner_zero 325 (-3) -0.91%
regression_9725_2_inliner_min 106 (-1) -0.93%
array_sort_inliner_max 421 (-4) -0.94%
array_sort_inliner_zero 421 (-4) -0.94%
array_of_references_in_loop_inliner_min 105 (-1) -0.94%
reference_alias_in_array_inliner_min 104 (-1) -0.95%
regression_mem_op_predicate_inliner_max 102 (-1) -0.97%
regression_mem_op_predicate_inliner_min 102 (-1) -0.97%
regression_mem_op_predicate_inliner_zero 102 (-1) -0.97%
array_of_references_in_loop_inliner_max 97 (-1) -1.02%
array_of_references_in_loop_inliner_zero 97 (-1) -1.02%
regression_7062_inliner_max 96 (-1) -1.03%
regression_7062_inliner_min 96 (-1) -1.03%
regression_7062_inliner_zero 96 (-1) -1.03%
array_to_vector_inliner_max 375 (-4) -1.06%
regression_8975_inliner_min 91 (-1) -1.09%
regression_9758_inliner_min 179 (-2) -1.10%
array_dynamic_main_output_inliner_max 88 (-1) -1.12%
array_dynamic_main_output_inliner_min 88 (-1) -1.12%
array_dynamic_main_output_inliner_zero 88 (-1) -1.12%
vector_remove_oob_invalid_pred_inliner_max 262 (-3) -1.13%
vector_remove_oob_invalid_pred_inliner_min 262 (-3) -1.13%
vector_remove_oob_invalid_pred_inliner_zero 262 (-3) -1.13%
vector_pop_front_oob_invalid_pred_inliner_max 250 (-3) -1.19%
vector_pop_front_oob_invalid_pred_inliner_min 250 (-3) -1.19%
vector_pop_front_oob_invalid_pred_inliner_zero 250 (-3) -1.19%
vector_pop_back_oob_invalid_pred_inliner_max 245 (-3) -1.21%
vector_pop_back_oob_invalid_pred_inliner_min 245 (-3) -1.21%
vector_pop_back_oob_invalid_pred_inliner_zero 245 (-3) -1.21%
signed_arithmetic_inliner_max 243 (-3) -1.22%
signed_arithmetic_inliner_min 243 (-3) -1.22%
signed_arithmetic_inliner_zero 243 (-3) -1.22%
regression_9439_inliner_max 157 (-2) -1.26%
regression_9439_inliner_min 157 (-2) -1.26%
regression_9439_inliner_zero 157 (-2) -1.26%
regression_capacity_tracker_inliner_max 229 (-3) -1.29%
regression_capacity_tracker_inliner_min 229 (-3) -1.29%
regression_capacity_tracker_inliner_zero 229 (-3) -1.29%
regression_9312_inliner_max 225 (-3) -1.32%
conditional_vector_insert_at_end_of_vector_inliner_max 300 (-4) -1.32%
conditional_vector_insert_at_end_of_vector_inliner_min 300 (-4) -1.32%
regression_9312_inliner_min 225 (-3) -1.32%
conditional_vector_insert_at_end_of_vector_inliner_zero 300 (-4) -1.32%
regression_9312_inliner_zero 225 (-3) -1.32%
higher_order_functions_inliner_min 1,324 (-19) -1.41%
vector_insert_oob_inliner_max 342 (-5) -1.44%
vector_insert_oob_inliner_min 342 (-5) -1.44%
vector_insert_oob_inliner_zero 342 (-5) -1.44%
vector_insert_oob_invalid_pred_inliner_max 341 (-5) -1.45%
vector_insert_oob_invalid_pred_inliner_min 341 (-5) -1.45%
vector_insert_oob_invalid_pred_inliner_zero 341 (-5) -1.45%
vector_push_back_remove_if_else_bug_inliner_max 187 (-3) -1.58%
vector_push_back_remove_if_else_bug_inliner_min 187 (-3) -1.58%
vector_push_back_remove_if_else_bug_inliner_zero 187 (-3) -1.58%
regression_1144_1169_2399_6609_inliner_min 980 (-19) -1.90%
signed_div_inliner_max 147 (-3) -2.00%
signed_div_inliner_min 147 (-3) -2.00%
signed_div_inliner_zero 147 (-3) -2.00%
regression_1144_1169_2399_6609_inliner_max 889 (-19) -2.09%
regression_1144_1169_2399_6609_inliner_zero 889 (-19) -2.09%
higher_order_functions_inliner_max 459 (-10) -2.13%
higher_order_functions_inliner_zero 594 (-13) -2.14%
bit_shifts_comptime_inliner_max 123 (-4) -3.15%
bit_shifts_comptime_inliner_min 123 (-4) -3.15%
bit_shifts_comptime_inliner_zero 123 (-4) -3.15%
signed_inactive_division_by_zero_inliner_max 64 (-3) -4.48%
signed_inactive_division_by_zero_inliner_min 64 (-3) -4.48%
signed_inactive_division_by_zero_inliner_zero 64 (-3) -4.48%
inactive_signed_bitshift_inliner_max 78 (-4) -4.88%
inactive_signed_bitshift_inliner_min 78 (-4) -4.88%
inactive_signed_bitshift_inliner_zero 78 (-4) -4.88%
regression_8009_inliner_max 113 (-6) -5.04%
regression_8009_inliner_min 113 (-6) -5.04%
regression_8009_inliner_zero 113 (-6) -5.04%
bit_shifts_runtime_inliner_max 507 (-28) -5.23%
bit_shifts_runtime_inliner_min 507 (-28) -5.23%
bit_shifts_runtime_inliner_zero 507 (-28) -5.23%
signed_division_inliner_max 210 (-12) -5.41%
signed_division_inliner_min 210 (-12) -5.41%
signed_division_inliner_zero 210 (-12) -5.41%
regression_9971_inliner_max 103 (-6) -5.50%
regression_9971_inliner_min 103 (-6) -5.50%
regression_9971_inliner_zero 103 (-6) -5.50%
regression_8726_inliner_max 81 (-6) -6.90%
regression_8726_inliner_min 81 (-6) -6.90%
regression_8726_inliner_zero 81 (-6) -6.90%
regression_10008_inliner_max 172 (-15) -8.02%
regression_10008_inliner_min 172 (-15) -8.02%
regression_10008_inliner_zero 172 (-15) -8.02%

@vezenovm vezenovm requested a review from a team February 27, 2026 23:35
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: 5cbd96b Previous: 65c3939 Ratio
test_report_zkpassport_noir-ecdsa_ 3 s 2 s 1.50

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

CC: @TomAFrench

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant