Skip to content

Conversation

vaivaswatha
Copy link
Contributor

Description

This PR introduces a value-numbering based CSE pass. A reference to the algorithm used is mentioned as a comment in cse.rs.

@vaivaswatha vaivaswatha self-assigned this Aug 14, 2024
@vaivaswatha
Copy link
Contributor Author

The effect of this optimization is quite minimal

%reduction after CSE
test before after %reduction
should_pass/return_in_strange_positions 408 400 1.96078431372549
should_pass/payable_non_zero_coins 2088 2072 0.766283524904214
should_pass/superabi_contract_calls 4448 4448 0
should_pass/superabi_supertrait_same_methods 3432 3432 0
should_pass/stdlib/vec 113448 113592 -0.126930399830759
should_pass/stdlib/alloc_test 928 896 3.44827586206897
should_pass/stdlib/vec_swap 25424 25504 -0.314663310258024
should_pass/stdlib/intrinsics 392 392 0
should_pass/stdlib/ge_test 672 664 1.19047619047619
should_pass/stdlib/assert_ne_revert 816 808 0.980392156862745
should_pass/stdlib/assert_eq 6720 6704 0.238095238095238
should_pass/stdlib/u128_log_test 4760 4768 -0.168067226890756
should_pass/stdlib/u128_root_test 4568 4568 0
should_pass/stdlib/raw_ptr 4912 4912 0
should_pass/stdlib/identity_eq 2600 2600 0
should_pass/stdlib/eq_custom_type 800 800 0
should_pass/stdlib/contract_id_type 744 744 0
should_pass/stdlib/option_eq 12328 12312 0.129785853341986
should_pass/stdlib/option 24592 24568 0.0975927130774235
should_pass/stdlib/eq_generic 256 256 0
should_pass/stdlib/u128_div_test 2864 2872 -0.279329608938547
should_pass/stdlib/generic_empty_struct_with_constraint 256 256 0
should_pass/stdlib/u128_test 6672 6672 0
should_pass/stdlib/assert_test 392 392 0
should_pass/stdlib/result 9176 9152 0.2615518744551
should_pass/stdlib/contract_id_test 752 744 1.06382978723404
should_pass/stdlib/assert_ne 6320 6312 0.126582278481013
should_pass/stdlib/address_test 4464 4456 0.17921146953405
should_pass/stdlib/storage_vec_insert 9232 9232 0
should_pass/stdlib/block_height 440 432 1.81818181818182
should_pass/stdlib/u128_mul_test 1560 1568 -0.512820512820513
should_pass/stdlib/if_type_revert 376 368 2.12765957446808
should_pass/stdlib/b512_test 3736 3736 0
should_pass/stdlib/vec_byte_remove 2032 2032 0
should_pass/stdlib/sha256 2400 2400 0
should_pass/stdlib/assert_eq_revert 816 808 0.980392156862745
should_pass/stdlib/chess 1688 1680 0.4739336492891
should_pass/stdlib/require 1328 1312 1.20481927710843
should_pass/stdlib/b512_struct_alignment 896 888 0.892857142857143
should_pass/stdlib/iterator 2792 2792 0
should_pass/stdlib/raw_slice 1232 1232 0
should_pass/test_contracts/nested_struct_args_contract 1616 1608 0.495049504950495
should_pass/test_contracts/abi_with_generic_types 5264 5248 0.303951367781155
should_pass/test_contracts/basic_storage 37552 37536 0.0426075841499787
should_pass/test_contracts/storage_access_contract 34720 34672 0.138248847926267
should_pass/test_contracts/return_struct 3848 3840 0.207900207900208
should_pass/test_contracts/array_of_structs_contract 4160 4144 0.384615384615385
should_pass/test_contracts/auth_testing_contract 1280 1272 0.625
should_pass/test_contracts/issue_1512_repro 2824 2816 0.28328611898017
should_pass/test_contracts/abi_with_same_name_types 1680 1672 0.476190476190476
should_pass/test_contracts/context_testing_contract 4888 4872 0.327332242225859
should_pass/test_contracts/storage_namespace 35688 35680 0.0224164985429276
should_pass/test_contracts/increment_contract 4208 4200 0.190114068441065
should_pass/test_contracts/multiple_impl 1104 1096 0.72463768115942
should_pass/test_contracts/abi_with_tuples_contract 2816 2808 0.284090909090909
should_pass/test_contracts/contract_with_type_aliases 4832 4808 0.496688741721854
should_pass/test_contracts/test_fuel_coin_contract 3616 3616 0
should_pass/test_contracts/storage_enum_contract 19184 19176 0.0417014178482068
should_pass/test_contracts/balance_test_contract 1280 1272 0.625
should_pass/evm/evm_basic 256 256 0
should_pass/blanket_impl_u16 408 400 1.96078431372549
should_pass/empty_fields_in_storage_struct 30456 30456 0
should_pass/forc/dependency_package_field 400 392 2
should_pass/forc/workspace_building 24 24 0
Bytecode size: 216     #DIV/0!
Bytecode size: 256     #DIV/0!
should_pass/forc/parent_pkg_manifest/contract_a 1272 1272 0
should_pass/forc/dependency_patching 400 392 2
should_pass/forc/contract_dependencies/contract_c 1272 1272 0
should_pass/forc/contract_dependencies/contract_b 1272 1272 0
should_pass/forc/contract_dependencies/contract_a 960 960 0
should_pass/conditional_compilation/run 408 400 1.96078431372549
should_pass/language/where_clause_functions 2048 2032 0.78125
should_pass/language/basic_func_decl 392 392 0
should_pass/language/associated_const_trait_impl_method 424 416 1.88679245283019
should_pass/language/left_to_right_func_args_evaluation 424 424 0
should_pass/language/out_of_order_decl 400 400 0
should_pass/language/where_clause_traits 392 392 0
should_pass/language/references/reassigning_via_references_passed_and_returned_to_and_from_functions 46384 46328 0.120731286650569
should_pass/language/references/reassigning_via_references_in_aggregates 5184 5176 0.154320987654321
should_pass/language/references/referencing_function_parameters 4208 4176 0.760456273764259
should_pass/language/references/referencing_expressions 8080 8024 0.693069306930693
should_pass/language/references/references_and_type_aliases 848 840 0.943396226415094
should_pass/language/references/references_in_asm_blocks 2272 2264 0.352112676056338
should_pass/language/references/mutability_of_references 1024 984 3.90625
should_pass/language/references/dereferencing_operator_dot_on_tuples 149600 149592 0.0053475935828877
should_pass/language/references/passing_and_returning_references_to_and_from_functions 16968 16960 0.0471475719000472
should_pass/language/references/type_unification_of_references 3544 3536 0.225733634311512
should_pass/language/references/dereferencing_control_flow_expressions 1312 1304 0.609756097560976
should_pass/language/references/referencing_parts_of_aggregates 6752 6744 0.118483412322275
should_pass/language/references/dereferencing_operator_index 101392 101384 0.00789016884961338
should_pass/language/references/dereferencing_operator_star 181384 181376 0.0044105323512548
should_pass/language/references/reassigning_via_references_to_values 15048 15040 0.0531632110579479
should_pass/language/references/referencing_references 1216 1208 0.657894736842105
should_pass/language/references/references_in_aggregates 4000 4000 0
should_pass/language/references/referencing_control_flow_expressions 912 904 0.87719298245614
should_pass/language/references/references_and_generics 3896 3944 -1.23203285420945
should_pass/language/references/reassigning_via_references_to_expressions 40432 40296 0.336367233874159
should_pass/language/references/dereferencing_operator_dot_on_structs 149600 149592 0.0053475935828877
should_pass/language/references/impl_reference_types 7928 7752 2.21997981836529
should_pass/language/references/referencing_local_vars_and_values 38944 38936 0.0205423171733772
should_pass/language/integer_type_inference 1624 1624 0
should_pass/language/numeric_constants 2784 2752 1.14942528735632
should_pass/language/mutable_arrays_struct 408 400 1.96078431372549
should_pass/language/same_const_name_lib 24 24 0
should_pass/language/associated_type_iterator 2160 2152 0.37037037037037
should_pass/language/match_expressions_unreachable_last_arm 3160 3160 0
should_pass/language/multi_item_import 392 392 0
should_pass/language/ref_mutable_arrays_inline 408 400 1.96078431372549
should_pass/language/u256/u256_abi 896 888 0.892857142857143
should_pass/language/u256/u256_operators 5792 5792 0
should_pass/language/module_dep 24 24 0
should_pass/language/generic_inside_generic 496 488 1.61290322580645
should_pass/language/associated_const_trait_method 424 416 1.88679245283019
should_pass/language/struct_instantiation 2272 2264 0.352112676056338
should_pass/language/module_dep_multiple 24 24 0
should_pass/language/method_indirect_inference 672 672 0
should_pass/language/where_clause_generic_tuple 408 400 1.96078431372549
should_pass/language/generic_impl_self 2672 2664 0.29940119760479
should_pass/language/retd_struct 1008 984 2.38095238095238
should_pass/language/fallback_only 2000 2000 0
should_pass/language/generic_impl_self_where 2448 2440 0.326797385620915
should_pass/language/chained_if_let 504 496 1.58730158730159
should_pass/language/test_multiple_attributes 24 24 0
should_pass/language/generic_type_inference 3608 3632 -0.665188470066519
should_pass/language/blanket_trait 392 392 0
should_pass/language/retd_zero_len_array 264 264 0
should_pass/language/asm_expr_basic 536 528 1.49253731343284
should_pass/language/associated_const_impl_local_same_name 424 416 1.88679245283019
should_pass/language/unit_type_variants 832 824 0.961538461538462
should_pass/language/generic_struct 408 408 0
should_pass/language/binary_and_hex_literals 392 392 0
should_pass/language/trait_method_qualified 392 392 0
should_pass/language/ops 496 488 1.61290322580645
should_pass/language/duplicated_storage_keys 216 216 0
should_pass/language/type_alias_from_dependency 24 24 0
should_pass/language/generic_result_method 744 736 1.0752688172043
should_pass/language/tuple_field_reassignment 512 504 1.5625
should_pass/language/associated_const_impl_self 424 416 1.88679245283019
should_pass/language/predicate_while 120 120 0
should_pass/language/retd_small_array 544 536 1.47058823529412
should_pass/language/insert_element_reg_reuse 2688 2688 0
should_pass/language/args_on_stack 1984 1976 0.403225806451613
should_pass/language/where_clause_methods 2104 2088 0.760456273764259
should_pass/language/tuple_trait 480 472 1.66666666666667
should_pass/language/ref_mutable_fn_args_struct_assign 408 400 1.96078431372549
should_pass/language/for_loops 4752 4776 -0.505050505050505
should_pass/language/zero_field_types 408 400 1.96078431372549
should_pass/language/method_on_empty_struct 400 392 2
should_pass/language/largeint_sroa 864 864 0
should_pass/language/nested_while_and_if 488 488 0
should_pass/language/generic_functions 392 392 0
should_pass/language/configurable_consts 7752 7752 0
should_pass/language/associated_const_trait 688 688 0
should_pass/language/eq_intrinsic 408 400 1.96078431372549
should_pass/language/match_expressions_unreachable_middle_arm 3560 3560 0
should_pass/language/use_full_path_names 424 416 1.88679245283019
should_pass/language/struct_field_reassignment 400 392 2
should_pass/language/builtin_type_method_call 408 400 1.96078431372549
should_pass/language/far_jumps/single_blob 1049008 1049000 0.000762625261199152
should_pass/language/far_jumps/many_blobs 11640608 11640600 6.87249325808411E-05
should_pass/language/gtf_intrinsic 1120 1112 0.714285714285714
should_pass/language/diverging_exprs 1200 1176 2
should_pass/language/mut_ref_empty_type 832 824 0.961538461538462
should_pass/language/nested_struct_destructuring 400 392 2
should_pass/language/trait_nested 1088 1072 1.47058823529412
should_pass/language/many_stack_variables 1024 1016 0.78125
should_pass/language/abort_control_flow_good 384 376 2.08333333333333
should_pass/language/test_attribute 24 24 0
should_pass/language/use_absolute_path 400 392 2
should_pass/language/import_with_different_callpaths 2816 2832 -0.568181818181818
should_pass/language/raw_ptr/vec_ret 1232 1240 -0.649350649350649
should_pass/language/raw_ptr/raw_ptr_ret ...     #DIV/0!
should_pass/language/where_clause_structs 672 664 1.19047619047619
should_pass/language/aliased_imports 424 416 1.88679245283019
should_pass/language/prelude_access 256 256 0
should_pass/language/slice/slice_script 688 688 0
should_pass/language/slice/slice_intrinsics 7312 7288 0.328227571115974
should_pass/language/slice/slice_contract 4504 4504 0
should_pass/language/match_expressions_nested 1784 1776 0.448430493273543
should_pass/language/b256_bitwise_ops 6880 6880 0
should_pass/language/empty_method_initializer 1136 1128 0.704225352112676
should_pass/language/main_args/main_args_ref 512 504 1.5625
should_pass/language/main_args/main_args_various_types 2720 2680 1.47058823529412
should_pass/language/main_args/main_args_empty 408 400 1.96078431372549
should_pass/language/main_args/main_args_two_u64 592 584 1.35135135135135
should_pass/language/main_args/main_args_generics 1344 1320 1.78571428571429
should_pass/language/main_args/main_args_one_u64 488 480 1.63934426229508
should_pass/language/main_args/main_args_ref_ref 688 680 1.16279069767442
should_pass/language/main_args/main_args_ref_copy 624 616 1.28205128205128
should_pass/language/enum_padding 2072 2048 1.15830115830116
should_pass/language/associated_const_abi 2936 2936 0
should_pass/language/local_impl_for_ord 392 392 0
should_pass/language/associated_const_trait_default 1048 1048 0
should_pass/language/enum_init_fn_call 656 648 1.21951219512195
should_pass/language/diagnose_unknown_annotations 1616 1616 0
should_pass/language/import_method_from_other_file 768 760 1.04166666666667
should_pass/language/match_expressions_or 9264 9256 0.0863557858376511
should_pass/language/struct_destructuring 512 504 1.5625
should_pass/language/import_star_name_clash 2472 2464 0.323624595469256
should_pass/language/mutable_arrays_multiple_nested 400 392 2
should_pass/language/logging 4088 4064 0.587084148727984
should_pass/language/reexport/visibility 1128 1120 0.709219858156028
should_pass/language/reexport/multiple_imports_of_same_reexport 1864 1856 0.429184549356223
should_pass/language/reexport/simple_glob_import 1128 1120 0.709219858156028
should_pass/language/reexport/aliases 1392 1384 0.574712643678161
should_pass/language/reexport/shadowing_in_reexporting_module 1856 1848 0.431034482758621
should_pass/language/reexport/reexport_paths_external_lib 24 24 0
should_pass/language/reexport/reexport_paths 856 848 0.934579439252336
should_pass/language/reexport/simple_item_import 1128 1120 0.709219858156028
should_pass/language/asm_empty_block 24 24 0
should_pass/language/is_reference_type 392 392 0
should_pass/language/non_literal_const_decl 408 400 1.96078431372549
should_pass/language/array_basics 864 864 0
should_pass/language/generic_where_in_impl_self 576 576 0
should_pass/language/supertraits_with_trait_methods 472 472 0
should_pass/language/tuple_in_struct 728 720 1.0989010989011
should_pass/language/impl_self_method 424 416 1.88679245283019
should_pass/language/match_expressions_rest 1808 1800 0.442477876106195
should_pass/language/tuple_types 424 416 1.88679245283019
should_pass/language/impl_self_method_order 424 416 1.88679245283019
should_pass/language/enum_if_let 816 808 0.980392156862745
should_pass/language/basic_predicate 88 88 0
should_pass/language/new_allocator_test 864 856 0.925925925925926
should_pass/language/op_precedence 392 392 0
should_pass/language/enum_if_let_large_type 768 760 1.04166666666667
should_pass/language/is_prime 1192 1192 0
should_pass/language/method_unambiguous 656 648 1.21951219512195
should_pass/language/match_expressions_structs 488 480 1.63934426229508
should_pass/language/match_expressions_with_self 544 536 1.47058823529412
should_pass/language/ref_mutable_fn_args_call 408 400 1.96078431372549
should_pass/language/array_generics 472 464 1.69491525423729
should_pass/language/callpath_local_shadowing 256 256 0
should_pass/language/smo 2232 2224 0.3584229390681
should_pass/language/typeinfo_custom_callpath2 296 296 0
should_pass/language/where_clause_generic_traits 960 952 0.833333333333333
should_pass/language/mutable_arrays_enum 464 456 1.72413793103448
should_pass/language/ref_mutable_fn_args_bool 392 392 0
should_pass/language/supertraits 6128 6128 0
should_pass/language/const_inits 1936 1928 0.413223140495868
should_pass/language/tuple_access 528 520 1.51515151515152
should_pass/language/trait_method_generic_qualified 512 504 1.5625
should_pass/language/associated_type_parameter 424 416 1.88679245283019
should_pass/language/tuple_single_element 440 432 1.81818181818182
should_pass/language/bool_and_or 424 416 1.88679245283019
should_pass/language/associated_type_fully_qualified 728 720 1.0989010989011
should_pass/language/associated_type_container 2072 2064 0.386100386100386
should_pass/language/contract_caller_dynamic_address 2264 2248 0.706713780918728
should_pass/language/module_dep_self 24 24 0
should_pass/language/name_resolution_after_monomorphization 424 416 1.88679245283019
should_pass/language/associated_type_container_in_library 2072 2064 0.386100386100386
should_pass/language/type_alias 4016 3976 0.99601593625498
should_pass/language/mutable_arrays_swap 408 400 1.96078431372549
should_pass/language/break_and_continue_block_ret 232 232 0
should_pass/language/main_returns_unit 256 256 0
should_pass/language/unary_not_basic_2 392 392 0
should_pass/language/mutable_and_initd 504 504 0
should_pass/language/method_type_args 256 256 0
should_pass/language/raw_identifiers 520 512 1.53846153846154
should_pass/language/mega_example 11160 11144 0.14336917562724
should_pass/language/match_expressions_constants 2328 2320 0.343642611683849
should_pass/language/generic_structs 664 664 0
should_pass/language/predicate_while_dep 120 120 0
should_pass/language/unary_not_basic 392 392 0
should_pass/language/b256_ops 4120 4120 0
should_pass/language/generic_where_in_impl_self2 576 576 0
should_pass/language/reassignment_operators 400 392 2
should_pass/language/shadowing/shadowed_glob_imports 528 520 1.51515151515152
should_pass/language/attributes_warnings 256 256 0
should_pass/language/mutable_arrays 408 400 1.96078431372549
should_pass/language/match_expressions_unreachable_catch_all_last_arm 2488 2488 0
should_pass/language/memcpy 552 544 1.44927536231884
should_pass/language/deprecated 24 24 0
should_pass/language/ret_string_in_struct 544 536 1.47058823529412
should_pass/language/enum_destructuring 464 456 1.72413793103448
should_pass/language/associated_type_and_associated_const 424 416 1.88679245283019
should_pass/language/associated_type_method 424 416 1.88679245283019
should_pass/language/implicit_casting 408 400 1.96078431372549
should_pass/language/where_clause_enums 824 824 0
should_pass/language/valid_impurity 1216 1216 0
should_pass/language/contract_caller_as_ret 1272 1272 0
should_pass/language/associated_type_ascription 424 416 1.88679245283019
should_pass/language/match_expressions_inside_generic_functions 600 592 1.33333333333333
should_pass/language/match_expressions_explicit_rets 392 392 0
should_pass/language/binop_intrinsics 408 400 1.96078431372549
should_pass/language/match_expressions_mismatched 456 448 1.75438596491228
should_pass/language/funcs_with_generic_types 392 392 0
should_pass/language/trait_import_with_star 256 256 0
should_pass/language/match_expressions_unreachable_catch_all_middle_arm 2296 2296 0
should_pass/language/if_let_no_side_effects 496 488 1.61290322580645
should_pass/language/b256_bad_jumps 400 392 2
should_pass/language/bitwise_not 392 392 0
should_pass/language/dummy_method_issue 536 536 0
should_pass/language/prelude_access2 256 256 0
should_pass/language/enum_in_fn_decl 480 472 1.66666666666667
should_pass/language/enum_type_inference 408 400 1.96078431372549
should_pass/language/size_of 400 392 2
should_pass/language/const_decl_and_use_in_library 408 400 1.96078431372549
should_pass/language/typeinfo_custom_callpath 296 296 0
should_pass/language/struct_init_reorder 352 352 0
should_pass/language/tuple_desugaring 456 448 1.75438596491228
should_pass/language/match_expressions_simple 488 480 1.63934426229508
should_pass/language/inline_if_expr_const 256 256 0
should_pass/language/associated_const_impl_multiple 1040 1040 0
should_pass/language/enum_variant_imports 520 512 1.53846153846154
should_pass/language/if_elseif_enum 832 824 0.961538461538462
should_pass/language/where_clause_impls 664 656 1.20481927710843
should_pass/language/generic_tuple_trait 904 904 0
should_pass/language/mutable_arrays_nested 400 392 2
should_pass/language/generic_traits 1392 1384 0.574712643678161
should_pass/language/associated_const_impl 424 416 1.88679245283019
should_pass/language/match_expressions_all 2328 2296 1.3745704467354
should_pass/language/modulo_uint_test 392 392 0
should_pass/language/implicit_return 408 400 1.96078431372549
should_pass/language/fqp_in_lib 368 368 0
should_pass/language/retd_b256 568 560 1.40845070422535
should_pass/language/generic_transpose 984 984 0
should_pass/language/asm_uninitialized_register_shadows_item 448 448 0
should_pass/language/complex_cfg 1176 1168 0.680272108843537
should_pass/language/struct_field_access 408 400 1.96078431372549
should_pass/language/redundant_return 400 392 2
should_pass/language/asm_without_return 24 24 0
should_pass/language/associated_const_abi_multiple 2224 2224 0
should_pass/language/while_loops 656 648 1.21951219512195
should_pass/language/same_const_name 320 320 0
should_pass/language/self_impl_reassignment 1008 1008 0
should_pass/language/reassignment_rhs_lhs_evaluation_order 1016 1008 0.78740157480315
should_pass/language/match_expressions_enums 3408 3400 0.234741784037559
should_pass/language/smo_opcode 480 472 1.66666666666667
should_pass/language/import_trailing_comma 408 400 1.96078431372549
should_pass/language/enum_instantiation 3848 3840 0.207900207900208
should_pass/language/trait_method_ascription_disambiguate 512 504 1.5625
should_pass/language/eq_and_neq 2288 2280 0.34965034965035
should_pass/language/string_slice/string_slice_features 488 480 1.63934426229508
should_pass/language/string_slice/string_slice_script 768 768 0
should_pass/language/string_slice/string_slice_contract 4064 4064 0
should_pass/language/tuple_indexing 424 416 1.88679245283019
should_pass/language/ref_mutable_fn_args_struct 408 400 1.96078431372549
should_pass/language/revert_in_first_if_branch 240 240 0
should_pass/language/ref_mutable_arrays 408 400 1.96078431372549
should_pass/language/nested_structs 1176 1168 0.680272108843537
should_pass/language/typeinfo_custom_callpath_with_import 312 312 0
should_pass/language/multi_impl_self 408 400 1.96078431372549
should_pass/language/generic_struct_instantiation 400 392 2
should_pass/language/generic_trait_constraints 1224 1216 0.65359477124183
should_pass/language/primitive_type_argument 408 400 1.96078431372549
should_pass/language/fix_opcode_bug 408 400 1.96078431372549
should_pass/language/arg_demotion_inline 1472 1464 0.543478260869565
should_pass/language/ret_small_string 504 496 1.58730158730159
should_pass/language/doc_comments 1280 1272 0.625
should_pass/language/match_expressions_empty_enums 408 400 1.96078431372549
should_pass/language/const_decl_in_library 416 416 0
should_pass/language/generics_in_contract 3664 3664 0
should_pass/language/if_implicit_unit 256 256 0
should_pass/language/impure_ifs 1192 1184 0.671140939597315
should_pass/language/break_and_continue 968 968 0
should_pass/language/ref_mutable_fn_args_u32 424 416 1.88679245283019
should_pass/language/contract_implements_multiple_abis_with_same_methods 2208 2208 0
should_pass/storage_into 1976 1968 0.404858299595142
should_pass/resolve_local_items_that_shadow_imports 400 400 0
should_pass/break_in_strange_positions 888 880 0.900900900900901
should_pass/impl_self_dependency_order_conflict 560 560 0
should_pass/multiple_supertraits_for_abis 872 872 0
should_pass/continue_in_strange_positions 1448 1440 0.552486187845304
should_pass/supertraits_for_abis_diamond 664 664 0
should_pass/superabi_diamond 1224 1224 0
should_pass/supertraits_via_self 216 216 0
should_pass/supertraits_for_abis 944 944 0
should_pass/dca/alias_type_ascription 256 256 0
should_pass/dca/alias_type_ascription_generic 256 256 0
should_pass/dca/constant_decl_expr 408 400 1.96078431372549
should_pass/dca/impl_unused_fn 424 416 1.88679245283019
should_pass/dca/log_stdlib 936 928 0.854700854700855
should_pass/dca/unused_trait 256 256 0
should_pass/dca/impl_self_alias 256 256 0
should_pass/dca/impl_trait_single 400 392 2
should_pass/dca/trait_method 256 256 0
should_pass/dca/unused_free_fn 256 256 0
should_pass/dca/unused_variable_in_free_fn 256 256 0
should_pass/dca/revert 400 392 2
should_pass/dca/unused_variable 256 256 0
should_pass/dca/impl_trait_multiple 400 392 2
should_pass/dca/contract/superabi_contract_calls 2376 2360 0.673400673400673
should_pass/dca/contract/unused_struct_field 1488 1480 0.537634408602151
should_pass/dca/contract/unused_struct_field_enum 1800 1792 0.444444444444444
should_pass/dca/contract/abi_fn_params 1384 1384 0
should_pass/dca/contract/unused_struct_field_array 1568 1560 0.510204081632653
should_pass/dca/contract/unused_struct_field_tuple 1488 1480 0.537634408602151
should_pass/dca/unused_struct 256 256 0
should_pass/dca/func_param 256 256 0
should_pass/dca/alias_unused 256 256 0
should_pass/dca/multiple_fns_same_name 256 256 0
should_pass/dca/allow_dead_code 256 256 0
should_pass/dca/trait_method_neq 480 472 1.66666666666667
should_pass/dca/all_paths_return 400 392 2
should_pass/dca/unused_fields 400 392 2
should_pass/dca/impl_self_alias2 256 256 0
should_pass/dca/alias_lib 304 304 0
should_pass/dca/multiple_enums_same_name 256 256 0
should_pass/dca/generic_fn_trait_constraint 256 256 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 288 288 0
should_pass/dca/constant_while 256 256 0
should_pass/dca/constant_struct 408 400 1.96078431372549
should_pass/dca/unused_enum 256 256 0
should_pass/dca/impl_self 256 256 0
should_pass/dca/log_intrinsic 936 928 0.854700854700855
should_pass/dca/struct_field_no_warning 520 512 1.53846153846154
should_pass/dca/trait_method_lib 24 24 0
should_pass/supertraits_for_abis_ownable 4864 4864 0
should_pass/return_into 1112 1104 0.719424460431655
should_pass/unit_tests/script_multi_test 1048 1048 0
should_pass/unit_tests/nested_libs 1520 1520 0
should_pass/unit_tests/contract_multi_test 4424 4424 0
should_pass/unit_tests/memcpyopt 1456 1456 0
should_pass/unit_tests/script-contract-calls 1696 1696 0
should_pass/unit_tests/lib_single_test 88 88 0
should_pass/unit_tests/aggr_indexing 8088 8088 0
should_pass/unit_tests/log_decode 992 992 0
should_pass/unit_tests/workspace_test 1048 1048 0
should_pass/unit_tests/predicate_with_nested_libs 704 704 0
should_pass/unit_tests/script_with_nested_libs 1728 1728 0
should_pass/unit_tests/should_revert 160 160 0
should_pass/unit_tests/contract_with_nested_libs 2568 2568 0
should_pass/unit_tests/stack_indexing_overflow 5392 5392 0
should_pass/unit_tests/lib_multi_test 784 784 0
should_pass/unit_tests/contract-multi-contract-calls 1696 1696 0
should_pass/unit_tests/predicate_multi_test 288 288 0
should_pass/unit_tests/regalloc_spill 784 776 1.02040816326531
should_pass/blanket_impl 408 400 1.96078431372549
should_pass/non_payable_implicit_zero_coins 2440 2424 0.655737704918033
should_pass/test_abis/abi_impl_methods_in_json_abi 960 960 0
should_pass/test_abis/abi_impl_methods_callable 3496 3496 0
should_pass/static_analysis/cei_pattern_violation_in_struct 3328 3296 0.961538461538462
should_pass/static_analysis/cei_pattern_violation 3104 3072 1.03092783505155
should_pass/static_analysis/cei_pattern_violation_in_match_statement-1 3768 3752 0.424628450106157
should_pass/static_analysis/cei_pattern_violation_in_if_statement-2 3296 3264 0.970873786407767
should_pass/static_analysis/cei_pattern_violation_in_while_loop-1 3288 3256 0.97323600973236
should_pass/static_analysis/cei_pattern_violation_in_while_loop-3 3288 3256 0.97323600973236
should_pass/static_analysis/cei_pattern_violation_storage_var_read 3616 3600 0.442477876106195
should_pass/static_analysis/cei_pattern_violation_in_codeblocks_other_than_in_functions 3312 3280 0.966183574879227
should_pass/static_analysis/cei_pattern_violation_in_func_app-3 3296 3264 0.970873786407767
should_pass/static_analysis/cei_pattern_violation_in_func_app-1 3296 3264 0.970873786407767
should_pass/static_analysis/storage_annotations_unused_write 1272 1264 0.628930817610063
should_pass/static_analysis/cei_pattern_violation_in_asm_block_smo 2568 2552 0.623052959501558
should_pass/static_analysis/cei_pattern_violation_in_asm_block 2592 2576 0.617283950617284
should_pass/static_analysis/cei_pattern_violation_in_intrinsic_call 3296 3264 0.970873786407767
should_pass/static_analysis/storage_annotations_unused_read 1272 1264 0.628930817610063
should_pass/static_analysis/cei_pattern_violation_storage_map_and_vec 9584 9560 0.250417362270451
should_pass/static_analysis/cei_pattern_violation_in_asm_block_tro 4696 4680 0.340715502555366
should_pass/static_analysis/cei_pattern_violation_in_while_loop-2 3272 3240 0.97799511002445
should_pass/static_analysis/cei_pattern_violation_smo_intrinsic 2664 2648 0.600600600600601
should_pass/static_analysis/storage_annotations_unused_read_and_write 1272 1264 0.628930817610063
should_pass/static_analysis/cei_pattern_violation_in_standalone_function 3104 3072 1.03092783505155
should_pass/static_analysis/cei_pattern_violation_in_asm_block_read 2984 2952 1.07238605898123
should_pass/static_analysis/cei_pattern_violation_in_asm_block_mint_burn 3112 3088 0.77120822622108
should_pass/static_analysis/cei_pattern_violation_in_while_loop-4 3272 3240 0.97799511002445
should_pass/static_analysis/cei_pattern_violation_in_asm_block_tr 4696 4680 0.340715502555366
should_pass/static_analysis/cei_pattern_violation_in_tuple 3328 3296 0.961538461538462
should_pass/static_analysis/cei_pattern_violation_in_asm_block_bal 2544 2528 0.628930817610063
should_pass/static_analysis/cei_pattern_violation_more_complex_logic 18440 18424 0.086767895878525
should_pass/static_analysis/cei_pattern_violation_storage_struct_read 3344 3312 0.956937799043062
should_pass/static_analysis/cei_pattern_violation_storage_var_update 3184 3168 0.50251256281407
should_pass/static_analysis/cei_pattern_violation_in_if_statement-1 3320 3288 0.963855421686747
should_pass/static_analysis/cei_pattern_violation_in_func_app-2 3296 3264 0.970873786407767
should_pass/superabi 960 960 0
should_pass/superabi_supertrait_external_call 216 216 0
should_pass/non_payable_zero_coins_let_binding 2440 2424 0.655737704918033
should_pass/superabi_diamond_impl 1224 1224 0

@vaivaswatha vaivaswatha marked this pull request as ready for review August 19, 2024 03:50
@vaivaswatha vaivaswatha requested a review from a team as a code owner August 19, 2024 03:50
IGI-111
IGI-111 previously approved these changes Aug 21, 2024
@IGI-111 IGI-111 requested a review from a team August 21, 2024 05:56
IGI-111
IGI-111 previously approved these changes Aug 26, 2024
@IGI-111 IGI-111 requested a review from xunilrj August 26, 2024 12:13
@IGI-111 IGI-111 requested a review from a team September 2, 2024 13:42
@vaivaswatha vaivaswatha enabled auto-merge (squash) September 9, 2024 06:54
@vaivaswatha
Copy link
Contributor Author

Reminder to accept this PR ! @FuelLabs/sway-compiler

@vaivaswatha vaivaswatha merged commit e549ca5 into master Sep 23, 2024
36 checks passed
@vaivaswatha vaivaswatha deleted the vaivaswatha/cse branch September 23, 2024 08:48
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.

4 participants