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

Jan Hubicka <hubicka at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |UNCONFIRMED
   Last reconfirmed|2019-11-06 00:00:00         |
            Version|10.0                        |unknown
           Assignee|marxin at gcc dot gnu.org          |unassigned at gcc dot 
gnu.org
   Target Milestone|10.0                        |---
     Ever confirmed|1                           |0

--- Comment #2 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
this is statistics of reason why ICF failes:
   6523   false returned: 'different tree types' in compatible_types_p at
../../gcc/ipa-icf-gimple.c:203
   7521   false returned: 'parameter types are not compatible' in equals_wpa at
../../gcc/ipa-icf.c:637
  12973   false returned: 'memory operands are different' in
compare_gimple_call at ../../gcc/ipa-icf-gimple.c:582
  14799   false returned: 'decl_or_type flags are different' in equals_wpa at
../../gcc/ipa-icf.c:570
  16052   false returned: 'inline attributes are different' in
compare_referenced_symbol_properties at ../../gcc/ipa-icf.c:344
  20962   false returned: 'references to virtual tables cannot be merged' in
compare_referenced_symbol_properties at ../../gcc/ipa-icf.c:364
  72431   false returned: 'call function types are not compatible' in
compare_gimple_call at ../../gcc/ipa-icf-gimple.c:566
  80695   false returned: 'result types are different' in equals_wpa at
../../gcc/ipa-icf.c:619
  84475   false returned: 'types are not compatible' in compatible_types_p at
../../gcc/ipa-icf-gimple.c:209
 117458   false returned: '' in compare_gimple_call at
../../gcc/ipa-icf-gimple.c:545
 388866   false returned: 'THIS pointer ODR type mismatch' in equals_wpa at
../../gcc/ipa-icf.c:675
 391183   false returned: 'types are not same for ODR' in
compatible_polymorphic_types_p at ../../gcc/ipa-icf-gimple.c:194
 618107   false returned: '' in operand_equal_p at
../../gcc/ipa-icf-gimple.c:259
2953032   false returned: 'memory operands are different' in
compare_gimple_assign at ../../gcc/ipa-icf-gimple.c:621
3083711   false returned: 'operand_equal_p failed' in compare_operand at
../../gcc/ipa-icf-gimple.c:303
3156681   false returned: '' in equals_private at ../../gcc/ipa-icf.c:885


so 2.9M functions are streamed in for memory operands being different.

Honza

Reply via email to