[Bug ipa/92535] [10/11 regression] ICF is relatively expensive and became less effective

hubicka at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Nov 18 07:33:10 GMT 2020


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92535

--- Comment #12 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
With ODR name hashing fix and fix to streaming the access types we now get:

    957   false returned: 'different references' in compare_symbol_references
at ../../gcc/ipa-icf.c:465
    961   false returned: 'size mismatch' in equals_wpa at
../../gcc/ipa-icf.c:1651
   1171   false returned: 'DECL_CXX_CONSTRUCTOR mismatch' in equals_wpa at
../../gcc/ipa-icf.c:562
   1360   false returned: '' in compare_gimple_call at
../../gcc/ipa-icf-gimple.c:607
   2209   false returned: 'different decl attributes' in equals_wpa at
../../gcc/ipa-icf.c:662
   3362   false returned: 'ctor polymorphic type mismatch' in equals_wpa at
../../gcc/ipa-icf.c:585
   8399   false returned: 'parameter type is not compatible' in
compatible_parm_types_p at ../../gcc/ipa-icf.c:512
  10161   false returned: 'inline attributes are different' in
compare_referenced_symbol_properties at ../../gcc/ipa-icf.c:350
  16217   false returned: 'parameter types are not compatible' in equals_wpa at
../../gcc/ipa-icf.c:639
  26071   false returned: 'references to virtual tables cannot be merged' in
compare_referenced_symbol_properties at ../../gcc/ipa-icf.c:373
  28812   false returned: 'decl_or_type flags are different' in equals_wpa at
../../gcc/ipa-icf.c:572
  29308   false returned: 'different tree types' in compatible_types_p at
../../gcc/ipa-icf-gimple.c:206
  99308   false returned: 'types are not compatible' in compatible_types_p at
../../gcc/ipa-icf-gimple.c:212
 119994   false returned: 'result types are different' in equals_wpa at
../../gcc/ipa-icf.c:621
 128276   false returned: 'compare_ao_refs failed (semantic difference)' in
compare_operand at ../../gcc/ipa-icf-gimple.c:336
 242454   false returned: 'operand_equal_p failed' in compare_operand at
../../gcc/ipa-icf-gimple.c:356
 369360   false returned: 'GIMPLE assignment operands are different' in
compare_gimple_assign at ../../gcc/ipa-icf-gimple.c:699
 370952   false returned: '' in equals_private at ../../gcc/ipa-icf.c:886
 456907   false returned: 'THIS pointer ODR type mismatch' in equals_wpa at
../../gcc/ipa-icf.c:677
 460246   false returned: 'types are not same for ODR' in
compatible_polymorphic_types_p at ../../gcc/ipa-icf-gimple.c:197

so ODR types of THIS pointers come next.


More information about the Gcc-bugs mailing list