Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(brillig): SSA globals code gen #7021

Draft
wants to merge 39 commits into
base: master
Choose a base branch
from

Conversation

vezenovm
Copy link
Contributor

Description

Problem*

Resolves #6801

Summary*

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 and others added 30 commits January 8, 2025 02:46
Copy link
Contributor

github-actions bot commented Jan 10, 2025

Changes to number of Brillig opcodes executed

Generated at commit: 434217338987f2b7f4874b6129619fa53984274f, compared to commit: a9acf5a2fa8a673074e623e3ebd899bd24598649

🧾 Summary (10% most significant diffs)

Program Brillig opcodes (+/-) %
inline_decompose_hint_brillig_call +122 ❌ +677.78%
fold_call_witness_condition +20 ❌ +29.85%
regression_5615 +2 ❌ +12.50%
regression_6734 +2 ❌ +12.50%
array_to_slice_constant_length +2 ❌ +11.76%
brillig_identity_function +2 ❌ +11.76%
regression_2660 +4 ❌ +11.76%
as_witness +2 ❌ +11.11%
brillig_fns_as_values +2 ❌ +11.11%
brillig_loop_size_regression +2 ❌ +11.11%
conditional_regression_547 +2 ❌ +11.11%
main_return +2 ❌ +11.11%
trait_as_return_type +2 ❌ +11.11%
global_consts +177 ❌ +10.81%
integer_array_indexing +8 ❌ +10.67%
6 +686 ❌ +10.34%
conditional_regression_short_circuit +686 ❌ +10.22%
hashmap +4,884 ❌ +10.05%
1327_concrete_in_generic +2 ❌ +10.00%
assert +2 ❌ +10.00%
assert_statement +2 ❌ +10.00%
bool_not +2 ❌ +10.00%
custom_entry +2 ❌ +10.00%
missing_closure_env +2 ❌ +10.00%
pred_eq +2 ❌ +10.00%
regression_4088 +2 ❌ +10.00%
regression_4124 +2 ❌ +10.00%
regression_5045 +2 ❌ +10.00%

