On 11/13/20 6:50 PM, Jan Hubicka wrote:
Bootstrapped/regtested x86_64-linux. I plan to commit it on monday if there are no complains.
Hello Honza. Thank you very much for the patch set. It's a nice improvement and it will eventually fix the WPA slowness caused by IPA ICF. I made some measurements for master before a first patch and this patch (3/4) on godot game engine: BEFORE: Equal symbols: 15690 Totally needed symbols: 17913, fraction of loaded symbols: 39.05% 2156989 false returned: '' in equals_private at /home/marxin/Programming/gcc2/gcc/ipa-icf.c:879 1099887 false returned: 'operand_equal_p failed' in compare_operand at /home/marxin/Programming/gcc2/gcc/ipa-icf-gimple.c:307 1048605 false returned: 'types are not compatible' in compatible_types_p at /home/marxin/Programming/gcc2/gcc/ipa-icf-gimple.c:210 1047679 false returned: 'GIMPLE assignment operands are different' in compare_gimple_assign at /home/marxin/Programming/gcc2/gcc/ipa-icf-gimple.c:632 1047517 false returned: 'GIMPLE NOP LHS type mismatch' in compare_gimple_assign at /home/marxin/Programming/gcc2/gcc/ipa-icf-gimple.c:628 57659 false returned: 'call function types are not compatible' in compare_gimple_call at /home/marxin/Programming/gcc2/gcc/ipa-icf-gimple.c:573 52088 false returned: 'PHI node comparison returns false' in equals_private at /home/marxin/Programming/gcc2/gcc/ipa-icf.c:914 52088 false returned: '' in compare_phi_node at /home/marxin/Programming/gcc2/gcc/ipa-icf.c:1552 13565 false returned: 'decl_or_type flags are different' in equals_wpa at /home/marxin/Programming/gcc2/gcc/ipa-icf.c:567 9919 false returned: 'result types are different' in equals_wpa at /home/marxin/Programming/gcc2/gcc/ipa-icf.c:616 Time variable usr sys wall GGC ipa icf : 4.31 ( 7%) 0.06 ( 2%) 4.38 ( 7%) 6008k ( 0%) TOTAL : 57.57 3.49 61.11 4830M AFTER: Equal symbols: 17019 Totally needed symbols: 19875, fraction of loaded symbols: 70.88% 377327 false returned: '' in equals_private at /home/marxin/Programming/gcc2/gcc/ipa-icf.c:886 213086 false returned: 'operand_equal_p failed' in compare_operand at /home/marxin/Programming/gcc2/gcc/ipa-icf-gimple.c:356 212179 false returned: 'compare_ao_refs failed (access path difference)' in compare_operand at /home/marxin/Programming/gcc2/gcc/ipa-icf-gimple.c:345 159947 false returned: '' in compare_gimple_call at /home/marxin/Programming/gcc2/gcc/ipa-icf-gimple.c:607 147098 false returned: 'GIMPLE assignment operands are different' in compare_gimple_assign at /home/marxin/Programming/gcc2/gcc/ipa-icf-gimple.c:699 66123 false returned: 'GIMPLE call operands are different' in compare_gimple_call at /home/marxin/Programming/gcc2/gcc/ipa-icf-gimple.c:656 52088 false returned: 'PHI node comparison returns false' in equals_private at /home/marxin/Programming/gcc2/gcc/ipa-icf.c:921 52088 false returned: '' in compare_phi_node at /home/marxin/Programming/gcc2/gcc/ipa-icf.c:1580 12643 false returned: 'decl_or_type flags are different' in equals_wpa at /home/marxin/Programming/gcc2/gcc/ipa-icf.c:572 6318 false returned: 'different tree types' in compatible_types_p at /home/marxin/Programming/gcc2/gcc/ipa-icf-gimple.c:206 Time variable usr sys wall GGC ipa icf : 3.40 ( 6%) 0.09 ( 3%) 3.49 ( 6%) 27M ( 1%) TOTAL : 56.60 2.94 59.58 4478M and I'm also sending usage-wrapper graphs. Martin
godot-files.tar.zst
Description: application/zstd