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

Add function deduplication in debug mode, but considering metadata equality (debug info) #5977

Merged
merged 7 commits into from
May 10, 2024

Conversation

vaivaswatha
Copy link
Contributor

Closes #5890

@vaivaswatha vaivaswatha self-assigned this May 9, 2024
Copy link

github-actions bot commented May 9, 2024

Benchmark for 29d7d56

Click to view benchmark
Test Base PR %
code_action 5.5±0.10ms 5.5±0.03ms 0.00%
code_lens 288.4±7.92ns 294.1±8.24ns +1.98%
compile 6.8±0.12s 6.9±0.16s +1.47%
completion 5.0±0.10ms 4.9±0.06ms -2.00%
did_change_with_caching 6.2±0.06s 6.3±0.09s +1.61%
document_symbol 1047.5±25.29µs 948.4±10.05µs -9.46%
format 91.0±1.77ms 90.8±1.65ms -0.22%
goto_definition 359.4±7.39µs 351.4±7.34µs -2.23%
highlight 9.3±0.13ms 9.0±0.02ms -3.23%
hover 588.9±11.54µs 591.4±4.45µs +0.42%
idents_at_position 119.5±0.94µs 120.2±1.53µs +0.59%
inlay_hints 659.6±21.74µs 655.1±25.70µs -0.68%
on_enter 499.3±14.03ns 497.7±10.09ns -0.32%
parent_decl_at_position 3.8±0.10ms 3.7±0.02ms -2.63%
prepare_rename 366.7±5.21µs 348.9±6.63µs -4.85%
rename 9.8±0.14ms 9.6±0.20ms -2.04%
semantic_tokens 1049.5±9.77µs 1061.9±23.00µs +1.18%
token_at_position 350.1±2.78µs 347.8±2.41µs -0.66%
tokens_at_position 3.7±0.03ms 3.7±0.03ms 0.00%
tokens_for_file 430.0±2.74µs 422.7±2.75µs -1.70%
traverse 50.3±1.55ms 50.7±1.89ms +0.80%

Copy link

github-actions bot commented May 9, 2024

Benchmark for a083dd3

Click to view benchmark
Test Base PR %
code_action 5.7±0.22ms 5.6±0.22ms -1.75%
code_lens 292.5±8.13ns 291.9±6.23ns -0.21%
compile 6.8±0.09s 6.9±0.11s +1.47%
completion 5.1±0.14ms 5.1±0.16ms 0.00%
did_change_with_caching 6.3±0.05s 6.3±0.05s 0.00%
document_symbol 1002.4±37.07µs 975.2±24.86µs -2.71%
format 87.7±0.58ms 90.1±1.73ms +2.74%
goto_definition 352.2±6.58µs 349.8±12.10µs -0.68%
highlight 9.2±0.22ms 9.1±0.16ms -1.09%
hover 594.2±20.44µs 603.2±17.00µs +1.51%
idents_at_position 119.1±0.58µs 120.2±0.83µs +0.92%
inlay_hints 655.6±19.99µs 654.2±22.55µs -0.21%
on_enter 498.3±15.46ns 502.7±14.02ns +0.88%
parent_decl_at_position 3.7±0.05ms 3.7±0.05ms 0.00%
prepare_rename 343.4±7.81µs 349.2±18.70µs +1.69%
rename 10.2±0.44ms 9.6±0.21ms -5.88%
semantic_tokens 1062.6±15.50µs 1034.6±16.43µs -2.64%
token_at_position 346.4±3.29µs 347.3±4.73µs +0.26%
tokens_at_position 3.7±0.02ms 3.7±0.04ms 0.00%
tokens_for_file 416.6±2.71µs 419.3±3.56µs +0.65%
traverse 50.7±1.11ms 51.5±0.95ms +1.58%

@vaivaswatha vaivaswatha marked this pull request as ready for review May 9, 2024 08:52
Copy link
Contributor

@IGI-111 IGI-111 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lovely.
Can we also get numbers on the performance gain?

Copy link

github-actions bot commented May 9, 2024

Benchmark for 02a0a64