Full diff report 👇
Program Brillig opcodes (+/-) %
inline_decompose_hint_brillig_call 140 (+122) +677.78%
fold_call_witness_condition 87 (+20) +29.85%
regression_5615 18 (+2) +12.50%
regression_6734 18 (+2) +12.50%
array_to_slice_constant_length 19 (+2) +11.76%
brillig_identity_function 19 (+2) +11.76%
regression_2660 38 (+4) +11.76%
as_witness 20 (+2) +11.11%
brillig_fns_as_values 20 (+2) +11.11%
brillig_loop_size_regression 20 (+2) +11.11%
conditional_regression_547 20 (+2) +11.11%
main_return 20 (+2) +11.11%
trait_as_return_type 20 (+2) +11.11%
global_consts 1,814 (+177) +10.81%
integer_array_indexing 83 (+8) +10.67%
6 7,318 (+686) +10.34%
conditional_regression_short_circuit 7,396 (+686) +10.22%
hashmap 53,469 (+4,884) +10.05%
1327_concrete_in_generic 22 (+2) +10.00%
assert 22 (+2) +10.00%
assert_statement 22 (+2) +10.00%
bool_not 22 (+2) +10.00%
custom_entry 22 (+2) +10.00%
missing_closure_env 22 (+2) +10.00%
pred_eq 22 (+2) +10.00%
regression_4088 22 (+2) +10.00%
regression_4124 22 (+2) +10.00%
regression_5045 22 (+2) +10.00%
poseidon2 740 (+65) +9.63%
closures_mut_ref 23 (+2) +9.52%
fold_after_inlined_calls 23 (+2) +9.52%
loop 23 (+2) +9.52%
regression_5435 23 (+2) +9.52%
return_twice 23 (+2) +9.52%
simple_mut 23 (+2) +9.52%
simple_not 23 (+2) +9.52%
simple_program_addition 23 (+2) +9.52%
unsafe_range_constraint 23 (+2) +9.52%
bit_not 24 (+2) +9.09%
field_attribute 24 (+2) +9.09%
fold_basic 24 (+2) +9.09%
inline_never_basic 24 (+2) +9.09%
modules 24 (+2) +9.09%
modules_more 24 (+2) +9.09%
no_predicates_basic 24 (+2) +9.09%
regression_3889 24 (+2) +9.09%
regression_unsafe_no_predicates 24 (+2) +9.09%
traits_in_crates_1 24 (+2) +9.09%
traits_in_crates_2 24 (+2) +9.09%
regression_4449 209,220 (+17,390) +9.07%
bool_or 25 (+2) +8.70%
cast_bool 25 (+2) +8.70%
submodules 25 (+2) +8.70%
sha256 14,308 (+1,115) +8.45%
array_dynamic_nested_blackbox_input 4,450 (+345) +8.40%
diamond_deps_0 26 (+2) +8.33%
fold_basic_nested_call 26 (+2) +8.33%
struct 26 (+2) +8.33%
trait_impl_base_type 26 (+2) +8.33%
brillig_conditional 27 (+2) +8.00%
simple_shift_left_right 27 (+2) +8.00%
struct_fields_ordering 27 (+2) +8.00%
witness_compression 27 (+2) +8.00%
assign_ex 28 (+2) +7.69%
xor 28 (+2) +7.69%
fold_distinct_return 29 (+2) +7.41%
no_predicates_brillig 29 (+2) +7.41%
simple_comparison 29 (+2) +7.41%
sha256_var_witness_const_regression 6,731 (+464) +7.40%
brillig_acir_as_brillig 30 (+2) +7.14%
brillig_calls 30 (+2) +7.14%
ecdsa_secp256k1 6,732 (+448) +7.13%
conditional_1 5,300 (+351) +7.09%
brillig_not 31 (+2) +6.90%
tuples 31 (+2) +6.90%
negated_jmpif_condition 33 (+2) +6.45%
4_sub 34 (+2) +6.25%
arithmetic_binary_operations 34 (+2) +6.25%
bit_shifts_comptime 35 (+2) +6.06%
5_over 36 (+2) +5.88%
conditional_regression_underflow 36 (+2) +5.88%
uhashmap 145,785 (+8,089) +5.87%
strings 1,790 (+97) +5.73%
regression_3607 39 (+2) +5.41%
regression_6834 39 (+2) +5.41%
u16_support 39 (+2) +5.41%
import 40 (+2) +5.26%
regression_6451 40 (+2) +5.26%
3_add 41 (+2) +5.13%
unary_operator_overloading 41 (+2) +5.13%
2_div 42 (+2) +5.00%
brillig_pedersen 753 (+35) +4.87%
pedersen_check 753 (+35) +4.87%
databus_in_fn_with_empty_arr 45 (+2) +4.65%
bit_and 46 (+2) +4.55%
brillig_uninitialized_arrays 46 (+2) +4.55%
wrapping_operations 46 (+2) +4.55%
sha256_var_size_regression 16,194 (+691) +4.46%
array_dynamic_blackbox_input 18,249 (+776) +4.44%
simple_add_and_ret_arr 48 (+2) +4.35%
global_var_regression_simple 169 (+7) +4.32%
simple_bitwise 50 (+2) +4.17%
1_mul 54 (+2) +3.85%
encrypted_log_regression 917 (+33) +3.73%
simple_array_param 56 (+2) +3.70%
type_aliases 62 (+2) +3.33%
reference_only_used_as_alias 67 (+2) +3.08%
main_bool_arg 70 (+2) +2.94%
fold_numeric_generic_poseidon 4,911 (+140) +2.93%
no_predicates_numeric_generic_poseidon 4,911 (+140) +2.93%
simple_radix 71 (+2) +2.90%
regression_method_cannot_be_found 72 (+2) +2.86%
signed_cmp 81 (+2) +2.53%
side_effects_constrain_array 82 (+2) +2.50%
brillig_constant_reference_regression 83 (+2) +2.47%
databus 86 (+2) +2.38%
conditional_regression_421 91 (+2) +2.25%
nested_array_dynamic_simple 92 (+2) +2.22%
struct_array_inputs 94 (+2) +2.17%
brillig_cow_assign 524 (+11) +2.14%
brillig_calls_array 97 (+2) +2.11%
regression_mem_op_predicate 98 (+2) +2.08%
if_else_chain 100 (+2) +2.04%
nested_arrays_from_brillig 100 (+2) +2.04%
higher_order_functions 101 (+2) +2.02%
fmtstr_with_global 105 (+2) +1.94%
break_and_continue 106 (+2) +1.92%
signed_comparison 107 (+2) +1.90%
regression_3394 114 (+2) +1.79%
brillig_calls_conditionals 115 (+2) +1.77%
conditional_regression_661 119 (+2) +1.71%
databus_two_calldata_simple 120 (+2) +1.69%
conditional_2 121 (+2) +1.68%
generics 126 (+2) +1.61%
simple_2d_array 127 (+2) +1.60%
brillig_nested_arrays 137 (+2) +1.48%
derive 137 (+2) +1.48%
brillig_arrays 142 (+2) +1.43%
signed_division 158 (+2) +1.28%
bit_shifts_runtime 162 (+2) +1.25%
regression_3051 165 (+2) +1.23%
sha256_regression 112,832 (+1,327) +1.19%
nested_dyn_array_regression_5782 173 (+2) +1.17%
binary_operator_overloading 186 (+2) +1.09%
array_len 189 (+2) +1.07%
prelude 190 (+2) +1.06%
references 192 (+2) +1.05%
simple_print 202 (+2) +1.00%
signed_arithmetic 203 (+2) +1.00%
regression_4202 205 (+2) +0.99%
fold_2_to_17 1,066,086 (+9,455) +0.89%
pedersen_commitment 228 (+2) +0.88%
bench_2_to_17 575,204 (+4,970) +0.87%
embedded_curve_ops 246 (+2) +0.82%
sha2_byte 44,896 (+339) +0.76%
brillig_rc_regression_6123 288 (+2) +0.70%
array_dynamic_main_output 299 (+2) +0.67%
slice_coercion 330 (+2) +0.61%
databus_two_calldata 395 (+2) +0.51%
reference_counts 399 (+2) +0.50%
sha256_brillig_performance_regression 22,062 (+108) +0.49%
keccak256 30,767 (+149) +0.49%
wildcard_type 433 (+2) +0.46%
u128 24,473 (+110) +0.45%
pedersen_hash 484 (+2) +0.41%
regression_bignum 487 (+2) +0.41%
array_dynamic 490 (+2) +0.41%
array_sort 519 (+2) +0.39%
array_if_cond_simple 540 (+2) +0.37%
struct_inputs 548 (+2) +0.37%
to_bits 576 (+2) +0.35%
tuple_inputs 593 (+2) +0.34%
databus_composite_calldata 603 (+2) +0.33%
array_dedup_regression 669 (+2) +0.30%
hint_black_box 669 (+2) +0.30%
to_bytes_consistent 694 (+2) +0.29%
fold_complex_outputs 734 (+2) +0.27%
regression 2,673 (+7) +0.26%
regression_6674_1 774 (+2) +0.26%
regression_6674_2 777 (+2) +0.26%
hash_to_field 878 (+2) +0.23%
slice_loop 895 (+2) +0.22%
regression_capacity_tracker 913 (+2) +0.22%
loop_invariant_regression 990 (+2) +0.20%
7 1,044 (+2) +0.19%
blake3 1,044 (+2) +0.19%
brillig_blake2s 1,044 (+2) +0.19%
brillig_cow 1,082 (+2) +0.19%
to_le_bytes 1,092 (+2) +0.18%
signed_div 1,116 (+2) +0.18%
array_eq 1,188 (+2) +0.17%
array_neq 1,190 (+2) +0.17%
bench_ecdsa_secp256k1 1,378 (+2) +0.15%
ecdsa_secp256r1 1,378 (+2) +0.15%
regression_6674_3 1,397 (+2) +0.14%
nested_array_in_slice 1,462 (+2) +0.14%
regression_struct_array_conditional 1,465 (+2) +0.14%
6_array 1,516 (+2) +0.13%
single_verify_proof 1,530 (+2) +0.13%
array_to_slice 1,631 (+2) +0.12%
to_bytes_integration 2,067 (+2) +0.10%
to_be_bytes 2,094 (+2) +0.10%
double_verify_proof 2,199 (+2) +0.09%
7_function 2,211 (+2) +0.09%
simple_shield 2,510 (+2) +0.08%
aes128_encrypt 2,870 (+2) +0.07%
brillig_block_parameter_liveness 2,914 (+2) +0.07%
nested_array_dynamic 3,144 (+2) +0.06%
slices 3,293 (+2) +0.06%
slice_regex 3,436 (+2) +0.06%
merkle_insert 3,495 (+2) +0.06%
ecdsa_secp256r1_3x 4,096 (+2) +0.05%
verify_honk_proof 4,218 (+2) +0.05%
brillig_recursion 4,355 (+2) +0.05%
fold_fibonacci 4,355 (+2) +0.05%
slice_dynamic_index 4,656 (+2) +0.04%
debug_logs 5,138 (+2) +0.04%
sha256_var_padding_regression 196,732 (+68) +0.03%
brillig_cow_regression 454,916 (+152) +0.03%
double_verify_honk_proof 7,477 (+2) +0.03%
regression_5252 855,534 (+128) +0.01%
modulus 17,966 (+2) +0.01%
poseidon_bn254_hash 151,887 (+2) +0.00%
poseidon_bn254_hash_width_3 151,887 (+2) +0.00%
poseidonsponge_x5_254 171,767 (+2) +0.00%
regression_4709 1,064,035 (+7) +0.00%
ram_blowup_regression 683,154 (-112) -0.02%

