public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug tree-optimization/103223] New: [12 regression] Access attribute prevents IPA optimization
@ 2021-11-13 10:05 hubicka at gcc dot gnu.org
  2021-11-13 23:56 ` [Bug tree-optimization/103223] [12 regression] Access attribute dropped when ipa-sra is applied hubicka at gcc dot gnu.org
                   ` (12 more replies)
  0 siblings, 13 replies; 14+ messages in thread
From: hubicka at gcc dot gnu.org @ 2021-11-13 10:05 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 103223
           Summary: [12 regression] Access attribute prevents IPA
                    optimization
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: hubicka at gcc dot gnu.org
  Target Milestone: ---

Hi,
ipa-fnsummary sets can_change_signature flag which determines whether we can
manipulate parameters of a given function.  It tests:

       /* Type attributes can use parameter indices to describe them.  */
       if (TYPE_ATTRIBUTES (TREE_TYPE (node->decl))
         node->can_change_signature = false
Which unfortunately triggers on many C functions now when we introduced the
access attribute.

Updating happens in ipa-param-manipulation and we do have infrastructure how to
rewrite (suriving) old attributes to new ones, so we could support access
attribute updating (or always map to old indexes when using it).

I don't think possible warnings should inhibit useful optimizations and this is
a regression wrt compilers before the access attribute.  I am having patch to
fix similar issue with fnspec attribute that can be safely removed at signature
change since we now can preserve info in ipa-modref.

Martin, I wonder if if you would be OK with simply dropping the access when
function signature changes (which I can prepare patch for) or do you want to
dive into updating it?

Once new fuction is created, for every new parameter there is
get_original_index accessor which returns original parameter index (if it
exists).  This could be easily used to update access and drop those entries
that was really optimized out IMO

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2023-05-08 12:23 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-13 10:05 [Bug tree-optimization/103223] New: [12 regression] Access attribute prevents IPA optimization hubicka at gcc dot gnu.org
2021-11-13 23:56 ` [Bug tree-optimization/103223] [12 regression] Access attribute dropped when ipa-sra is applied hubicka at gcc dot gnu.org
2021-11-15  9:02 ` rguenth at gcc dot gnu.org
2021-11-15 15:50 ` jamborm at gcc dot gnu.org
2021-11-15 15:58 ` jamborm at gcc dot gnu.org
2021-11-15 16:12 ` msebor at gcc dot gnu.org
2021-11-15 18:12 ` jamborm at gcc dot gnu.org
2021-11-15 20:19 ` msebor at gcc dot gnu.org
2021-11-15 21:02 ` hubicka at kam dot mff.cuni.cz
2021-11-15 22:32 ` msebor at gcc dot gnu.org
2021-11-22  7:35 ` admin at levyhsu dot com
2021-11-22  7:53 ` hubicka at kam dot mff.cuni.cz
2022-05-06  8:31 ` [Bug ipa/103223] [12/13 " jakub at gcc dot gnu.org
2023-05-08 12:23 ` [Bug ipa/103223] [12/13/14 " rguenth at gcc dot gnu.org

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).