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