Copy link
Contributor

github-actions bot commented Jan 10, 2025

Changes to Brillig bytecode sizes

Generated at commit: 434217338987f2b7f4874b6129619fa53984274f, compared to commit: a9acf5a2fa8a673074e623e3ebd899bd24598649

🧾 Summary (10% most significant diffs)

Program Brillig opcodes (+/-) %
inline_decompose_hint_brillig_call +130 ❌ +650.00%
global_consts +131 ❌ +62.68%
6 +707 ❌ +62.35%
conditional_regression_short_circuit +707 ❌ +58.57%
sha256 +1,267 ❌ +55.47%
regression_4449 +350 ❌ +48.34%
sha256_var_witness_const_regression +572 ❌ +45.83%
fold_2_to_17 +253 ❌ +45.18%
array_dynamic_nested_blackbox_input +364 ❌ +42.57%
bench_2_to_17 +130 ❌ +41.14%
ecdsa_secp256k1 +360 ❌ +41.00%
conditional_1 +363 ❌ +32.01%
integer_array_indexing +16 ❌ +26.23%
array_dynamic_blackbox_input +245 ❌ +24.38%
hashmap +4,437 ❌ +22.43%
sha256_var_padding_regression +927 ❌ +18.90%
ram_blowup_regression +172 ❌ +18.55%
keccak256 +343 ❌ +16.44%
sha256_var_size_regression +265 ❌ +15.94%
uhashmap +1,901 ❌ +14.96%
sha256_regression +942 ❌ +14.11%
sha2_byte +362 ❌ +13.53%
brillig_cow_assign +17 ❌ +12.88%
regression_5615 +2 ❌ +11.11%
regression_6734 +2 ❌ +11.11%

