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 tree-optimization/103223] New: [12 regression] Access attribute prevents IPA optimization
Date: Sat, 13 Nov 2021 10:05:37 +0000	[thread overview]
Message-ID: <bug-103223-4@http.gcc.gnu.org/bugzilla/> (raw)

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

             reply	other threads:[~2021-11-13 10:05 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-13 10:05 hubicka at gcc dot gnu.org [this message]
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

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-103223-4@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).