public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "hubicka at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug ipa/92535] [10/11 regression] ICF is relatively expensive and became less effective
Date: Thu, 19 Nov 2020 18:10:21 +0000	[thread overview]
Message-ID: <bug-92535-4-FytcbTv7J5@http.gcc.gnu.org/bugzilla/> (raw)
In-Reply-To: <bug-92535-4@http.gcc.gnu.org/bugzilla/>

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

--- Comment #15 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
Current  mainline with 
 1) fix to COMPONENT_REFs described above
 2) improvement of ODR type having for THIS pointers
 3) gimple_clobber fix (already approved)
 4) compare_ao_refs fix for volatile accesses
 5) compare_decs change so it does not test type compatibility of automatic
vars (since these types have little meaning)

      1   false returned: '' in compare_decl at ../../gcc/ipa-icf-gimple.c:163 
                                                                               
                                1   false returned: 'replaceable operator flags
are different' in compare_referenced_symbol_properties at
../../gcc/ipa-icf.c:359                                                        
4   false returned: '' in compare_bb at ../../gcc/ipa-icf-gimple.c:606         
                                                                               
                          7   false returned: 'Mismatched number of parameters'
in equals_wpa at ../../gcc/ipa-icf.c:651                                       
                                                    9   false returned: '' in
compare_variable_decl at ../../gcc/ipa-icf-gimple.c:447                        
                                                                               
9   false returned: '' in operand_equal_p at ../../gcc/ipa-icf-gimple.c:312    
                                                                               
                         10   false returned: 'INTEGER_CST precision mismatch'
in equals at ../../gcc/ipa-icf.c:1807                                          
                                                    11   false returned: 'case
low values are different' in compare_gimple_switch at
../../gcc/ipa-icf-gimple.c:808                                                 
                         23   false returned: '' in operand_equal_p at
../../gcc/ipa-icf-gimple.c:303                                                 
                                                            23   false
returned: 'one type is not polymorphic' in compatible_polymorphic_types_p at
../../gcc/ipa-icf-gimple.c:208                                                 
                  23   false returned: 'THIS pointer ODR type mismatch' in
equals_wpa at ../../gcc/ipa-icf.c:678                                          
                                                 29   false returned: 'ASM
strings are different' in compare_gimple_asm at ../../gcc/ipa-icf-gimple.c:909
     46   false returned: 'GIMPLE call operands are different' in
compare_gimple_call at ../../gcc/ipa-icf-gimple.c:681
    141   false returned: 'Declaration mismatch' in equals at
../../gcc/ipa-icf.c:1803
    169   false returned: '' in compare_decl at ../../gcc/ipa-icf-gimple.c:175
    182   false returned: 'DECL_CXX_DESTRUCTOR mismatch' in equals_wpa at
../../gcc/ipa-icf.c:565
    246   false returned: 'final flag mismatch' in
compare_referenced_symbol_properties at ../../gcc/ipa-icf.c:401
    391   false returned: '' in compare_phi_node at ../../gcc/ipa-icf.c:1581
    391   false returned: 'PHI node comparison returns false' in equals_private
at ../../gcc/ipa-icf.c:922
    571   false returned: 'compare_ao_refs failed (dependence clique
difference)' in compare_operand at ../../gcc/ipa-icf-gimple.c:373
    676   false returned: 'compare_ao_refs failed (semantic difference)' in
compare_operand at ../../gcc/ipa-icf-gimple.c:361
    676   false returned: 'METHOD_TYPE and FUNCTION_TYPE mismatch' in
equals_wpa at ../../gcc/ipa-icf.c:674
    707   false returned: 'operand_equal_p failed' in compare_operand at
../../gcc/ipa-icf-gimple.c:381
    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:1652
   1125   false returned: 'variables types are different' in equals at
../../gcc/ipa-icf.c:1698
   1171   false returned: 'DECL_CXX_CONSTRUCTOR mismatch' in equals_wpa at
../../gcc/ipa-icf.c:562
   1321   false returned: 'GIMPLE assignment operands are different' in
compare_gimple_assign at ../../gcc/ipa-icf-gimple.c:724
   2209   false returned: 'different decl attributes' in equals_wpa at
../../gcc/ipa-icf.c:663
   4643   false returned: 'GIMPLE LHS type mismatch' in compare_gimple_assign
at ../../gcc/ipa-icf-gimple.c:720
   8400   false returned: 'parameter type is not compatible' in
compatible_parm_types_p at ../../gcc/ipa-icf.c:512
  10187   false returned: 'inline attributes are different' in
compare_referenced_symbol_properties at ../../gcc/ipa-icf.c:350
  16210   false returned: 'parameter types are not compatible' in equals_wpa at
../../gcc/ipa-icf.c:640
  26071   false returned: 'references to virtual tables cannot be merged' in
compare_referenced_symbol_properties at ../../gcc/ipa-icf.c:373
  28810   false returned: 'decl_or_type flags are different' in equals_wpa at
../../gcc/ipa-icf.c:572
  32971   false returned: 'different tree types' in compatible_types_p at
../../gcc/ipa-icf-gimple.c:219
  61665   false returned: 'call function types are not compatible' in
compare_gimple_call at ../../gcc/ipa-icf-gimple.c:660
  96652   false returned: '' in equals_private at ../../gcc/ipa-icf.c:887
 101194   false returned: 'types are not compatible' in compatible_types_p at
../../gcc/ipa-icf-gimple.c:225
 119996   false returned: 'result types are different' in equals_wpa at
../../gcc/ipa-icf.c:622

many of call function types are not compatible are indirect calls with
mismatched number of parameters.  This is because we hash SSA_NAME as nothing.
That is easy to fix.

  parent reply	other threads:[~2020-11-19 18:10 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <bug-92535-4@http.gcc.gnu.org/bugzilla/>
2020-05-07 11:56 ` jakub at gcc dot gnu.org
2020-07-23  6:51 ` rguenth at gcc dot gnu.org
2020-11-17 19:49 ` hubicka at gcc dot gnu.org
2020-11-17 20:03 ` hubicka at gcc dot gnu.org
2020-11-17 20:05 ` hubicka at gcc dot gnu.org
2020-11-17 20:21 ` hubicka at gcc dot gnu.org
2020-11-17 21:37 ` hubicka at gcc dot gnu.org
2020-11-18  7:33 ` hubicka at gcc dot gnu.org
2020-11-18  8:26 ` hubicka at gcc dot gnu.org
2020-11-19 13:57 ` hubicka at gcc dot gnu.org
2020-11-19 18:10 ` hubicka at gcc dot gnu.org [this message]
2021-04-08 12:02 ` rguenth at gcc dot gnu.org
2021-04-15  9:38 ` [Bug ipa/92535] [10 " hubicka at gcc dot gnu.org
2021-05-04 12:31 ` rguenth at gcc dot gnu.org
2022-06-28 10:38 ` jakub at gcc dot gnu.org
2023-07-07  8:41 ` rguenth at gcc dot gnu.org

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bug-92535-4-FytcbTv7J5@http.gcc.gnu.org/bugzilla/ \
    --to=gcc-bugzilla@gcc.gnu.org \
    --cc=gcc-bugs@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).