Full diff report 👇
Program Brillig opcodes (+/-) %
inline_decompose_hint_brillig_call 150 (+130) +650.00%
global_consts 340 (+131) +62.68%
6 1,841 (+707) +62.35%
conditional_regression_short_circuit 1,914 (+707) +58.57%
sha256 3,551 (+1,267) +55.47%
regression_4449 1,074 (+350) +48.34%
sha256_var_witness_const_regression 1,820 (+572) +45.83%
fold_2_to_17 813 (+253) +45.18%
array_dynamic_nested_blackbox_input 1,219 (+364) +42.57%
bench_2_to_17 446 (+130) +41.14%
ecdsa_secp256k1 1,238 (+360) +41.00%
conditional_1 1,497 (+363) +32.01%
integer_array_indexing 77 (+16) +26.23%
array_dynamic_blackbox_input 1,250 (+245) +24.38%
hashmap 24,215 (+4,437) +22.43%
sha256_var_padding_regression 5,831 (+927) +18.90%
ram_blowup_regression 1,099 (+172) +18.55%
keccak256 2,429 (+343) +16.44%
sha256_var_size_regression 1,928 (+265) +15.94%
uhashmap 14,612 (+1,901) +14.96%
sha256_regression 7,618 (+942) +14.11%
sha2_byte 3,038 (+362) +13.53%
brillig_cow_assign 149 (+17) +12.88%
regression_5615 20 (+2) +11.11%
regression_6734 20 (+2) +11.11%
strings 998 (+99) +11.01%
brillig_identity_function 21 (+2) +10.53%
array_to_slice_constant_length 21 (+2) +10.53%
conditional_regression_547 22 (+2) +10.00%
brillig_fns_as_values 22 (+2) +10.00%
brillig_loop_size_regression 22 (+2) +10.00%
as_witness 22 (+2) +10.00%
main_return 22 (+2) +10.00%
trait_as_return_type 22 (+2) +10.00%
sha256_brillig_performance_regression 1,778 (+161) +9.96%
brillig_cow_regression 2,254 (+201) +9.79%
regression_2660 46 (+4) +9.52%
1327_concrete_in_generic 24 (+2) +9.09%
return_twice 25 (+2) +8.70%
simple_mut 25 (+2) +8.70%
simple_not 25 (+2) +8.70%
simple_program_addition 25 (+2) +8.70%
assert 26 (+2) +8.33%
custom_entry 26 (+2) +8.33%
bool_not 26 (+2) +8.33%
pred_eq 26 (+2) +8.33%
regression_3889 26 (+2) +8.33%
regression_4088 26 (+2) +8.33%
regression_4124 26 (+2) +8.33%
missing_closure_env 26 (+2) +8.33%
closures_mut_ref 27 (+2) +8.00%
fold_after_inlined_calls 27 (+2) +8.00%
loop 27 (+2) +8.00%
assert_statement 28 (+2) +7.69%
no_predicates_basic 28 (+2) +7.69%
bit_not 28 (+2) +7.69%
diamond_deps_0 28 (+2) +7.69%
field_attribute 28 (+2) +7.69%
fold_basic 28 (+2) +7.69%
traits_in_crates_2 28 (+2) +7.69%
inline_never_basic 28 (+2) +7.69%
modules 28 (+2) +7.69%
modules_more 28 (+2) +7.69%
traits_in_crates_1 28 (+2) +7.69%
bool_or 29 (+2) +7.41%
cast_bool 29 (+2) +7.41%
submodules 29 (+2) +7.41%
unsafe_range_constraint 29 (+2) +7.41%
brillig_pedersen 545 (+37) +7.28%
pedersen_check 545 (+37) +7.28%
fold_basic_nested_call 30 (+2) +7.14%
trait_impl_base_type 30 (+2) +7.14%
simple_shift_left_right 31 (+2) +6.90%
witness_compression 31 (+2) +6.90%
xor 32 (+2) +6.67%
struct 32 (+2) +6.67%
simple_comparison 33 (+2) +6.45%
struct_fields_ordering 33 (+2) +6.45%
no_predicates_numeric_generic_poseidon 777 (+47) +6.44%
fold_numeric_generic_poseidon 777 (+47) +6.44%
assign_ex 34 (+2) +6.25%
regression_unsafe_no_predicates 34 (+2) +6.25%
brillig_conditional 35 (+2) +6.06%
brillig_not 37 (+2) +5.71%
fold_distinct_return 37 (+2) +5.71%
negated_jmpif_condition 37 (+2) +5.71%
4_sub 38 (+2) +5.56%
arithmetic_binary_operations 38 (+2) +5.56%
global_var_regression_simple 136 (+7) +5.43%
no_predicates_brillig 39 (+2) +5.41%
brillig_acir_as_brillig 39 (+2) +5.41%
brillig_calls 39 (+2) +5.41%
regression_5435 41 (+2) +5.13%
tuples 41 (+2) +5.13%
conditional_regression_underflow 42 (+2) +5.00%
5_over 42 (+2) +5.00%
poseidon2 339 (+16) +4.95%
bit_shifts_comptime 43 (+2) +4.88%
reference_only_used_as_alias 46 (+2) +4.55%
import 46 (+2) +4.55%
simple_add_and_ret_arr 48 (+2) +4.35%
simple_array_param 49 (+2) +4.26%
regression_6451 50 (+2) +4.17%
unary_operator_overloading 51 (+2) +4.08%
u16_support 51 (+2) +4.08%
brillig_uninitialized_arrays 53 (+2) +3.92%
regression_3607 54 (+2) +3.85%
wrapping_operations 54 (+2) +3.85%
3_add 55 (+2) +3.77%
break_and_continue 56 (+2) +3.70%
bit_and 56 (+2) +3.70%
2_div 56 (+2) +3.70%
databus_in_fn_with_empty_arr 58 (+2) +3.57%
regression_6834 58 (+2) +3.57%
type_aliases 59 (+2) +3.51%
simple_bitwise 59 (+2) +3.51%
struct_array_inputs 64 (+2) +3.23%
1_mul 65 (+2) +3.17%
nested_arrays_from_brillig 67 (+2) +3.08%
main_bool_arg 68 (+2) +3.03%
single_verify_proof 69 (+2) +2.99%
verify_honk_proof 69 (+2) +2.99%
higher_order_functions 72 (+2) +2.86%
regression_method_cannot_be_found 73 (+2) +2.82%
databus 74 (+2) +2.78%
simple_radix 76 (+2) +2.70%
brillig_recursion 78 (+2) +2.63%
fold_fibonacci 78 (+2) +2.63%
double_verify_honk_proof 81 (+2) +2.53%
double_verify_proof 81 (+2) +2.53%
conditional_regression_421 85 (+2) +2.41%
brillig_constant_reference_regression 86 (+2) +2.38%
databus_two_calldata_simple 88 (+2) +2.33%
regression_5045 89 (+2) +2.30%
generics 90 (+2) +2.27%
to_bytes_integration 90 (+2) +2.27%
array_dynamic_main_output 94 (+2) +2.17%
array_eq 95 (+2) +2.15%
array_neq 97 (+2) +2.11%
array_len 98 (+2) +2.08%
brillig_calls_array 99 (+2) +2.06%
if_else_chain 103 (+2) +1.98%
signed_cmp 103 (+2) +1.98%
fmtstr_with_global 106 (+2) +1.92%
nested_array_dynamic_simple 106 (+2) +1.92%
simple_2d_array 108 (+2) +1.89%
regression_mem_op_predicate 112 (+2) +1.82%
fold_call_witness_condition 114 (+2) +1.79%
regression_3394 115 (+2) +1.77%
brillig_arrays 117 (+2) +1.74%
regression_4202 118 (+2) +1.72%
to_le_bytes 118 (+2) +1.72%
conditional_2 118 (+2) +1.72%
side_effects_constrain_array 122 (+2) +1.67%
loop_invariant_regression 124 (+2) +1.64%
conditional_regression_661 126 (+2) +1.61%
references 128 (+2) +1.59%
signed_comparison 130 (+2) +1.56%
brillig_calls_conditionals 131 (+2) +1.55%
to_bytes_consistent 131 (+2) +1.55%
array_if_cond_simple 134 (+2) +1.52%
hash_to_field 135 (+2) +1.50%
encrypted_log_regression 278 (+4) +1.46%
brillig_blake2s 140 (+2) +1.45%
blake3 140 (+2) +1.45%
derive 140 (+2) +1.45%
7 140 (+2) +1.45%
brillig_nested_arrays 152 (+2) +1.33%
signed_div 158 (+2) +1.28%
regression_3051 165 (+2) +1.23%
brillig_rc_regression_6123 169 (+2) +1.20%
nested_dyn_array_regression_5782 174 (+2) +1.16%
pedersen_commitment 189 (+2) +1.07%
prelude 190 (+2) +1.06%
to_bits 194 (+2) +1.04%
u128 2,715 (+27) +1.00%
simple_print 202 (+2) +1.00%
to_be_bytes 202 (+2) +1.00%
signed_division 203 (+2) +1.00%
regression 933 (+9) +0.97%
databus_two_calldata 210 (+2) +0.96%
regression_6674_1 231 (+2) +0.87%
regression_6674_2 234 (+2) +0.86%
regression_capacity_tracker 239 (+2) +0.84%
slice_loop 246 (+2) +0.82%
signed_arithmetic 248 (+2) +0.81%
ecdsa_secp256r1 249 (+2) +0.81%
bench_ecdsa_secp256k1 249 (+2) +0.81%
struct_inputs 251 (+2) +0.80%
array_dedup_regression 258 (+2) +0.78%
embedded_curve_ops 264 (+2) +0.76%
bigint 2,118 (+16) +0.76%
bit_shifts_runtime 270 (+2) +0.75%
wildcard_type 278 (+2) +0.72%
array_sort 292 (+2) +0.69%
regression_bignum 313 (+2) +0.64%
array_dynamic 315 (+2) +0.64%
hint_black_box 323 (+2) +0.62%
slice_coercion 333 (+2) +0.60%
pedersen_hash 334 (+2) +0.60%
tuple_inputs 340 (+2) +0.59%
brillig_cow 356 (+2) +0.56%
databus_composite_calldata 369 (+2) +0.54%
6_array 377 (+2) +0.53%
binary_operator_overloading 398 (+2) +0.51%
aes128_encrypt 411 (+2) +0.49%
fold_complex_outputs 468 (+2) +0.43%
reference_counts 469 (+2) +0.43%
regression_6674_3 500 (+2) +0.40%
regression_struct_array_conditional 534 (+2) +0.38%
7_function 551 (+2) +0.36%
regression_5252 4,456 (+16) +0.36%
ecdsa_secp256r1_3x 683 (+2) +0.29%
array_to_slice 696 (+2) +0.29%
merkle_insert 697 (+2) +0.29%
simple_shield 824 (+2) +0.24%
nested_array_in_slice 1,132 (+2) +0.18%
modulus 1,746 (+2) +0.11%
slices 2,134 (+2) +0.09%
nested_array_dynamic 2,145 (+2) +0.09%
slice_regex 2,214 (+2) +0.09%
slice_dynamic_index 2,500 (+2) +0.08%
poseidonsponge_x5_254 4,111 (+2) +0.05%
brillig_block_parameter_liveness 4,899 (+2) +0.04%
debug_logs 5,126 (+2) +0.04%
poseidon_bn254_hash 5,283 (+2) +0.04%
poseidon_bn254_hash_width_3 5,283 (+2) +0.04%
regression_4709 133,735 (+7) +0.01%

