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

Support for register push and pop instructions #5177

Merged
merged 15 commits into from
Feb 13, 2024

Conversation

vaivaswatha
Copy link
Contributor

@vaivaswatha vaivaswatha commented Oct 9, 2023

Closes #4883

@vaivaswatha vaivaswatha self-assigned this Oct 9, 2023
@vaivaswatha
Copy link
Contributor Author

I have some numbers on how this change impacts code sizes in our testsuite.

Code size reduction
test before after % reduction
should_pass/return_in_strange_positions 540 516 4.44444444444444
should_pass/payable_non_zero_coins 188 188 0
should_pass/superabi_contract_calls 708 604 14.6892655367232
should_pass/superabi_supertrait_same_methods 780 652 16.4102564102564
should_pass/stdlib/vec 105992 105352 0.603819156162729
should_pass/stdlib/alloc_test 788 716 9.13705583756345
should_pass/stdlib/vec_swap 18704 18600 0.556030795551754
should_pass/stdlib/intrinsics 700 676 3.42857142857143
should_pass/stdlib/ge_test 388 348 10.3092783505155
should_pass/stdlib/u256_ops_test 13420 13220 1.4903129657228
should_pass/stdlib/assert_ne_revert 60 60 0
should_pass/stdlib/assert_eq 2772 2740 1.15440115440115
should_pass/stdlib/u128_log_test 11356 11236 1.05671010919338
should_pass/stdlib/u128_root_test 12468 12324 1.15495668912416
should_pass/stdlib/raw_ptr 2364 2196 7.10659898477157
should_pass/stdlib/identity_eq 5908 5884 0.4062288422478
should_pass/stdlib/eq_custom_type 452 452 0
should_pass/stdlib/contract_id_type 292 268 8.21917808219178
should_pass/stdlib/option_eq 20252 20228 0.118506814141813
should_pass/stdlib/option 28504 27504 3.50827953971372
should_pass/stdlib/eq_generic 36 36 0
should_pass/stdlib/u128_div_test 2012 1924 4.37375745526839
should_pass/stdlib/generic_empty_struct_with_constraint 36 36 0
should_pass/stdlib/u128_test 4196 4020 4.19447092469018
should_pass/stdlib/assert_test 316 292 7.59493670886076
should_pass/stdlib/result 7032 7008 0.341296928327645
should_pass/stdlib/contract_id_test 288 264 8.33333333333333
should_pass/stdlib/assert_ne 2700 2668 1.18518518518519
should_pass/stdlib/address_test 2056 2032 1.16731517509728
should_pass/stdlib/storage_vec_insert 53564 44524 16.877006944963
should_pass/stdlib/u256_div_test 13564 13212 2.59510468888234
should_pass/stdlib/block_height 92 92 0
should_pass/stdlib/u128_mul_test 756 732 3.17460317460317
should_pass/stdlib/if_type_revert 36 36 0
should_pass/stdlib/b512_test 2784 2712 2.58620689655172
should_pass/stdlib/u256_mul_test 15964 15796 1.05236782761213
should_pass/stdlib/sha256 952 848 10.9243697478992
should_pass/stdlib/assert_eq_revert 68 68 0
should_pass/stdlib/chess 1820 1820 0
should_pass/stdlib/require 52 52 0
should_pass/stdlib/u256_test 2508 2452 2.23285486443381
should_pass/stdlib/b512_struct_alignment 304 304 0
should_pass/stdlib/iterator 2580 2580 0
should_pass/stdlib/raw_slice 460 436 5.21739130434783
should_pass/stdlib/assert_eq_u256_revert 188 188 0
should_pass/test_contracts/nested_struct_args_contract 100 100 0
should_pass/test_contracts/abi_with_generic_types 160 160 0
should_pass/test_contracts/basic_storage 34288 32944 3.91973868408773
should_pass/test_contracts/storage_access_contract 19708 19668 0.202963263649279
should_pass/test_contracts/return_struct 1108 964 12.9963898916968
should_pass/test_contracts/array_of_structs_contract 196 196 0
should_pass/test_contracts/storage_configurable 84 84 0
should_pass/test_contracts/auth_testing_contract 76 76 0
should_pass/test_contracts/issue_1512_repro 1196 1084 9.36454849498328
should_pass/test_contracts/abi_with_same_name_types 96 96 0
should_pass/test_contracts/context_testing_contract 388 388 0
should_pass/test_contracts/increment_contract 1532 1492 2.61096605744125
should_pass/test_contracts/multiple_impl 76 76 0
should_pass/test_contracts/abi_with_tuples_contract 116 116 0
should_pass/test_contracts/contract_with_type_aliases 172 172 0
should_pass/test_contracts/test_fuel_coin_contract 276 276 0
should_pass/test_contracts/storage_enum_contract 40644 40124 1.27940163369747
should_pass/test_contracts/balance_test_contract 84 84 0
should_pass/evm/evm_basic 36 36 0
should_pass/blanket_impl_u16 52 52 0
should_pass/empty_fields_in_storage_struct 241656 195376 19.151190121495
should_pass/forc/parent_pkg_manifest/contract_a 84 84 0
should_pass/forc/dependency_patching 36 36 0
should_pass/forc/contract_dependencies/contract_c 84 84 0
should_pass/forc/contract_dependencies/contract_b 84 84 0
should_pass/forc/contract_dependencies/contract_a 68 68 0
should_pass/conditional_compilation/run 52 52 0
should_pass/conditional_compilation/compile 1796 1708 4.89977728285078
should_pass/language/basic_func_decl 52 52 0
should_pass/language/associated_const_trait_impl_method 36 36 0
should_pass/language/left_to_right_func_args_evaluation 76 76 0
should_pass/language/out_of_order_decl 60 60 0
should_pass/language/where_clause_traits 36 36 0
should_pass/language/references/referencing_function_parameters 5492 5060 7.86598689002185
should_pass/language/references/referencing_expressions 4092 3612 11.7302052785924
should_pass/language/references/references_and_type_aliases 244 220 9.83606557377049
should_pass/language/references/references_in_asm_blocks 2852 2572 9.81767180925666
should_pass/language/references/mutability_of_references 716 660 7.82122905027933
should_pass/language/references/dereferencing_operator_dot_on_tuples 168180 165748 1.44606968723986
should_pass/language/references/passing_and_returning_references_to_and_from_functions 6572 6252 4.86914181375533
should_pass/language/references/dereferencing_control_flow_expressions 356 332 6.74157303370787
should_pass/language/references/referencing_parts_of_aggregates 11884 11276 5.11612251767082
should_pass/language/references/dereferencing_operator_index 162820 160100 1.67055644269746
should_pass/language/references/dereferencing_operator_star 249692 244964 1.89353283244958
should_pass/language/references/referencing_references 1364 1188 12.9032258064516
should_pass/language/references/references_in_aggregates 6772 6388 5.67040756054341
should_pass/language/references/referencing_control_flow_expressions 356 332 6.74157303370787
should_pass/language/references/references_and_generics 2948 2796 5.15603799185889
should_pass/language/references/dereferencing_operator_dot_on_structs 168180 165748 1.44606968723986
should_pass/language/references/impl_reference_types 2804 2556 8.84450784593438
should_pass/language/references/referencing_local_vars_and_values 75752 71888 5.10085542295913
should_pass/language/integer_type_inference 660 660 0
should_pass/language/numeric_constants 436 412 5.5045871559633
should_pass/language/mutable_arrays_struct 52 52 0
should_pass/language/same_const_name_lib 28 28 0
should_pass/language/associated_type_iterator 1068 1068 0
should_pass/language/match_expressions_unreachable_last_arm 2900 2844 1.93103448275862
should_pass/language/multi_item_import 36 36 0
should_pass/language/ref_mutable_arrays_inline 52 52 0
should_pass/language/u256/u256_abi 156 156 0
should_pass/language/u256/u256_operators 16372 13428 17.9819203518202
should_pass/language/module_dep 28 28 0
should_pass/language/generic_inside_generic 132 132 0
should_pass/language/associated_const_trait_method 36 36 0
should_pass/language/module_dep_multiple 28 28 0
should_pass/language/generic_impl_self 1764 1708 3.17460317460317
should_pass/language/retd_struct 168 168 0
should_pass/language/generic_impl_self_where 1284 1260 1.86915887850467
should_pass/language/chained_if_let 164 164 0
should_pass/language/test_multiple_attributes 28 28 0
should_pass/language/generic_type_inference 2396 2308 3.67278797996661
should_pass/language/blanket_trait 52 52 0
should_pass/language/retd_zero_len_array 44 44 0
should_pass/language/asm_expr_basic 268 244 8.95522388059701
should_pass/language/associated_const_impl_local_same_name 36 36 0
should_pass/language/unit_type_variants 60 60 0
should_pass/language/generic_struct 52 52 0
should_pass/language/binary_and_hex_literals 52 52 0
should_pass/language/trait_method_qualified 292 268 8.21917808219178
should_pass/language/ops 5884 5860 0.407885791978246
should_pass/language/generic_result_method 580 556 4.13793103448276
should_pass/language/tuple_field_reassignment 260 260 0
should_pass/language/associated_const_impl_self 36 36 0
should_pass/language/predicate_while 84 84 0
should_pass/language/retd_small_array 60 60 0
should_pass/language/insert_element_reg_reuse 3220 3188 0.993788819875776
should_pass/language/args_on_stack 1100 972 11.6363636363636
should_pass/language/where_clause_methods 1364 1276 6.45161290322581
should_pass/language/tuple_trait 124 124 0
should_pass/language/ref_mutable_fn_args_struct_assign 52 52 0
should_pass/language/for_loops 4940 4916 0.48582995951417
should_pass/language/zero_field_types 52 52 0
should_pass/language/method_on_empty_struct 36 36 0
should_pass/language/largeint_sroa 2020 1588 21.3861386138614
should_pass/language/nested_while_and_if 172 172 0
should_pass/language/generic_functions 52 52 0
should_pass/language/configurable_consts 4948 4628 6.46725949878739
should_pass/language/associated_const_trait 36 36 0
should_pass/language/eq_intrinsic 652 596 8.58895705521472
should_pass/language/match_expressions_unreachable_middle_arm 3308 3252 1.69286577992745
should_pass/language/use_full_path_names 36 36 0
should_pass/language/associated_const_abi_default 36 36 0
should_pass/language/struct_field_reassignment 36 36 0
should_pass/language/builtin_type_method_call 52 52 0
should_pass/language/far_jumps/single_blob 1048656 1048656 0
should_pass/language/far_jumps/many_blobs 11640288 11640288 0
should_pass/language/gtf_intrinsic 548 476 13.1386861313869
should_pass/language/diverging_exprs 1948 1764 9.44558521560575
should_pass/language/nested_struct_destructuring 36 36 0
should_pass/language/trait_nested 132 132 0
should_pass/language/many_stack_variables 724 708 2.20994475138122
should_pass/language/abort_control_flow_good 52 52 0
should_pass/language/test_attribute 28 28 0
should_pass/language/use_absolute_path 36 36 0
should_pass/language/import_with_different_callpaths 1612 1556 3.47394540942928
should_pass/language/raw_ptr/vec_ret 436 436 0
should_pass/language/raw_ptr/raw_ptr_ret 180 180 0
should_pass/language/where_clause_structs 316 292 7.59493670886076
should_pass/language/aliased_imports 52 52 0
should_pass/language/prelude_access 36 36 0
should_pass/language/match_expressions_nested 1764 1740 1.36054421768707
should_pass/language/b256_bitwise_ops 5384 5208 3.26894502228826
should_pass/language/empty_method_initializer 408 408 0
should_pass/language/main_args/main_args_ref 52 52 0
should_pass/language/main_args/main_args_various_types 556 532 4.31654676258993
should_pass/language/main_args/main_args_empty 52 52 0
should_pass/language/main_args/main_args_copy_copy 52 52 0
should_pass/language/main_args/main_args_copy 52 52 0
should_pass/language/main_args/main_args_ref_ref 60 60 0
should_pass/language/main_args/main_args_ref_copy 60 60 0
should_pass/language/enum_padding 116 116 0
should_pass/language/associated_const_abi 36 36 0
should_pass/language/local_impl_for_ord 52 52 0
should_pass/language/associated_const_trait_default 52 52 0
should_pass/language/enum_init_fn_call 412 388 5.8252427184466
should_pass/language/diagnose_unknown_annotations 116 116 0
should_pass/language/import_method_from_other_file 372 316 15.0537634408602
should_pass/language/match_expressions_or 25796 25708 0.341138160955187
should_pass/language/struct_destructuring 204 164 19.6078431372549
should_pass/language/mutable_arrays_multiple_nested 36 36 0
should_pass/language/logging 732 732 0
should_pass/language/const_decl 52 52 0
should_pass/language/is_reference_type 604 580 3.97350993377483
should_pass/language/non_literal_const_decl 52 52 0
should_pass/language/array_basics 428 428 0
should_pass/language/generic_where_in_impl_self 300 252 16
should_pass/language/supertraits_with_trait_methods 116 116 0
should_pass/language/tuple_in_struct 596 572 4.02684563758389
should_pass/language/impl_self_method 52 52 0
should_pass/language/match_expressions_rest 2684 2660 0.894187779433681
should_pass/language/tuple_types 52 52 0
should_pass/language/impl_self_method_order 52 52 0
should_pass/language/enum_if_let 616 592 3.8961038961039
should_pass/language/match_expressions 772 748 3.10880829015544
should_pass/language/basic_predicate 52 52 0
should_pass/language/new_allocator_test 844 748 11.3744075829384
should_pass/language/op_precedence 36 36 0
should_pass/language/enum_if_let_large_type 436 436 0
should_pass/language/is_prime 1156 1076 6.9204152249135
should_pass/language/match_expressions_structs 156 156 0
should_pass/language/match_expressions_with_self 284 260 8.45070422535211
should_pass/language/ref_mutable_fn_args_call 44 44 0
should_pass/language/array_generics 76 76 0
should_pass/language/smo 912 912 0
should_pass/language/typeinfo_custom_callpath2 84 84 0
should_pass/language/where_clause_generic_traits 36 36 0
should_pass/language/mutable_arrays_enum 100 100 0
should_pass/language/ref_mutable_fn_args_bool 52 52 0
should_pass/language/supertraits 3724 3700 0.644468313641246
should_pass/language/const_inits 2252 2196 2.4866785079929
should_pass/language/tuple_access 184 184 0
should_pass/language/trait_method_generic_qualified 52 52 0
should_pass/language/associated_type_parameter 36 36 0
should_pass/language/tuple_single_element 84 84 0
should_pass/language/bool_and_or 92 92 0
should_pass/language/associated_type_fully_qualified 36 36 0
should_pass/language/associated_type_container 868 868 0
should_pass/language/contract_caller_dynamic_address 136 136 0
should_pass/language/module_dep_self 28 28 0
should_pass/language/name_resolution_after_monomorphization 84 84 0
should_pass/language/associated_type_container_in_library 868 868 0
should_pass/language/type_alias 4612 4588 0.520381613183001
should_pass/language/mutable_arrays_swap 52 52 0
should_pass/language/break_and_continue_block_ret 44 44 0
should_pass/language/main_returns_unit 36 36 0
should_pass/language/unary_not_basic_2 52 52 0
should_pass/language/mutable_and_initd 140 140 0
should_pass/language/method_type_args 36 36 0
should_pass/language/raw_identifiers 164 164 0
should_pass/language/match_expressions_constants 540 516 4.44444444444444
should_pass/language/generic_structs 52 52 0
should_pass/language/predicate_while_dep 84 84 0
should_pass/language/unary_not_basic 52 52 0
should_pass/language/b256_ops 2776 2432 12.3919308357349
should_pass/language/const_decl_with_call_path 316 292 7.59493670886076
should_pass/language/generic_where_in_impl_self2 300 252 16
should_pass/language/name_resolution_inside_intrinsics 84 84 0
should_pass/language/reassignment_operators 292 268 8.21917808219178
should_pass/language/shadowing/shadowed_glob_imports 36 36 0
should_pass/language/attributes_warnings 36 36 0
should_pass/language/mutable_arrays 52 52 0
should_pass/language/match_expressions_unreachable_catch_all_last_arm 2076 2052 1.15606936416185
should_pass/language/memcpy 228 204 10.5263157894737
should_pass/language/deprecated 28 28 0
should_pass/language/ret_string_in_struct 80 80 0
should_pass/language/enum_destructuring 108 108 0
should_pass/language/associated_type_and_associated_const 36 36 0
should_pass/language/associated_type_method 36 36 0
should_pass/language/implicit_casting 52 52 0
should_pass/language/where_clause_enums 604 548 9.27152317880795
should_pass/language/valid_impurity 84 84 0
should_pass/language/contract_caller_as_ret 84 84 0
should_pass/language/associated_type_ascription 36 36 0
should_pass/language/match_expressions_inside_generic_functions 612 588 3.92156862745098
should_pass/language/str_slice 120 120 0
should_pass/language/match_expressions_explicit_rets 52 52 0
should_pass/language/binop_intrinsics 1140 1116 2.10526315789474
should_pass/language/match_expressions_mismatched 100 100 0
should_pass/language/funcs_with_generic_types 52 52 0
should_pass/language/trait_import_with_star 44 44 0
should_pass/language/match_expressions_unreachable_catch_all_middle_arm 1724 1700 1.39211136890951
should_pass/language/if_let_no_side_effects 268 244 8.95522388059701
should_pass/language/b256_bad_jumps 36 36 0
should_pass/language/bitwise_not 244 220 9.83606557377049
should_pass/language/prelude_access2 36 36 0
should_pass/language/enum_in_fn_decl 132 132 0
should_pass/language/enum_type_inference 52 52 0
should_pass/language/generic_enum 52 52 0
should_pass/language/associated_const_impl_self_order 36 36 0
should_pass/language/const_decl_and_use_in_library 52 52 0
should_pass/language/typeinfo_custom_callpath 84 84 0
should_pass/language/struct_init_reorder 84 84 0
should_pass/language/tuple_desugaring 100 100 0
should_pass/language/match_expressions_simple 196 196 0
should_pass/language/inline_if_expr_const 36 36 0
should_pass/language/associated_const_impl_multiple 36 36 0
should_pass/language/enum_variant_imports 268 244 8.95522388059701
should_pass/language/if_elseif_enum 548 548 0
should_pass/language/where_clause_impls 364 340 6.59340659340659
should_pass/language/generic_tuple_trait 380 356 6.31578947368421
should_pass/language/mutable_arrays_nested 36 36 0
should_pass/language/generic_traits 964 924 4.149377593361
should_pass/language/associated_const_impl 36 36 0
should_pass/language/modulo_uint_test 340 316 7.05882352941176
should_pass/language/implicit_return 52 52 0
should_pass/language/retd_b256 128 128 0
should_pass/language/generic_transpose 740 716 3.24324324324324
should_pass/language/complex_cfg 116 116 0
should_pass/language/struct_field_access 52 52 0
should_pass/language/redundant_return 36 36 0
should_pass/language/asm_without_return 44 44 0
should_pass/language/associated_const_abi_multiple 36 36 0
should_pass/language/while_loops 436 412 5.5045871559633
should_pass/language/same_const_name 676 652 3.55029585798817
should_pass/language/self_impl_reassignment 868 844 2.76497695852535
should_pass/language/associated_const_trait_const 52 52 0
should_pass/language/match_expressions_enums 7924 7900 0.302877334679455
should_pass/language/smo_opcode 128 128 0
should_pass/language/import_trailing_comma 44 44 0
should_pass/language/trait_method_ascription_disambiguate 52 52 0
should_pass/language/eq_and_neq 1316 1292 1.82370820668693
should_pass/language/tuple_indexing 36 36 0
should_pass/language/ref_mutable_fn_args_struct 52 52 0
should_pass/language/revert_in_first_if_branch 52 52 0
should_pass/language/ref_mutable_arrays 52 52 0
should_pass/language/nested_structs 1220 1196 1.9672131147541
should_pass/language/typeinfo_custom_callpath_with_import 100 100 0
should_pass/language/multi_impl_self 52 52 0
should_pass/language/generic_trait_constraints 188 188 0
should_pass/language/primitive_type_argument 52 52 0
should_pass/language/fix_opcode_bug 52 52 0
should_pass/language/arg_demotion_inline 348 276 20.6896551724138
should_pass/language/ret_small_string 64 64 0
should_pass/language/doc_comments 84 84 0
should_pass/language/match_expressions_empty_enums 52 52 0
should_pass/language/const_decl_in_library 92 92 0
should_pass/language/generics_in_contract 1896 1712 9.70464135021097
should_pass/language/if_implicit_unit 36 36 0
should_pass/language/impure_ifs 652 628 3.68098159509202
should_pass/language/break_and_continue 796 732 8.04020100502513
should_pass/language/ref_mutable_fn_args_u32 52 52 0
should_pass/resolve_local_items_that_shadow_imports 44 44 0
should_pass/break_in_strange_positions 700 676 3.42857142857143
should_pass/multiple_supertraits_for_abis 100 100 0
should_pass/continue_in_strange_positions 1060 1036 2.26415094339623
should_pass/require_contract_deployment/caller_context_test 388 388 0
should_pass/require_contract_deployment/bal_opcode 84 84 0
should_pass/require_contract_deployment/call_basic_storage 34288 32944 3.91973868408773
should_pass/require_contract_deployment/nested_struct_args_caller 100 100 0
should_pass/require_contract_deployment/call_increment_contract 1532 1492 2.61096605744125
should_pass/require_contract_deployment/call_storage_enum 40644 40124 1.27940163369747
should_pass/require_contract_deployment/call_contract_with_type_aliases 172 172 0
should_pass/require_contract_deployment/storage_access_caller 19708 19668 0.202963263649279
should_pass/require_contract_deployment/caller_auth_test 76 76 0
should_pass/require_contract_deployment/call_abi_with_tuples 116 116 0
should_pass/require_contract_deployment/array_of_structs_caller 196 196 0
should_pass/require_contract_deployment/asset_ops_test 276 276 0
should_pass/supertraits_for_abis_diamond 68 68 0
should_pass/superabi_diamond 164 164 0
should_pass/supertraits_via_self 36 36 0
should_pass/supertraits_for_abis 100 100 0
should_pass/dca/alias_type_ascription 36 36 0
should_pass/dca/alias_type_ascription_generic 36 36 0
should_pass/dca/constant_decl_expr 52 52 0
should_pass/dca/impl_unused_fn 52 52 0
should_pass/dca/log_stdlib 52 52 0
should_pass/dca/unused_trait 36 36 0
should_pass/dca/impl_self_alias 36 36 0
should_pass/dca/impl_trait_single 36 36 0
should_pass/dca/trait_method 36 36 0
should_pass/dca/unused_free_fn 36 36 0
should_pass/dca/unused_variable_in_free_fn 36 36 0
should_pass/dca/generic_fn_trait_contraint 36 36 0
should_pass/dca/revert 36 36 0
should_pass/dca/unused_variable 36 36 0
should_pass/dca/impl_trait_multiple 36 36 0
should_pass/dca/contract/superabi_contract_calls 188 188 0
should_pass/dca/contract/unused_struct_field 76 76 0
should_pass/dca/contract/unused_struct_field_enum 92 92 0
should_pass/dca/contract/abi_fn_params 116 116 0
should_pass/dca/contract/unused_struct_field_array 100 100 0
should_pass/dca/contract/unused_struct_field_tuple 76 76 0
should_pass/dca/unused_struct 36 36 0
should_pass/dca/func_param 36 36 0
should_pass/dca/alias_unused 36 36 0
should_pass/dca/multiple_fns_same_name 36 36 0
should_pass/dca/allow_dead_code 36 36 0
should_pass/dca/trait_method_neq 132 132 0
should_pass/dca/all_paths_return 36 36 0
should_pass/dca/unused_fields 36 36 0
should_pass/dca/impl_self_alias2 36 36 0
should_pass/dca/alias_lib 92 92 0
should_pass/dca/multiple_enums_same_name 36 36 0
should_pass/dca/library/fn_params_impl 28 28 0
should_pass/dca/library/fn_params_free 28 28 0
should_pass/dca/library/unused_priv_free_fn 28 28 0
should_pass/dca/library/unused_pub_free_fn 28 28 0
should_pass/dca/library/fn_params_trait 28 28 0
should_pass/dca/constant_while 36 36 0
should_pass/dca/constant_struct 52 52 0
should_pass/dca/unused_enum 36 36 0
should_pass/dca/impl_self 36 36 0
should_pass/dca/log_intrinsic 52 52 0
should_pass/dca/struct_field_no_warning 44 44 0
should_pass/dca/trait_method_lib 28 28 0
should_pass/supertraits_for_abis_ownable 2724 2652 2.6431718061674
should_pass/return_into 464 440 5.17241379310345
should_pass/unit_tests/regalloc_spill 412 412 0
should_pass/blanket_impl 52 52 0
should_pass/non_payable_implicit_zero_coins 232 232 0
should_pass/test_abis/abi_impl_methods_in_json_abi 100 100 0
should_pass/static_analysis/cei_pattern_violation_in_struct 616 576 6.49350649350649
should_pass/static_analysis/cei_pattern_violation 616 576 6.49350649350649
should_pass/static_analysis/cei_pattern_violation_in_match_statement-1 720 680 5.55555555555556
should_pass/static_analysis/cei_pattern_violation_in_if_statement-2 616 576 6.49350649350649
should_pass/static_analysis/cei_pattern_violation_in_while_loop-1 616 576 6.49350649350649
should_pass/static_analysis/cei_pattern_violation_in_while_loop-3 616 576 6.49350649350649
should_pass/static_analysis/cei_pattern_violation_storage_var_read 828 788 4.83091787439614
should_pass/static_analysis/cei_pattern_violation_in_codeblocks_other_than_in_functions 616 576 6.49350649350649
should_pass/static_analysis/cei_pattern_violation_in_func_app-3 616 576 6.49350649350649
should_pass/static_analysis/cei_pattern_violation_in_func_app-1 616 576 6.49350649350649
should_pass/static_analysis/storage_annotations_unused_write 68 68 0
should_pass/static_analysis/cei_pattern_violation_in_asm_block_smo 212 212 0
should_pass/static_analysis/cei_pattern_violation_in_asm_block 232 232 0
should_pass/static_analysis/cei_pattern_violation_in_intrinsic_call 616 576 6.49350649350649
should_pass/static_analysis/storage_annotations_unused_read 68 68 0
should_pass/static_analysis/cei_pattern_violation_storage_map_and_vec 4684 4460 4.78223740392827
should_pass/static_analysis/cei_pattern_violation_in_asm_block_tro 852 852 0
should_pass/static_analysis/cei_pattern_violation_in_while_loop-2 616 576 6.49350649350649
should_pass/static_analysis/cei_pattern_violation_smo_intrinsic 296 296 0
should_pass/static_analysis/storage_annotations_unused_read_and_write 68 68 0
should_pass/static_analysis/cei_pattern_violation_in_standalone_function 616 576 6.49350649350649
should_pass/static_analysis/cei_pattern_violation_in_asm_block_read 216 216 0
should_pass/static_analysis/cei_pattern_violation_in_while_loop-4 616 576 6.49350649350649
should_pass/static_analysis/cei_pattern_violation_in_asm_block_tr 324 324 0
should_pass/static_analysis/cei_pattern_violation_in_tuple 616 576 6.49350649350649
should_pass/static_analysis/cei_pattern_violation_in_asm_block_bal 196 196 0
should_pass/static_analysis/cei_pattern_violation_more_complex_logic 11536 11136 3.46740638002774
should_pass/static_analysis/cei_pattern_violation_storage_struct_read 860 820 4.65116279069768
should_pass/static_analysis/cei_pattern_violation_storage_var_update 764 724 5.23560209424084
should_pass/static_analysis/cei_pattern_violation_in_if_statement-1 640 600 6.25
should_pass/static_analysis/cei_pattern_violation_in_func_app-2 616 576 6.49350649350649
should_pass/superabi 100 100 0
should_pass/non_payable_zero_coins_let_binding 232 232 0
should_pass/superabi_diamond_impl 164 164 0