Click to view benchmark
Test Base PR %
code_action 5.5±0.02ms 5.5±0.10ms 0.00%
code_lens 301.7±10.09ns 287.6±11.53ns -4.67%
compile 6.7±0.08s 6.7±0.09s 0.00%
completion 5.0±0.02ms 5.0±0.02ms 0.00%
did_change_with_caching 6.2±0.07s 6.1±0.07s -1.61%
document_symbol 1009.5±39.60µs 1013.0±39.13µs +0.35%
format 87.4±1.06ms 87.3±0.69ms -0.11%
goto_definition 352.0±4.78µs 354.1±9.42µs +0.60%
highlight 9.1±0.14ms 9.0±0.22ms -1.10%
hover 588.4±11.31µs 589.4±7.05µs +0.17%
idents_at_position 133.6±5.82µs 120.7±1.02µs -9.66%
inlay_hints 656.3±20.40µs 715.7±5.48µs +9.05%
on_enter 503.6±13.86ns 498.6±8.20ns -0.99%
parent_decl_at_position 3.7±0.02ms 3.8±0.06ms +2.70%
prepare_rename 354.1±6.68µs 351.2±7.45µs -0.82%
rename 9.7±0.07ms 9.6±0.27ms -1.03%
semantic_tokens 1060.6±20.27µs 1055.8±21.99µs -0.45%
token_at_position 345.8±6.33µs 362.9±2.36µs +4.95%
tokens_at_position 3.7±0.03ms 3.7±0.03ms 0.00%
tokens_for_file 420.7±2.28µs 431.8±4.27µs +2.64%
traverse 50.3±1.64ms 50.6±1.18ms +0.60%

Copy link

github-actions bot commented May 9, 2024

Benchmark for 75aad8b

Click to view benchmark
Test Base PR %
code_action 5.3±0.06ms 5.3±0.01ms 0.00%
code_lens 294.4±5.71ns 292.7±11.36ns -0.58%
compile 3.9±0.05s 3.9±0.07s 0.00%
completion 4.7±0.08ms 4.7±0.05ms 0.00%
did_change_with_caching 3.4±0.04s 3.4±0.04s 0.00%
document_symbol 1012.1±35.05µs 1012.6±47.61µs +0.05%
format 91.1±1.16ms 89.8±0.59ms -1.43%
goto_definition 364.3±4.17µs 364.8±3.71µs +0.14%
highlight 9.0±0.15ms 9.0±0.06ms 0.00%
hover 489.0±6.41µs 485.9±6.04µs -0.63%
idents_at_position 122.6±0.57µs 122.2±1.22µs -0.33%
inlay_hints 658.5±22.14µs 662.1±10.91µs +0.55%
on_enter 487.2±14.83ns 485.8±14.72ns -0.29%
parent_decl_at_position 3.7±0.03ms 3.7±0.05ms 0.00%
prepare_rename 365.2±7.23µs 368.7±5.67µs +0.96%
rename 9.6±0.03ms 9.6±0.23ms 0.00%
semantic_tokens 999.0±26.11µs 1059.2±17.89µs +6.03%
token_at_position 356.2±2.80µs 360.1±2.35µs +1.09%
tokens_at_position 3.7±0.05ms 3.7±0.03ms 0.00%
tokens_for_file 424.2±1.79µs 433.5±2.55µs +2.19%
traverse 40.7±1.71ms 40.8±1.58ms +0.25%

@IGI-111 IGI-111 requested a review from a team May 9, 2024 22:27
Copy link

github-actions bot commented May 9, 2024

Benchmark for 3c5dda7

Click to view benchmark
Test Base PR %
code_action 5.6±0.21ms 5.7±0.30ms +1.79%
code_lens 290.1±7.74ns 291.4±4.92ns +0.45%
compile 3.6±0.06s 3.6±0.06s 0.00%
completion 4.9±0.39ms 4.9±0.30ms 0.00%
did_change_with_caching 3.0±0.07s 3.0±0.08s 0.00%
document_symbol 1002.3±50.81µs 1007.9±43.24µs +0.56%
format 92.6±1.42ms 92.0±1.35ms -0.65%
goto_definition 355.4±9.00µs 367.1±5.28µs +3.29%
highlight 9.3±0.37ms 9.2±0.27ms -1.08%
hover 473.6±3.72µs 491.4±6.87µs +3.76%
idents_at_position 123.1±0.65µs 124.2±1.15µs +0.89%
inlay_hints 659.5±14.04µs 672.2±20.61µs +1.93%
on_enter 503.6±11.95ns 487.6±14.81ns -3.18%
parent_decl_at_position 3.8±0.10ms 3.8±0.11ms 0.00%
prepare_rename 353.7±7.16µs 369.5±8.66µs +4.47%
rename 10.0±0.30ms 9.7±0.11ms -3.00%
semantic_tokens 1021.0±16.49µs 1037.5±16.99µs +1.62%
token_at_position 349.5±2.69µs 378.4±2.51µs +8.27%
tokens_at_position 3.9±0.20ms 3.8±0.08ms -2.56%
tokens_for_file 425.7±2.72µs 427.8±1.68µs +0.49%
traverse 42.5±1.17ms 42.3±1.26ms -0.47%

@vaivaswatha
Copy link
Contributor Author

@IGI-111 Here are the code size numbers / impact on our e2e testsuite (compiled in debug profile).