@vezenovm
Copy link
Contributor Author

vezenovm commented Jan 10, 2025

The regressions are most likely due to Value::Global still being treated as a non-constant in the DFG. I will update this separately and keep this a draft for now.

EDIT: #7040

Copy link
Contributor

github-actions bot commented Jan 10, 2025

Execution Report

Program Execution Time %
sha256_regression 0.051s 0%
regression_4709 0.016s 1500%
ram_blowup_regression 0.599s 0%
rollup-root 0.106s 1%
rollup-merge 0.006s 0%
rollup-block-merge 0.104s -1%
rollup-base-public 1.220s -1%
rollup-base-private 0.451s -1%
private-kernel-tail 0.019s 0%
private-kernel-reset 0.312s 0%
private-kernel-inner 0.072s 5%

Copy link
Contributor

github-actions bot commented Jan 10, 2025

Compilation Report

Program Compilation Time %
sha256_regression 1.278s -4%
regression_4709 1.580s 95%
ram_blowup_regression 17.760s -4%
rollup-root 3.492s 2%
rollup-merge 1.842s 2%
rollup-block-merge 3.388s 0%
rollup-base-public 39.780s 1%
rollup-base-private 12.340s 0%
private-kernel-tail 1.026s -7%
private-kernel-reset 6.270s -1%
private-kernel-inner 2.174s 4%

Copy link
Contributor

github-actions bot commented Jan 10, 2025

Execution Memory Report

Program Peak Memory %
keccak256 74.67M 0%
workspace 123.78M 0%
regression_4709 467.72M 47%
ram_blowup_regression 512.61M 0%
rollup-base-public 479.00M 0%
rollup-base-private 325.64M 0%
private-kernel-tail 180.53M 0%
private-kernel-reset 245.23M 0%
private-kernel-inner 208.64M 0%

Copy link
Contributor

github-actions bot commented Jan 10, 2025

Compilation Memory Report

Program Peak Memory %
keccak256 78.13M 0%
workspace 123.77M 0%
regression_4709 511.10M 20%
ram_blowup_regression 1.58G 0%
rollup-base-public 4.85G 0%
rollup-base-private 1.26G 0%
private-kernel-tail 207.18M 0%
private-kernel-reset 669.32M 0%
private-kernel-inner 294.40M 0%

Base automatically changed from mv/ssa-globals-1 to master January 10, 2025 20:24
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.

SSA: Global variables
1 participant