@vaivaswatha vaivaswatha marked this pull request as ready for review February 12, 2024 16:37
@IGI-111 IGI-111 requested a review from a team February 12, 2024 19:50
@IGI-111 IGI-111 requested a review from a team February 12, 2024 19:51
@vaivaswatha vaivaswatha enabled auto-merge (squash) February 13, 2024 03:48
Copy link

Benchmark for 5775445

Click to view benchmark
Test Base PR %
code_action 5.1±0.01ms 5.3±0.09ms +3.92%
code_lens 293.5±17.60ns 287.5±8.23ns -2.04%
compile 2.9±0.04s 3.0±0.10s +3.45%
completion 4.8±0.07ms 4.9±0.06ms +2.08%
did_change_with_caching 2.8±0.02s 2.8±0.02s 0.00%
document_symbol 997.2±11.71µs 976.3±19.30µs -2.10%
format 88.7±1.01ms 88.5±1.01ms -0.23%
goto_definition 353.6±9.91µs 355.6±7.26µs +0.57%
highlight 8.8±0.02ms 9.1±0.20ms +3.41%
hover 628.9±12.90µs 537.4±7.80µs -14.55%
idents_at_position 122.2±0.33µs 122.4±0.81µs +0.16%
inlay_hints 660.9±16.52µs 669.7±23.96µs +1.33%
on_enter 489.4±14.39ns 485.1±9.28ns -0.88%
parent_decl_at_position 3.6±0.03ms 3.7±0.03ms +2.78%
prepare_rename 359.2±7.08µs 350.2±7.44µs -2.51%
rename 9.1±0.03ms 9.5±0.17ms +4.40%
semantic_tokens 1058.8±9.21µs 1051.0±17.07µs -0.74%
token_at_position 346.5±4.38µs 349.5±2.30µs +0.87%
tokens_at_position 3.6±0.04ms 3.7±0.03ms +2.78%
tokens_for_file 411.5±4.30µs 407.3±2.59µs -1.02%
traverse 37.5±1.29ms 37.6±0.90ms +0.27%

@vaivaswatha vaivaswatha merged commit ccb129f into master Feb 13, 2024
35 checks passed
@vaivaswatha vaivaswatha deleted the vaivaswatha/pushpop4883 branch February 13, 2024 11:05
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.

Utilise the new push/pop registers instructions
3 participants