Open here
test size on master size with fndedup-debug % reduction
should_pass/return_in_strange_positions 1168 1168 0
should_pass/payable_non_zero_coins 2744 2744 0
should_pass/superabi_contract_calls 448 448 0
should_pass/superabi_supertrait_same_methods 448 448 0
should_pass/stdlib/vec 176648 112648 36.2302431955074
should_pass/stdlib/alloc_test 1392 1392 0
should_pass/stdlib/vec_swap 41696 25584 38.6415963161934
should_pass/stdlib/intrinsics 1304 1304 0
should_pass/stdlib/ge_test 840 840 0
should_pass/stdlib/assert_ne_revert 784 784 0
should_pass/stdlib/assert_eq 14688 11416 22.276688453159
should_pass/stdlib/u128_log_test 6144 5752 6.38020833333333
should_pass/stdlib/u128_root_test 6096 5592 8.26771653543307
should_pass/stdlib/raw_ptr 13144 5856 55.4473524041388
should_pass/stdlib/identity_eq 3104 3104 0
should_pass/stdlib/eq_custom_type 976 976 0
should_pass/stdlib/contract_id_type 1016 1016 0
should_pass/stdlib/option_eq 16016 14896 6.99300699300699
should_pass/stdlib/option 155928 32824 78.9492586321892
should_pass/stdlib/eq_generic 192 192 0
should_pass/stdlib/u128_div_test 3712 3400 8.4051724137931
should_pass/stdlib/generic_empty_struct_with_constraint 192 192 0
should_pass/stdlib/u128_test 8096 7808 3.55731225296443
should_pass/stdlib/assert_test 848 848 0
should_pass/stdlib/result 10088 8648 14.274385408406
should_pass/stdlib/contract_id_test 880 880 0
should_pass/stdlib/assert_ne 14496 11224 22.5717439293598
should_pass/stdlib/address_test 4520 4520 0
should_pass/stdlib/storage_vec_insert 10520 8664 17.6425855513308
should_pass/stdlib/block_height 600 600 0
should_pass/stdlib/u128_mul_test 2032 2032 0
should_pass/stdlib/if_type_revert 568 568 0
should_pass/stdlib/b512_test 4000 3952 1.2
should_pass/stdlib/sha256 3464 2256 34.8729792147806
should_pass/stdlib/assert_eq_revert 808 808 0
should_pass/stdlib/chess 2328 2328 0
should_pass/stdlib/require 4640 4640 0
should_pass/stdlib/b512_struct_alignment 1032 1032 0
should_pass/stdlib/iterator 7072 5256 25.6787330316742
should_pass/stdlib/raw_slice 1704 1704 0
should_pass/test_contracts/nested_struct_args_contract 2160 2160 0
should_pass/test_contracts/abi_with_generic_types 8920 7896 11.4798206278027
should_pass/test_contracts/basic_storage 99944 81984 17.9700632354118
should_pass/test_contracts/storage_access_contract 100024 88184 11.8371590818204
should_pass/test_contracts/return_struct 7408 4984 32.7213822894168
should_pass/test_contracts/array_of_structs_contract 5528 5256 4.92040520984081
should_pass/test_contracts/storage_configurable 1576 1576 0
should_pass/test_contracts/auth_testing_contract 1568 1568 0
should_pass/test_contracts/issue_1512_repro 3392 3392 0
should_pass/test_contracts/abi_with_same_name_types 2592 2592 0
should_pass/test_contracts/context_testing_contract 6208 5840 5.92783505154639
should_pass/test_contracts/storage_namespace 99944 81984 17.9700632354118
should_pass/test_contracts/increment_contract 5440 5256 3.38235294117647
should_pass/test_contracts/multiple_impl 1704 1704 0
should_pass/test_contracts/abi_with_tuples_contract 3080 3080 0
should_pass/test_contracts/contract_with_type_aliases 12656 9376 25.9165613147914
should_pass/test_contracts/test_fuel_coin_contract 5136 5136 0
should_pass/test_contracts/storage_enum_contract 28400 26600 6.33802816901408
should_pass/test_contracts/balance_test_contract 1560 1560 0
should_pass/evm/evm_basic 192 192 0
should_pass/blanket_impl_u16 544 544 0
should_pass/empty_fields_in_storage_struct 54456 27760 49.0230644924343
should_pass/forc/dependency_package_field 568 568 0
should_pass/forc/workspace_building 24 24 0
should_pass/forc/parent_pkg_manifest/contract_a 1576 1576 0
should_pass/forc/dependency_patching 536 536 0
should_pass/forc/contract_dependencies/contract_c 1576 1576 0
should_pass/forc/contract_dependencies/contract_b 1576 1576 0
should_pass/forc/contract_dependencies/contract_a 1472 1472 0
should_pass/conditional_compilation/run 544 544 0
should_pass/language/where_clause_functions 2896 2896 0
should_pass/language/basic_func_decl 624 624 0
should_pass/language/associated_const_trait_impl_method 968 968 0
should_pass/language/left_to_right_func_args_evaluation 784 784 0
should_pass/language/out_of_order_decl 568 568 0
should_pass/language/where_clause_traits 528 528 0
should_pass/language/references/reassigning_via_references_passed_and_returned_to_and_from_functions 211712 115184 45.5940145102781
should_pass/language/references/reassigning_via_references_in_aggregates 32944 22056 33.0500242836328
should_pass/language/references/referencing_function_parameters 10384 8288 20.1848998459168
should_pass/language/references/referencing_expressions 18736 16416 12.3825789923143
should_pass/language/references/references_and_type_aliases 1320 1320 0
should_pass/language/references/references_in_asm_blocks 6120 5664 7.45098039215686
should_pass/language/references/mutability_of_references 1912 1912 0
should_pass/language/references/dereferencing_operator_dot_on_tuples 321552 306368 4.7220978255461
should_pass/language/references/passing_and_returning_references_to_and_from_functions 75880 54152 28.6346863468635
should_pass/language/references/type_unification_of_references 4672 4672 0
should_pass/language/references/dereferencing_control_flow_expressions 5824 5824 0
should_pass/language/references/referencing_parts_of_aggregates 11920 10656 10.6040268456376
should_pass/language/references/dereferencing_operator_index 217584 205384 5.60702992867123
should_pass/language/references/dereferencing_operator_star 553024 526168 4.85620877213286
should_pass/language/references/reassigning_via_references_to_values 31320 25488 18.6206896551724
should_pass/language/references/referencing_references 3112 2928 5.91259640102828
should_pass/language/references/references_in_aggregates 9984 9568 4.16666666666667
should_pass/language/references/referencing_control_flow_expressions 1344 1344 0
should_pass/language/references/references_and_generics 4992 4528 9.2948717948718
should_pass/language/references/reassigning_via_references_to_expressions 248008 100832 59.3432469920325
should_pass/language/references/dereferencing_operator_dot_on_structs 321552 306368 4.7220978255461
should_pass/language/references/impl_reference_types 80696 78048 3.28145137305443
should_pass/language/references/referencing_local_vars_and_values 133128 99712 25.1006550087134
should_pass/language/integer_type_inference 1584 1512 4.54545454545455
should_pass/language/numeric_constants 1040 1040 0
should_pass/language/mutable_arrays_struct 656 656 0
should_pass/language/same_const_name_lib 24 24 0
should_pass/language/associated_type_iterator 3776 3776 0
should_pass/language/match_expressions_unreachable_last_arm 3976 3976 0
should_pass/language/multi_item_import 544 544 0
should_pass/language/ref_mutable_arrays_inline 616 616 0
should_pass/language/u256/u256_operators 5448 5328 2.20264317180617
should_pass/language/module_dep 24 24 0
should_pass/language/generic_inside_generic 672 672 0
should_pass/language/associated_const_trait_method 968 968 0
should_pass/language/struct_instantiation 3792 3672 3.16455696202532
should_pass/language/module_dep_multiple 24 24 0
should_pass/language/method_indirect_inference 936 936 0
should_pass/language/where_clause_generic_tuple 568 568 0
should_pass/language/generic_impl_self 3984 3928 1.40562248995984
should_pass/language/retd_struct 1608 1608 0
should_pass/language/generic_impl_self_where 3216 3216 0
should_pass/language/chained_if_let 664 664 0
should_pass/language/test_multiple_attributes 24 24 0
should_pass/language/generic_type_inference 4408 4352 1.27041742286751
should_pass/language/blanket_trait 552 552 0
should_pass/language/retd_zero_len_array 192 192 0
should_pass/language/asm_expr_basic 1192 1192 0
should_pass/language/associated_const_impl_local_same_name 976 976 0
should_pass/language/unit_type_variants 768 768 0
should_pass/language/generic_struct 584 584 0
should_pass/language/binary_and_hex_literals 552 552 0
should_pass/language/trait_method_qualified 816 816 0
should_pass/language/ops 10432 10256 1.68711656441718
should_pass/language/generic_result_method 1112 1048 5.75539568345324
should_pass/language/tuple_field_reassignment 1392 1392 0
should_pass/language/associated_const_impl_self 968 968 0
should_pass/language/predicate_while 96 96 0
should_pass/language/retd_small_array 1056 1056 0
should_pass/language/insert_element_reg_reuse 4792 3424 28.5475792988314
should_pass/language/args_on_stack 2040 2040 0
should_pass/language/where_clause_methods 2840 2840 0
should_pass/language/tuple_trait 664 664 0
should_pass/language/ref_mutable_fn_args_struct_assign 592 592 0
should_pass/language/for_loops 6584 5480 16.767922235723
should_pass/language/zero_field_types 544 544 0
should_pass/language/method_on_empty_struct 536 536 0
should_pass/language/largeint_sroa 512 512 0
should_pass/language/nested_while_and_if 720 720 0
should_pass/language/generic_functions 568 568 0
should_pass/language/associated_const_trait 968 968 0
should_pass/language/eq_intrinsic 1456 1456 0
should_pass/language/match_expressions_unreachable_middle_arm 4680 4680 0
should_pass/language/use_full_path_names 968 968 0
should_pass/language/associated_const_abi_default 968 968 0
should_pass/language/struct_field_reassignment 536 536 0
should_pass/language/builtin_type_method_call 568 568 0
should_pass/language/far_jumps/single_blob 1049152 1049152 0
should_pass/language/far_jumps/many_blobs 11640808 11640808 0
should_pass/language/gtf_intrinsic 1200 1200 0
should_pass/language/diverging_exprs 3000 3000 0
should_pass/language/mut_ref_empty_type 1672 1368 18.1818181818182
should_pass/language/nested_struct_destructuring 544 544 0
should_pass/language/trait_nested 1240 1240 0
should_pass/language/many_stack_variables 1256 1256 0
should_pass/language/abort_control_flow_good 72 72 0
should_pass/language/test_attribute 24 24 0
should_pass/language/use_absolute_path 576 576 0
should_pass/language/import_with_different_callpaths 3008 2960 1.59574468085106
should_pass/language/raw_ptr/vec_ret 1568 1568 0
should_pass/language/raw_ptr/raw_ptr_ret ...     #DIV/0!
should_pass/language/where_clause_structs 848 848 0
should_pass/language/aliased_imports 648 648 0
should_pass/language/prelude_access 192 192 0
should_pass/language/match_expressions_nested 2664 2664 0
should_pass/language/b256_bitwise_ops 8784 8664 1.36612021857924
should_pass/language/empty_method_initializer 1248 1248 0
should_pass/language/main_args/main_args_ref 824 824 0
should_pass/language/main_args/main_args_various_types 3464 3464 0
should_pass/language/main_args/main_args_empty 544 544 0
should_pass/language/main_args/main_args_two_u64 880 880 0
should_pass/language/main_args/main_args_generics 2784 2784 0
should_pass/language/main_args/main_args_one_u64 800 800 0
should_pass/language/main_args/main_args_ref_ref 1024 1024 0
should_pass/language/main_args/main_args_ref_copy 992 992 0
should_pass/language/enum_padding 3944 2856 27.5862068965517
should_pass/language/associated_const_abi 968 968 0
should_pass/language/local_impl_for_ord 552 552 0
should_pass/language/associated_const_trait_default 976 976 0
should_pass/language/enum_init_fn_call 1000 1000 0
should_pass/language/diagnose_unknown_annotations 2168 2168 0
should_pass/language/import_method_from_other_file 896 896 0
should_pass/language/match_expressions_or 15464 14944 3.36264873254009
should_pass/language/struct_destructuring 688 688 0
should_pass/language/mutable_arrays_multiple_nested 672 672 0
should_pass/language/logging 8384 7656 8.68320610687023
should_pass/language/const_decl 560 560 0
should_pass/language/is_reference_type 1080 1080 0
should_pass/language/non_literal_const_decl 544 544 0
should_pass/language/array_basics 1392 1392 0
should_pass/language/generic_where_in_impl_self 848 744 12.2641509433962
should_pass/language/supertraits_with_trait_methods 744 744 0
should_pass/language/tuple_in_struct 1336 1336 0
should_pass/language/impl_self_method 976 976 0
should_pass/language/match_expressions_rest 2616 2616 0
should_pass/language/tuple_types 976 976 0
should_pass/language/impl_self_method_order 976 976 0
should_pass/language/enum_if_let 1088 1088 0
should_pass/language/match_expressions 1896 1896 0
should_pass/language/basic_predicate 48 48 0
should_pass/language/new_allocator_test 1352 1352 0
should_pass/language/op_precedence 600 600 0
should_pass/language/enum_if_let_large_type 936 936 0
should_pass/language/is_prime 1608 1608 0
should_pass/language/method_unambiguous 920 920 0
should_pass/language/match_expressions_structs 712 712 0
should_pass/language/match_expressions_with_self 856 856 0
should_pass/language/ref_mutable_fn_args_call 552 552 0
should_pass/language/array_generics 664 664 0
should_pass/language/smo 3056 3056 0
should_pass/language/typeinfo_custom_callpath2 280 280 0
should_pass/language/where_clause_generic_traits 1416 1416 0
should_pass/language/mutable_arrays_enum 632 632 0
should_pass/language/ref_mutable_fn_args_bool 576 576 0
should_pass/language/supertraits 4304 4304 0
should_pass/language/const_inits 3888 3832 1.440329218107
should_pass/language/tuple_access 688 688 0
should_pass/language/trait_method_generic_qualified 552 552 0
should_pass/language/associated_type_parameter 968 968 0
should_pass/language/tuple_single_element 600 600 0
should_pass/language/bool_and_or 640 640 0
should_pass/language/associated_type_fully_qualified 2568 2208 14.018691588785
should_pass/language/associated_type_container 3680 3680 0
should_pass/language/contract_caller_dynamic_address 3808 3808 0
should_pass/language/module_dep_self 24 24 0
should_pass/language/associated_type_container_in_library 3680 3680 0
should_pass/language/type_alias 4136 4072 1.54738878143133
should_pass/language/mutable_arrays_swap 616 616 0
should_pass/language/break_and_continue_block_ret 240 240 0
should_pass/language/main_returns_unit 192 192 0
should_pass/language/unary_not_basic_2 664 664 0
should_pass/language/mutable_and_initd 656 656 0
should_pass/language/method_type_args 192 192 0
should_pass/language/raw_identifiers 656 656 0
should_pass/language/mega_example 19144 15888 17.0079398244881
should_pass/language/match_expressions_constants 1904 1904 0
should_pass/language/generic_structs 608 608 0
should_pass/language/predicate_while_dep 96 96 0
should_pass/language/unary_not_basic 640 640 0
should_pass/language/b256_ops 6736 5216 22.5653206650831
should_pass/language/const_decl_with_call_path 888 888 0
should_pass/language/generic_where_in_impl_self2 856 752 12.1495327102804
should_pass/language/reassignment_operators 976 976 0
should_pass/language/attributes_warnings 192 192 0
should_pass/language/mutable_arrays 616 616 0
should_pass/language/match_expressions_unreachable_catch_all_last_arm 3480 3480 0
should_pass/language/memcpy 800 800 0
should_pass/language/deprecated 24 24 0
should_pass/language/ret_string_in_struct 856 856 0
should_pass/language/enum_destructuring 608 608 0
should_pass/language/associated_type_and_associated_const 968 968 0
should_pass/language/associated_type_method 968 968 0
should_pass/language/implicit_casting 544 544 0
should_pass/language/where_clause_enums 1072 1072 0
should_pass/language/valid_impurity 1576 1576 0
should_pass/language/contract_caller_as_ret 1576 1576 0
should_pass/language/associated_type_ascription 968 968 0
should_pass/language/match_expressions_inside_generic_functions 1784 1784 0
should_pass/language/str_slice 632 632 0
should_pass/language/match_expressions_explicit_rets 616 616 0
should_pass/language/binop_intrinsics 2504 2504 0
should_pass/language/match_expressions_mismatched 600 600 0
should_pass/language/funcs_with_generic_types 552 552 0
should_pass/language/trait_import_with_star 200 200 0
should_pass/language/match_expressions_unreachable_catch_all_middle_arm 6224 6224 0
should_pass/language/if_let_no_side_effects 816 816 0
should_pass/language/b256_bad_jumps 552 552 0
should_pass/language/bitwise_not 896 896 0
should_pass/language/dummy_method_issue 296 296 0
should_pass/language/prelude_access2 192 192 0
should_pass/language/enum_in_fn_decl 640 640 0
should_pass/language/enum_type_inference 544 544 0
should_pass/language/size_of 816 816 0
should_pass/language/associated_const_impl_self_order 968 968 0
should_pass/language/const_decl_and_use_in_library 560 560 0
should_pass/language/typeinfo_custom_callpath 280 280 0
should_pass/language/struct_init_reorder 328 328 0
should_pass/language/tuple_desugaring 1112 1112 0
should_pass/language/match_expressions_simple 1048 1048 0
should_pass/language/inline_if_expr_const 272 272 0
should_pass/language/associated_const_impl_multiple 968 968 0
should_pass/language/enum_variant_imports 728 728 0
should_pass/language/if_elseif_enum 1568 1568 0
should_pass/language/where_clause_impls 1128 1072 4.9645390070922
should_pass/language/generic_tuple_trait 1136 1136 0
should_pass/language/mutable_arrays_nested 696 696 0
should_pass/language/generic_traits 2288 2216 3.14685314685315
should_pass/language/associated_const_impl 968 968 0
should_pass/language/modulo_uint_test 1096 1096 0
should_pass/language/implicit_return 552 552 0
should_pass/language/fqp_in_lib 360 360 0
should_pass/language/retd_b256 848 848 0
should_pass/language/generic_transpose 1344 1344 0
should_pass/language/complex_cfg 1120 1120 0
should_pass/language/struct_field_access 584 584 0
should_pass/language/redundant_return 560 560 0
should_pass/language/asm_without_return 200 200 0
should_pass/language/associated_const_abi_multiple 968 968 0
should_pass/language/while_loops 1000 1000 0
should_pass/language/same_const_name 1368 1064 22.2222222222222
should_pass/language/self_impl_reassignment 1416 1416 0
should_pass/language/reassignment_rhs_lhs_evaluation_order 2528 2528 0
should_pass/language/associated_const_trait_const 552 552 0
should_pass/language/match_expressions_enums 4608 4608 0
should_pass/language/smo_opcode 632 632 0
should_pass/language/import_trailing_comma 592 592 0
should_pass/language/enum_instantiation 4768 4648 2.51677852348993
should_pass/language/trait_method_ascription_disambiguate 552 552 0
should_pass/language/eq_and_neq 2544 2544 0
should_pass/language/tuple_indexing 1000 1000 0
should_pass/language/ref_mutable_fn_args_struct 576 576 0
should_pass/language/revert_in_first_if_branch 248 248 0
should_pass/language/ref_mutable_arrays 616 616 0
should_pass/language/nested_structs 2288 2288 0
should_pass/language/typeinfo_custom_callpath_with_import 328 328 0
should_pass/language/multi_impl_self 544 544 0
should_pass/language/generic_struct_instantiation 536 536 0
should_pass/language/generic_trait_constraints 3696 3696 0
should_pass/language/primitive_type_argument 544 544 0
should_pass/language/fix_opcode_bug 656 656 0
should_pass/language/arg_demotion_inline 1784 1784 0
should_pass/language/ret_small_string 840 840 0
should_pass/language/doc_comments 1560 1560 0
should_pass/language/match_expressions_empty_enums 544 544 0
should_pass/language/const_decl_in_library 640 640 0
should_pass/language/generics_in_contract 4760 4584 3.69747899159664
should_pass/language/if_implicit_unit 192 192 0
should_pass/language/impure_ifs 1888 1888 0
should_pass/language/break_and_continue 1432 1432 0
should_pass/language/ref_mutable_fn_args_u32 992 992 0
should_pass/storage_into 3032 3032 0
should_pass/resolve_local_items_that_shadow_imports 240 240 0
should_pass/break_in_strange_positions 1944 1944 0
should_pass/multiple_supertraits_for_abis 2440 2440 0
should_pass/continue_in_strange_positions 1944 1944 0
should_pass/supertraits_for_abis_diamond 2464 2464 0
should_pass/superabi_diamond 2456 2456 0
should_pass/supertraits_via_self 520 520 0
should_pass/supertraits_for_abis 2112 2112 0
should_pass/dca/alias_type_ascription 192 192 0
should_pass/dca/alias_type_ascription_generic 192 192 0
should_pass/dca/constant_decl_expr 560 560 0
should_pass/dca/impl_unused_fn 568 568 0
should_pass/dca/log_stdlib 1016 1016 0
should_pass/dca/unused_trait 192 192 0
should_pass/dca/impl_self_alias 192 192 0
should_pass/dca/impl_trait_single 568 568 0
should_pass/dca/trait_method 192 192 0
should_pass/dca/unused_free_fn 192 192 0
should_pass/dca/unused_variable_in_free_fn 192 192 0
should_pass/dca/generic_fn_trait_contraint 192 408 -112.5
should_pass/dca/revert 408 192 52.9411764705882
should_pass/dca/unused_variable 192 568 -195.833333333333
should_pass/dca/impl_trait_multiple 568 4680 -723.943661971831
should_pass/dca/contract/superabi_contract_calls 5488 1928 64.868804664723
should_pass/dca/contract/unused_struct_field 1928 2320 -20.3319502074689
should_pass/dca/contract/unused_struct_field_enum 2320 1968 15.1724137931034
should_pass/dca/contract/abi_fn_params 1968 2000 -1.6260162601626
should_pass/dca/contract/unused_struct_field_array 2000 1928 3.6
should_pass/dca/contract/unused_struct_field_tuple 1928 192 90.0414937759336
should_pass/dca/unused_struct 192 192 0
should_pass/dca/func_param 192 192 0
should_pass/dca/alias_unused 192 192 0
should_pass/dca/multiple_fns_same_name 192 232 -20.8333333333333
should_pass/dca/allow_dead_code 232 640 -175.862068965517
should_pass/dca/trait_method_neq 640 616 3.75
should_pass/dca/all_paths_return 616 536 12.987012987013
should_pass/dca/unused_fields 536 192 64.1791044776119
should_pass/dca/impl_self_alias2 192 256 -33.3333333333333
should_pass/dca/alias_lib 256 192 25
should_pass/dca/multiple_enums_same_name 192 192 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 216 216 0
should_pass/dca/constant_while 200 200 0
should_pass/dca/constant_struct 560 560 0
should_pass/dca/unused_enum 192 192 0
should_pass/dca/impl_self 192 192 0
should_pass/dca/log_intrinsic 1016 1016 0
should_pass/dca/struct_field_no_warning 856 856 0
should_pass/dca/trait_method_lib 24 24 0
should_pass/supertraits_for_abis_ownable 22312 21000 5.88024381498745
should_pass/return_into 1312 1312 0
should_pass/unit_tests/script_multi_test 200 200 0
should_pass/unit_tests/nested_libs 272 272 0
should_pass/unit_tests/contract_multi_test 488 488 0
should_pass/unit_tests/script-contract-calls 64 64 0
should_pass/unit_tests/lib_single_test 112 112 0
should_pass/unit_tests/aggr_indexing 1000 1000 0
should_pass/unit_tests/workspace_test 200 200 0
should_pass/unit_tests/predicate_with_nested_libs 248 248 0
should_pass/unit_tests/script_with_nested_libs 280 280 0
should_pass/unit_tests/should_revert 88 88 0
should_pass/unit_tests/contract_with_nested_libs 312 312 0
should_pass/unit_tests/stack_indexing_overflow 3872 3872 0
should_pass/unit_tests/lib_multi_test 328 328 0
should_pass/unit_tests/contract-multi-contract-calls 64 64 0
should_pass/unit_tests/predicate_multi_test 256 256 0
should_pass/unit_tests/regalloc_spill 1496 1496 0
should_pass/blanket_impl 544 544 0
should_pass/non_payable_implicit_zero_coins 3688 3320 9.97830802603037
should_pass/test_abis/abi_impl_methods_in_json_abi 1816 1816 0
should_pass/test_abis/abi_impl_method_duplicate ...     #DIV/0!
should_pass/test_abis/abi_impl_methods_callable 248 248 0
should_pass/static_analysis/cei_pattern_violation_in_struct 5216 5216 0
should_pass/static_analysis/cei_pattern_violation 4544 4544 0
should_pass/static_analysis/cei_pattern_violation_in_match_statement-1 5712 5352 6.30252100840336
should_pass/static_analysis/cei_pattern_violation_in_if_statement-2 5232 5232 0
should_pass/static_analysis/cei_pattern_violation_in_while_loop-1 5232 5232 0
should_pass/static_analysis/cei_pattern_violation_in_while_loop-3 5232 5232 0
should_pass/static_analysis/cei_pattern_violation_storage_var_read 5256 5256 0
should_pass/static_analysis/cei_pattern_violation_in_codeblocks_other_than_in_functions 5216 5216 0
should_pass/static_analysis/cei_pattern_violation_in_func_app-3 5216 5216 0
should_pass/static_analysis/cei_pattern_violation_in_func_app-1 5216 5216 0
should_pass/static_analysis/storage_annotations_unused_write 1552 1552 0
should_pass/static_analysis/cei_pattern_violation_in_asm_block_smo 3752 3752 0
should_pass/static_analysis/cei_pattern_violation_in_asm_block 3776 3776 0
should_pass/static_analysis/cei_pattern_violation_in_intrinsic_call 5216 5216 0
should_pass/static_analysis/storage_annotations_unused_read 1552 1552 0
should_pass/static_analysis/cei_pattern_violation_storage_map_and_vec 23296 13528 41.9299450549451
should_pass/static_analysis/cei_pattern_violation_in_asm_block_tro 5136 5136 0
should_pass/static_analysis/cei_pattern_violation_in_while_loop-2 5232 5232 0
should_pass/static_analysis/cei_pattern_violation_smo_intrinsic 3840 3840 0
should_pass/static_analysis/storage_annotations_unused_read_and_write 1552 1552 0
should_pass/static_analysis/cei_pattern_violation_in_standalone_function 4544 4544 0
should_pass/static_analysis/cei_pattern_violation_in_asm_block_read 4304 4304 0
should_pass/static_analysis/cei_pattern_violation_in_while_loop-4 5232 5232 0
should_pass/static_analysis/cei_pattern_violation_in_asm_block_tr 5136 5136 0
should_pass/static_analysis/cei_pattern_violation_in_tuple 5216 5216 0
should_pass/static_analysis/cei_pattern_violation_in_asm_block_bal 3736 3736 0
should_pass/static_analysis/cei_pattern_violation_more_complex_logic 76712 46688 39.1385963082699
should_pass/static_analysis/cei_pattern_violation_storage_struct_read 4776 4776 0
should_pass/static_analysis/cei_pattern_violation_storage_var_update 4656 4656 0
should_pass/static_analysis/cei_pattern_violation_in_if_statement-1 5248 5248 0
should_pass/static_analysis/cei_pattern_violation_in_func_app-2 5216 5216 0
should_pass/superabi 1816 1816 0
should_pass/non_payable_zero_coins_let_binding 3696 3328 9.95670995670996
should_pass/superabi_diamond_impl 2456 2456 0

@IGI-111 IGI-111 merged commit eb43057 into master May 10, 2024
38 checks passed
@IGI-111 IGI-111 deleted the vaivaswatha/fndedup_debug branch May 10, 2024 05:35
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.

specialize method deduplication for the debug profile
3 participants