-
Notifications
You must be signed in to change notification settings - Fork 5.4k
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
Tune the inliner for codesize #6047
Labels
compiler: ir
IRgen and sway-ir including optimization passes
compiler: optimization
IR Optimization Passes
Comments
vaivaswatha
added
compiler: ir
IRgen and sway-ir including optimization passes
compiler: optimization
IR Optimization Passes
labels
May 22, 2024
IGI-111
pushed a commit
that referenced
this issue
May 29, 2024
## Description After changes to the pipeline sequence in #6024, there were some regressions. This change mitigates that to an extent. Closes #6047 <details> <summary>Click here for the numbers</summary> test | before | after | %reduction -- | -- | -- | -- should_pass/return_in_strange_positions | 768 | 280 | 63.5416666666667 should_pass/payable_non_zero_coins | 1584 | 1584 | 0 should_pass/superabi_contract_calls | 4512 | 4512 | 0 should_pass/superabi_supertrait_same_methods | 4736 | 4736 | 0 should_pass/stdlib/vec | 107304 | 107096 | 0.193841795273242 should_pass/stdlib/alloc_test | 928 | 824 | 11.2068965517241 should_pass/stdlib/vec_swap | 25680 | 23792 | 7.35202492211838 should_pass/stdlib/intrinsics | 896 | 272 | 69.6428571428571 should_pass/stdlib/ge_test | 560 | 560 | 0 should_pass/stdlib/assert_ne_revert | 560 | 560 | 0 should_pass/stdlib/assert_eq | 7784 | 6416 | 17.5745118191161 should_pass/stdlib/u128_log_test | 4768 | 4568 | 4.19463087248322 should_pass/stdlib/u128_root_test | 4488 | 4400 | 1.96078431372549 should_pass/stdlib/raw_ptr | 5000 | 4512 | 9.76 should_pass/stdlib/identity_eq | 2456 | 2424 | 1.30293159609121 should_pass/stdlib/eq_custom_type | 672 | 672 | 0 should_pass/stdlib/contract_id_type | 648 | 592 | 8.64197530864197 should_pass/stdlib/option_eq | 11704 | 12240 | -4.57963089542037 should_pass/stdlib/option | 24000 | 22912 | 4.53333333333333 should_pass/stdlib/eq_generic | 176 | 176 | 0 should_pass/stdlib/u128_div_test | 2800 | 2720 | 2.85714285714286 should_pass/stdlib/generic_empty_struct_with_constraint | 176 | 176 | 0 should_pass/stdlib/u128_test | 6744 | 6512 | 3.44009489916963 should_pass/stdlib/assert_test | 512 | 272 | 46.875 should_pass/stdlib/result | 9720 | 8944 | 7.98353909465021 should_pass/stdlib/contract_id_test | 648 | 592 | 8.64197530864197 should_pass/stdlib/assert_ne | 6352 | 6120 | 3.65239294710327 should_pass/stdlib/address_test | 4320 | 4144 | 4.07407407407407 should_pass/stdlib/storage_vec_insert | 9000 | 9000 | 0 should_pass/stdlib/block_height | 312 | 312 | 0 should_pass/stdlib/u128_mul_test | 1536 | 1448 | 5.72916666666667 should_pass/stdlib/if_type_revert | 32 | 32 | 0 should_pass/stdlib/b512_test | 3472 | 3352 | 3.45622119815668 should_pass/stdlib/sha256 | 3184 | 2168 | 31.9095477386935 should_pass/stdlib/assert_eq_revert | 568 | 568 | 0 should_pass/stdlib/chess | 2048 | 2048 | 0 should_pass/stdlib/require | 1256 | 1168 | 7.00636942675159 should_pass/stdlib/b512_struct_alignment | 728 | 728 | 0 should_pass/stdlib/iterator | 2872 | 2640 | 8.07799442896936 should_pass/stdlib/raw_slice | 1056 | 960 | 9.09090909090909 should_pass/test_contracts/nested_struct_args_contract | 1352 | 1352 | 0 should_pass/test_contracts/abi_with_generic_types | 4240 | 4240 | 0 should_pass/test_contracts/basic_storage | 41312 | 33744 | 18.3191324554609 should_pass/test_contracts/storage_access_contract | 37696 | 34136 | 9.44397283531409 should_pass/test_contracts/return_struct | 4584 | 3328 | 27.3996509598604 should_pass/test_contracts/array_of_structs_contract | 4200 | 3680 | 12.3809523809524 should_pass/test_contracts/auth_testing_contract | 952 | 952 | 0 should_pass/test_contracts/issue_1512_repro | 2704 | 2528 | 6.50887573964497 should_pass/test_contracts/abi_with_same_name_types | 1504 | 1416 | 5.85106382978723 should_pass/test_contracts/context_testing_contract | 4672 | 4240 | 9.24657534246575 should_pass/test_contracts/storage_namespace | 41312 | 33744 | 18.3191324554609 should_pass/test_contracts/increment_contract | 4504 | 4248 | 5.68383658969805 should_pass/test_contracts/multiple_impl | 1512 | 1240 | 17.989417989418 should_pass/test_contracts/abi_with_tuples_contract | 1936 | 1936 | 0 should_pass/test_contracts/contract_with_type_aliases | 4032 | 4032 | 0 should_pass/test_contracts/test_fuel_coin_contract | 4144 | 3400 | 17.953667953668 should_pass/test_contracts/storage_enum_contract | 24560 | 20744 | 15.5374592833876 should_pass/test_contracts/balance_test_contract | 952 | 952 | 0 should_pass/evm/evm_basic | 176 | 176 | 0 should_pass/blanket_impl_u16 | 288 | 288 | 0 should_pass/empty_fields_in_storage_struct | 31224 | 31224 | 0 should_pass/forc/dependency_package_field | 272 | 272 | 0 should_pass/forc/workspace_building | 24 | 24 | 0 should_pass/forc/parent_pkg_manifest/contract_a | 960 | 960 | 0 should_pass/forc/dependency_patching | 272 | 272 | 0 should_pass/forc/contract_dependencies/contract_c | 960 | 960 | 0 should_pass/forc/contract_dependencies/contract_b | 960 | 960 | 0 should_pass/forc/contract_dependencies/contract_a | 1104 | 1104 | 0 should_pass/conditional_compilation/run | 288 | 288 | 0 should_pass/language/where_clause_functions | 2216 | 2072 | 6.49819494584837 should_pass/language/basic_func_decl | 272 | 272 | 0 should_pass/language/associated_const_trait_impl_method | 296 | 296 | 0 should_pass/language/left_to_right_func_args_evaluation | 304 | 304 | 0 should_pass/language/out_of_order_decl | 280 | 280 | 0 should_pass/language/where_clause_traits | 264 | 264 | 0 should_pass/language/references/reassigning_via_references_passed_and_returned_to_and_from_functions | 41144 | 39816 | 3.22768811977445 should_pass/language/references/reassigning_via_references_in_aggregates | 5696 | 5176 | 9.12921348314607 should_pass/language/references/referencing_function_parameters | 4584 | 3936 | 14.1361256544503 should_pass/language/references/referencing_expressions | 8840 | 7960 | 9.95475113122172 should_pass/language/references/references_and_type_aliases | 792 | 712 | 10.1010101010101 should_pass/language/references/references_in_asm_blocks | 2592 | 2192 | 15.4320987654321 should_pass/language/references/mutability_of_references | 1392 | 904 | 35.0574712643678 should_pass/language/references/dereferencing_operator_dot_on_tuples | 135552 | 125072 | 7.73135033050047 should_pass/language/references/passing_and_returning_references_to_and_from_functions | 19224 | 15968 | 16.9371618809821 should_pass/language/references/type_unification_of_references | 3984 | 3432 | 13.855421686747 should_pass/language/references/dereferencing_control_flow_expressions | 1672 | 1168 | 30.1435406698565 should_pass/language/references/referencing_parts_of_aggregates | 7144 | 6928 | 3.02351623740202 should_pass/language/references/dereferencing_operator_index | 99032 | 92480 | 6.61604329913563 should_pass/language/references/dereferencing_operator_star | 173776 | 151312 | 12.9269864653347 should_pass/language/references/reassigning_via_references_to_values | 14840 | 14184 | 4.42048517520216 should_pass/language/references/referencing_references | 1512 | 1104 | 26.984126984127 should_pass/language/references/references_in_aggregates | 4504 | 3904 | 13.3214920071048 should_pass/language/references/referencing_control_flow_expressions | 1080 | 792 | 26.6666666666667 should_pass/language/references/references_and_generics | 3744 | 3560 | 4.91452991452992 should_pass/language/references/reassigning_via_references_to_expressions | 42600 | 37352 | 12.3192488262911 should_pass/language/references/dereferencing_operator_dot_on_structs | 135552 | 125072 | 7.73135033050047 should_pass/language/references/impl_reference_types | 8264 | 7896 | 4.45304937076476 should_pass/language/references/referencing_local_vars_and_values | 40104 | 36456 | 9.09634949132256 should_pass/language/integer_type_inference | 1512 | 1512 | 0 should_pass/language/numeric_constants | 632 | 272 | 56.9620253164557 should_pass/language/mutable_arrays_struct | 288 | 288 | 0 should_pass/language/same_const_name_lib | 24 | 24 | 0 should_pass/language/associated_type_iterator | 2152 | 1960 | 8.92193308550186 should_pass/language/match_expressions_unreachable_last_arm | 2968 | 2968 | 0 should_pass/language/multi_item_import | 264 | 264 | 0 should_pass/language/ref_mutable_arrays_inline | 288 | 288 | 0 should_pass/language/u256/u256_abi | 1072 | 768 | 28.3582089552239 should_pass/language/u256/u256_operators | 6008 | 6008 | 0 should_pass/language/module_dep | 24 | 24 | 0 should_pass/language/generic_inside_generic | 376 | 376 | 0 should_pass/language/associated_const_trait_method | 296 | 296 | 0 should_pass/language/struct_instantiation | 2536 | 2320 | 8.51735015772871 should_pass/language/module_dep_multiple | 24 | 24 | 0 should_pass/language/method_indirect_inference | 552 | 552 | 0 should_pass/language/where_clause_generic_tuple | 280 | 280 | 0 should_pass/language/generic_impl_self | 2848 | 2688 | 5.61797752808989 should_pass/language/retd_struct | 728 | 728 | 0 should_pass/language/fallback_only | 2256 | 1672 | 25.886524822695 should_pass/language/generic_impl_self_where | 2544 | 2392 | 5.9748427672956 should_pass/language/chained_if_let | 400 | 400 | 0 should_pass/language/test_multiple_attributes | 24 | 24 | 0 should_pass/language/generic_type_inference | 4024 | 3408 | 15.3081510934394 should_pass/language/blanket_trait | 272 | 272 | 0 should_pass/language/retd_zero_len_array | 176 | 176 | 0 should_pass/language/asm_expr_basic | 496 | 416 | 16.1290322580645 should_pass/language/associated_const_impl_local_same_name | 296 | 296 | 0 should_pass/language/unit_type_variants | 624 | 624 | 0 should_pass/language/generic_struct | 288 | 288 | 0 should_pass/language/binary_and_hex_literals | 272 | 272 | 0 should_pass/language/trait_method_qualified | 488 | 272 | 44.2622950819672 should_pass/language/ops | 6072 | 376 | 93.8076416337286 should_pass/language/generic_result_method | 720 | 656 | 8.88888888888889 should_pass/language/tuple_field_reassignment | 488 | 488 | 0 should_pass/language/associated_const_impl_self | 296 | 296 | 0 should_pass/language/predicate_while | 80 | 80 | 0 should_pass/language/retd_small_array | 384 | 384 | 0 should_pass/language/insert_element_reg_reuse | 3336 | 2464 | 26.1390887290168 should_pass/language/args_on_stack | 1656 | 1600 | 3.38164251207729 should_pass/language/where_clause_methods | 2264 | 2104 | 7.06713780918728 should_pass/language/tuple_trait | 368 | 368 | 0 should_pass/language/ref_mutable_fn_args_struct_assign | 280 | 280 | 0 should_pass/language/for_loops | 5104 | 4456 | 12.6959247648903 should_pass/language/zero_field_types | 288 | 288 | 0 should_pass/language/method_on_empty_struct | 272 | 272 | 0 should_pass/language/largeint_sroa | 776 | 776 | 0 should_pass/language/nested_while_and_if | 400 | 400 | 0 should_pass/language/generic_functions | 272 | 272 | 0 should_pass/language/configurable_consts | 15128 | 13448 | 11.1052353252248 should_pass/language/associated_const_trait | 296 | 296 | 0 should_pass/language/eq_intrinsic | 816 | 288 | 64.7058823529412 should_pass/language/match_expressions_unreachable_middle_arm | 3376 | 3376 | 0 should_pass/language/use_full_path_names | 296 | 296 | 0 should_pass/language/associated_const_abi_default | 296 | 296 | 0 should_pass/language/struct_field_reassignment | 272 | 272 | 0 should_pass/language/builtin_type_method_call | 288 | 288 | 0 should_pass/language/far_jumps/single_blob | 1048896 | 1048896 | 0 should_pass/language/far_jumps/many_blobs | 11640520 | 11640520 | 0 should_pass/language/gtf_intrinsic | 696 | 624 | 10.3448275862069 should_pass/language/diverging_exprs | 1944 | 1104 | 43.2098765432099 should_pass/language/mut_ref_empty_type | 880 | 712 | 19.0909090909091 should_pass/language/nested_struct_destructuring | 272 | 272 | 0 should_pass/language/trait_nested | 832 | 832 | 0 should_pass/language/many_stack_variables | 936 | 936 | 0 should_pass/language/abort_control_flow_good | 48 | 48 | 0 should_pass/language/test_attribute | 24 | 24 | 0 should_pass/language/use_absolute_path | 272 | 272 | 0 should_pass/language/import_with_different_callpaths | 2856 | 2696 | 5.60224089635854 should_pass/language/raw_ptr/vec_ret | 1072 | 1072 | 0 should_pass/language/raw_ptr/raw_ptr_ret ... | | | #DIV/0! should_pass/language/where_clause_structs | 608 | 536 | 11.8421052631579 should_pass/language/aliased_imports | 328 | 328 | 0 should_pass/language/prelude_access | 176 | 176 | 0 should_pass/language/match_expressions_nested | 1912 | 1744 | 8.78661087866109 should_pass/language/b256_bitwise_ops | 6320 | 6800 | -7.59493670886076 should_pass/language/empty_method_initializer | 936 | 936 | 0 should_pass/language/main_args/main_args_ref | 296 | 296 | 0 should_pass/language/main_args/main_args_various_types | 2424 | 2352 | 2.97029702970297 should_pass/language/main_args/main_args_empty | 288 | 288 | 0 should_pass/language/main_args/main_args_two_u64 | 416 | 416 | 0 should_pass/language/main_args/main_args_generics | 968 | 968 | 0 should_pass/language/main_args/main_args_one_u64 | 288 | 288 | 0 should_pass/language/main_args/main_args_ref_ref | 528 | 464 | 12.1212121212121 should_pass/language/main_args/main_args_ref_copy | 432 | 432 | 0 should_pass/language/enum_padding | 1560 | 1560 | 0 should_pass/language/associated_const_abi | 296 | 296 | 0 should_pass/language/local_impl_for_ord | 272 | 272 | 0 should_pass/language/associated_const_trait_default | 304 | 304 | 0 should_pass/language/enum_init_fn_call | 616 | 544 | 11.6883116883117 should_pass/language/diagnose_unknown_annotations | 1480 | 1480 | 0 should_pass/language/import_method_from_other_file | 720 | 656 | 8.88888888888889 should_pass/language/match_expressions_or | 10424 | 9528 | 8.59554873369148 should_pass/language/struct_destructuring | 400 | 400 | 0 should_pass/language/import_star_name_clash | 2656 | 2544 | 4.21686746987952 should_pass/language/mutable_arrays_multiple_nested | 272 | 272 | 0 should_pass/language/logging | 3480 | 3344 | 3.90804597701149 should_pass/language/is_reference_type | 800 | 272 | 66 should_pass/language/non_literal_const_decl | 288 | 288 | 0 should_pass/language/array_basics | 800 | 800 | 0 should_pass/language/generic_where_in_impl_self | 464 | 464 | 0 should_pass/language/supertraits_with_trait_methods | 352 | 352 | 0 should_pass/language/tuple_in_struct | 792 | 680 | 14.1414141414141 should_pass/language/impl_self_method | 304 | 304 | 0 should_pass/language/match_expressions_rest | 1888 | 1768 | 6.35593220338983 should_pass/language/tuple_types | 304 | 304 | 0 should_pass/language/impl_self_method_order | 304 | 304 | 0 should_pass/language/enum_if_let | 808 | 728 | 9.9009900990099 should_pass/language/match_expressions | 1120 | 872 | 22.1428571428571 should_pass/language/basic_predicate | 48 | 48 | 0 should_pass/language/new_allocator_test | 960 | 824 | 14.1666666666667 should_pass/language/op_precedence | 264 | 264 | 0 should_pass/language/enum_if_let_large_type | 672 | 672 | 0 should_pass/language/is_prime | 1280 | 1168 | 8.75 should_pass/language/method_unambiguous | 576 | 512 | 11.1111111111111 should_pass/language/match_expressions_structs | 392 | 392 | 0 should_pass/language/match_expressions_with_self | 480 | 416 | 13.3333333333333 should_pass/language/ref_mutable_fn_args_call | 296 | 296 | 0 should_pass/language/array_generics | 352 | 352 | 0 should_pass/language/smo | 1880 | 1880 | 0 should_pass/language/typeinfo_custom_callpath2 | 224 | 224 | 0 should_pass/language/where_clause_generic_traits | 1144 | 872 | 23.7762237762238 should_pass/language/mutable_arrays_enum | 344 | 344 | 0 should_pass/language/ref_mutable_fn_args_bool | 296 | 296 | 0 should_pass/language/supertraits | 8168 | 7224 | 11.5572967678746 should_pass/language/const_inits | 2592 | 1832 | 29.320987654321 should_pass/language/tuple_access | 424 | 424 | 0 should_pass/language/trait_method_generic_qualified | 392 | 392 | 0 should_pass/language/associated_type_parameter | 296 | 296 | 0 should_pass/language/tuple_single_element | 320 | 320 | 0 should_pass/language/bool_and_or | 328 | 328 | 0 should_pass/language/associated_type_fully_qualified | 1288 | 552 | 57.1428571428571 should_pass/language/associated_type_container | 2064 | 1872 | 9.30232558139535 should_pass/language/contract_caller_dynamic_address | 1760 | 1760 | 0 should_pass/language/module_dep_self | 24 | 24 | 0 should_pass/language/name_resolution_after_monomorphization | 320 | 320 | 0 should_pass/language/associated_type_container_in_library | 2064 | 1872 | 9.30232558139535 should_pass/language/type_alias | 3920 | 3768 | 3.87755102040816 should_pass/language/mutable_arrays_swap | 288 | 288 | 0 should_pass/language/break_and_continue_block_ret | 40 | 40 | 0 should_pass/language/main_returns_unit | 176 | 176 | 0 should_pass/language/unary_not_basic_2 | 272 | 272 | 0 should_pass/language/mutable_and_initd | 376 | 376 | 0 should_pass/language/method_type_args | 176 | 176 | 0 should_pass/language/raw_identifiers | 400 | 400 | 0 should_pass/language/mega_example | 10624 | 9712 | 8.58433734939759 should_pass/language/match_expressions_constants | 744 | 424 | 43.010752688172 should_pass/language/generic_structs | 568 | 568 | 0 should_pass/language/predicate_while_dep | 80 | 80 | 0 should_pass/language/unary_not_basic | 272 | 272 | 0 should_pass/language/b256_ops | 4312 | 3792 | 12.0593692022263 should_pass/language/const_decl_with_call_path | 528 | 488 | 7.57575757575758 should_pass/language/generic_where_in_impl_self2 | 464 | 464 | 0 should_pass/language/const_decl_literal | 288 | 288 | 0 should_pass/language/reassignment_operators | 496 | 272 | 45.1612903225806 should_pass/language/attributes_warnings | 176 | 176 | 0 should_pass/language/mutable_arrays | 288 | 288 | 0 should_pass/language/match_expressions_unreachable_catch_all_last_arm | 2184 | 2184 | 0 should_pass/language/memcpy | 424 | 424 | 0 should_pass/language/deprecated | 24 | 24 | 0 should_pass/language/ret_string_in_struct | 344 | 344 | 0 should_pass/language/enum_destructuring | 344 | 344 | 0 should_pass/language/associated_type_and_associated_const | 296 | 296 | 0 should_pass/language/associated_type_method | 296 | 296 | 0 should_pass/language/implicit_casting | 288 | 288 | 0 should_pass/language/where_clause_enums | 768 | 696 | 9.375 should_pass/language/valid_impurity | 1024 | 960 | 6.25 should_pass/language/contract_caller_as_ret | 960 | 960 | 0 should_pass/language/associated_type_ascription | 296 | 296 | 0 should_pass/language/match_expressions_inside_generic_functions | 816 | 488 | 40.1960784313726 should_pass/language/str_slice | 360 | 360 | 0 should_pass/language/match_expressions_explicit_rets | 272 | 272 | 0 should_pass/language/binop_intrinsics | 1344 | 288 | 78.5714285714286 should_pass/language/match_expressions_mismatched | 344 | 344 | 0 should_pass/language/funcs_with_generic_types | 272 | 272 | 0 should_pass/language/trait_import_with_star | 184 | 184 | 0 should_pass/language/match_expressions_unreachable_catch_all_middle_arm | 1840 | 1832 | 0.434782608695652 should_pass/language/if_let_no_side_effects | 496 | 432 | 12.9032258064516 should_pass/language/b256_bad_jumps | 272 | 272 | 0 should_pass/language/bitwise_not | 440 | 272 | 38.1818181818182 should_pass/language/dummy_method_issue | 448 | 448 | 0 should_pass/language/prelude_access2 | 176 | 176 | 0 should_pass/language/enum_in_fn_decl | 368 | 368 | 0 should_pass/language/enum_type_inference | 288 | 288 | 0 should_pass/language/size_of | 496 | 272 | 45.1612903225806 should_pass/language/associated_const_impl_self_order | 296 | 296 | 0 should_pass/language/const_decl_and_use_in_library | 288 | 288 | 0 should_pass/language/typeinfo_custom_callpath | 224 | 224 | 0 should_pass/language/struct_init_reorder | 280 | 280 | 0 should_pass/language/tuple_desugaring | 360 | 360 | 0 should_pass/language/match_expressions_simple | 432 | 400 | 7.40740740740741 should_pass/language/inline_if_expr_const | 176 | 176 | 0 should_pass/language/associated_const_impl_multiple | 296 | 296 | 0 should_pass/language/enum_variant_imports | 472 | 392 | 16.9491525423729 should_pass/language/if_elseif_enum | 720 | 720 | 0 should_pass/language/where_clause_impls | 736 | 560 | 23.9130434782609 should_pass/language/generic_tuple_trait | 912 | 808 | 11.4035087719298 should_pass/language/mutable_arrays_nested | 272 | 272 | 0 should_pass/language/generic_traits | 1488 | 1416 | 4.83870967741936 should_pass/language/associated_const_impl | 296 | 296 | 0 should_pass/language/modulo_uint_test | 536 | 272 | 49.2537313432836 should_pass/language/implicit_return | 288 | 288 | 0 should_pass/language/fqp_in_lib | 296 | 296 | 0 should_pass/language/retd_b256 | 360 | 360 | 0 should_pass/language/generic_transpose | 928 | 864 | 6.89655172413793 should_pass/language/complex_cfg | 912 | 912 | 0 should_pass/language/struct_field_access | 280 | 280 | 0 should_pass/language/redundant_return | 272 | 272 | 0 should_pass/language/asm_without_return | 184 | 184 | 0 should_pass/language/associated_const_abi_multiple | 296 | 296 | 0 should_pass/language/while_loops | 624 | 552 | 11.5384615384615 should_pass/language/same_const_name | 848 | 248 | 70.7547169811321 should_pass/language/self_impl_reassignment | 1040 | 960 | 7.69230769230769 should_pass/language/reassignment_rhs_lhs_evaluation_order | 1240 | 872 | 29.6774193548387 should_pass/language/associated_const_trait_const | 272 | 272 | 0 should_pass/language/match_expressions_enums | 3728 | 3488 | 6.43776824034335 should_pass/language/smo_opcode | 352 | 352 | 0 should_pass/language/import_trailing_comma | 280 | 280 | 0 should_pass/language/enum_instantiation | 4368 | 3744 | 14.2857142857143 should_pass/language/trait_method_ascription_disambiguate | 392 | 392 | 0 should_pass/language/eq_and_neq | 2648 | 2008 | 24.1691842900302 should_pass/language/tuple_indexing | 296 | 296 | 0 should_pass/language/ref_mutable_fn_args_struct | 288 | 288 | 0 should_pass/language/revert_in_first_if_branch | 48 | 48 | 0 should_pass/language/ref_mutable_arrays | 288 | 288 | 0 should_pass/language/nested_structs | 1416 | 1240 | 12.4293785310734 should_pass/language/typeinfo_custom_callpath_with_import | 240 | 240 | 0 should_pass/language/multi_impl_self | 288 | 288 | 0 should_pass/language/generic_struct_instantiation | 272 | 272 | 0 should_pass/language/generic_trait_constraints | 1264 | 1064 | 15.8227848101266 should_pass/language/primitive_type_argument | 288 | 288 | 0 should_pass/language/fix_opcode_bug | 288 | 288 | 0 should_pass/language/arg_demotion_inline | 1152 | 1152 | 0 should_pass/language/ret_small_string | 304 | 304 | 0 should_pass/language/doc_comments | 952 | 952 | 0 should_pass/language/match_expressions_empty_enums | 288 | 288 | 0 should_pass/language/const_decl_in_library | 312 | 304 | 2.56410256410256 should_pass/language/generics_in_contract | 4688 | 3608 | 23.037542662116 should_pass/language/if_implicit_unit | 176 | 176 | 0 should_pass/language/impure_ifs | 1312 | 1080 | 17.6829268292683 should_pass/language/break_and_continue | 960 | 888 | 7.5 should_pass/language/ref_mutable_fn_args_u32 | 320 | 320 | 0 should_pass/storage_into | 2256 | 1704 | 24.468085106383 should_pass/resolve_local_items_that_shadow_imports | 320 | 320 | 0 should_pass/break_in_strange_positions | 1184 | 768 | 35.1351351351351 should_pass/multiple_supertraits_for_abis | 2048 | 1864 | 8.984375 should_pass/continue_in_strange_positions | 1472 | 1344 | 8.69565217391304 should_pass/supertraits_for_abis_diamond | 2072 | 1888 | 8.88030888030888 should_pass/superabi_diamond | 2064 | 1880 | 8.91472868217054 should_pass/supertraits_via_self | 160 | 160 | 0 should_pass/supertraits_for_abis | 1800 | 1616 | 10.2222222222222 should_pass/dca/alias_type_ascription | 176 | 176 | 0 should_pass/dca/alias_type_ascription_generic | 176 | 176 | 0 should_pass/dca/constant_decl_expr | 288 | 288 | 0 should_pass/dca/impl_unused_fn | 296 | 296 | 0 should_pass/dca/log_stdlib | 752 | 752 | 0 should_pass/dca/unused_trait | 176 | 176 | 0 should_pass/dca/impl_self_alias | 176 | 176 | 0 should_pass/dca/impl_trait_single | 272 | 272 | 0 should_pass/dca/trait_method | 176 | 176 | 0 should_pass/dca/unused_free_fn | 176 | 176 | 0 should_pass/dca/unused_variable_in_free_fn | 176 | 176 | 0 should_pass/dca/revert | 32 | 32 | 0 should_pass/dca/unused_variable | 176 | 176 | 0 should_pass/dca/impl_trait_multiple | 272 | 272 | 0 should_pass/dca/contract/superabi_contract_calls | 2648 | 1872 | 29.3051359516616 should_pass/dca/contract/unused_struct_field | 1216 | 1216 | 0 should_pass/dca/contract/unused_struct_field_enum | 1472 | 1472 | 0 should_pass/dca/contract/abi_fn_params | 1712 | 1440 | 15.8878504672897 should_pass/dca/contract/unused_struct_field_array | 1296 | 1296 | 0 should_pass/dca/contract/unused_struct_field_tuple | 1216 | 1216 | 0 should_pass/dca/unused_struct | 176 | 176 | 0 should_pass/dca/func_param | 176 | 176 | 0 should_pass/dca/alias_unused | 176 | 176 | 0 should_pass/dca/multiple_fns_same_name | 176 | 176 | 0 should_pass/dca/allow_dead_code | 176 | 176 | 0 should_pass/dca/trait_method_neq | 368 | 368 | 0 should_pass/dca/all_paths_return | 272 | 272 | 0 should_pass/dca/unused_fields | 272 | 272 | 0 should_pass/dca/impl_self_alias2 | 176 | 176 | 0 should_pass/dca/alias_lib | 232 | 232 | 0 should_pass/dca/multiple_enums_same_name | 176 | 176 | 0 should_pass/dca/generic_fn_trait_constraint | 176 | 176 | 0 should_pass/dca/library/fn_params_impl | 24 | 24 | 0 should_pass/dca/library/fn_params_free | 24 | 24 | 0 should_pass/dca/library/unused_priv_free_fn | 24 | 24 | 0 should_pass/dca/library/unused_pub_free_fn | 24 | 24 | 0 should_pass/dca/library/fn_params_trait | 24 | 24 | 0 should_pass/dca/reassignment_lhs | 200 | 200 | 0 should_pass/dca/constant_while | 176 | 176 | 0 should_pass/dca/constant_struct | 288 | 288 | 0 should_pass/dca/unused_enum | 176 | 176 | 0 should_pass/dca/impl_self | 176 | 176 | 0 should_pass/dca/log_intrinsic | 752 | 752 | 0 should_pass/dca/struct_field_no_warning | 296 | 296 | 0 should_pass/dca/trait_method_lib | 24 | 24 | 0 should_pass/supertraits_for_abis_ownable | 9968 | 8184 | 17.8972712680578 should_pass/return_into | 1352 | 880 | 34.9112426035503 should_pass/unit_tests/script_multi_test | 728 | 728 | 0 should_pass/unit_tests/nested_libs | 1248 | 1248 | 0 should_pass/unit_tests/contract_multi_test | 4480 | 4480 | 0 should_pass/unit_tests/script-contract-calls | 1424 | 1424 | 0 should_pass/unit_tests/lib_single_test | 112 | 112 | 0 should_pass/unit_tests/aggr_indexing | 7728 | 7728 | 0 should_pass/unit_tests/log_decode | 1048 | 1048 | 0 should_pass/unit_tests/workspace_test | 728 | 728 | 0 should_pass/unit_tests/predicate_with_nested_libs | 608 | 608 | 0 should_pass/unit_tests/script_with_nested_libs | 1376 | 1376 | 0 should_pass/unit_tests/should_revert | 160 | 160 | 0 should_pass/unit_tests/contract_with_nested_libs | 2480 | 2480 | 0 should_pass/unit_tests/stack_indexing_overflow | 5096 | 5096 | 0 should_pass/unit_tests/lib_multi_test | 1080 | 1080 | 0 should_pass/unit_tests/contract-multi-contract-calls | 1424 | 1424 | 0 should_pass/unit_tests/predicate_multi_test | 264 | 264 | 0 should_pass/unit_tests/regalloc_spill | 672 | 672 | 0 should_pass/blanket_impl | 288 | 288 | 0 should_pass/non_payable_implicit_zero_coins | 1864 | 1864 | 0 should_pass/test_abis/abi_impl_methods_in_json_abi | 1576 | 1392 | 11.6751269035533 should_pass/test_abis/abi_impl_methods_callable | 2856 | 2856 | 0 should_pass/static_analysis/cei_pattern_violation_in_struct | 4216 | 2816 | 33.2068311195446 should_pass/static_analysis/cei_pattern_violation | 3688 | 2520 | 31.6702819956616 should_pass/static_analysis/cei_pattern_violation_in_match_statement-1 | 4696 | 3168 | 32.5383304940375 should_pass/static_analysis/cei_pattern_violation_in_if_statement-2 | 4216 | 2816 | 33.2068311195446 should_pass/static_analysis/cei_pattern_violation_in_while_loop-1 | 4048 | 2648 | 34.5849802371541 should_pass/static_analysis/cei_pattern_violation_in_while_loop-3 | 4048 | 2648 | 34.5849802371541 should_pass/static_analysis/cei_pattern_violation_storage_var_read | 4480 | 3000 | 33.0357142857143 should_pass/static_analysis/cei_pattern_violation_in_codeblocks_other_than_in_functions | 4216 | 2816 | 33.2068311195446 should_pass/static_analysis/cei_pattern_violation_in_func_app-3 | 4216 | 2816 | 33.2068311195446 should_pass/static_analysis/cei_pattern_violation_in_func_app-1 | 4216 | 2816 | 33.2068311195446 should_pass/static_analysis/storage_annotations_unused_write | 944 | 944 | 0 should_pass/static_analysis/cei_pattern_violation_in_asm_block_smo | 3000 | 2168 | 27.7333333333333 should_pass/static_analysis/cei_pattern_violation_in_asm_block | 3024 | 2192 | 27.5132275132275 should_pass/static_analysis/cei_pattern_violation_in_intrinsic_call | 4216 | 2816 | 33.2068311195446 should_pass/static_analysis/storage_annotations_unused_read | 944 | 944 | 0 should_pass/static_analysis/cei_pattern_violation_storage_map_and_vec | 11136 | 7760 | 30.316091954023 should_pass/static_analysis/cei_pattern_violation_in_asm_block_tro | 4544 | 3328 | 26.7605633802817 should_pass/static_analysis/cei_pattern_violation_in_while_loop-2 | 4048 | 2648 | 34.5849802371541 should_pass/static_analysis/cei_pattern_violation_smo_intrinsic | 3176 | 2256 | 28.9672544080605 should_pass/static_analysis/storage_annotations_unused_read_and_write | 944 | 944 | 0 should_pass/static_analysis/cei_pattern_violation_in_standalone_function | 3752 | 2520 | 32.8358208955224 should_pass/static_analysis/cei_pattern_violation_in_asm_block_read | 3272 | 2352 | 28.1173594132029 should_pass/static_analysis/cei_pattern_violation_in_while_loop-4 | 4048 | 2648 | 34.5849802371541 should_pass/static_analysis/cei_pattern_violation_in_asm_block_tr | 4544 | 3328 | 26.7605633802817 should_pass/static_analysis/cei_pattern_violation_in_tuple | 4216 | 2816 | 33.2068311195446 should_pass/static_analysis/cei_pattern_violation_in_asm_block_bal | 2976 | 2152 | 27.6881720430107 should_pass/static_analysis/cei_pattern_violation_more_complex_logic | 21008 | 17000 | 19.0784463061691 should_pass/static_analysis/cei_pattern_violation_storage_struct_read | 4280 | 2760 | 35.5140186915888 should_pass/static_analysis/cei_pattern_violation_storage_var_update | 3952 | 2672 | 32.3886639676113 should_pass/static_analysis/cei_pattern_violation_in_if_statement-1 | 4240 | 2840 | 33.0188679245283 should_pass/static_analysis/cei_pattern_violation_in_func_app-2 | 4216 | 2816 | 33.2068311195446 should_pass/superabi | 1576 | 1392 | 11.6751269035533 should_pass/non_payable_zero_coins_let_binding | 1864 | 1864 | 0 should_pass/superabi_diamond_impl | 2064 | 1880 | 8.91472868217054 </details>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
compiler: ir
IRgen and sway-ir including optimization passes
compiler: optimization
IR Optimization Passes
After we moved the function deduplication pass to be run prior to inlining, there were some code size regressions. See if we can recover from those by tuning the inliner.
Reference: #6024
The text was updated successfully, but these errors were encountered: