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 rtl-optimization/97836] [11 Regression] wrong code at -O1 on x86_64-pc-linux-gnu by r11-5029
Date: Sun, 15 Nov 2020 13:33:26 +0000	[thread overview]
Message-ID: <bug-97836-4-hXRuGuQ199@http.gcc.gnu.org/bugzilla/> (raw)
In-Reply-To: <bug-97836-4@http.gcc.gnu.org/bugzilla/>

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

Jan Hubicka <hubicka at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
                 CC|                            |hubicka at gcc dot gnu.org

--- Comment #3 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
Confirmed.
The wrong code happens already in fre1 where we do:

main ()
{
  int f;
  int * _1;

  <bb 2> :
  _1 = d (&f);
  __builtin_abort ();

}

Modref summary for d is:
  loads:
    Limits: 32 bases, 16 refs
      Base 0: alias set 1
        Ref 0: alias set 1
          Every access
  stores:
    Limits: 32 bases, 16 refs
      Base 0: alias set 1
        Ref 0: alias set 1
          Every access
  parm 0 flags: direct noclobber noescape unused

for body:

d (int * e)
{
  int D.1973;
  int a.0_1;

  <bb 2> :
  a.0_1 = a;
  if (a.0_1 != 0)
    goto <bb 3>; [INV]
  else
    goto <bb 4>; [INV]

  <bb 3> :
  a = 0;

  <bb 4> :
  return e_10(D);

}

direct noclobber noescape looks correct to me: value is only returned and
noescape values are allowed to escape to return value (per IRC discussion we
had with Richi).

I think problem is with unused that makes tree-ssa-structalias to completely
skip the parameter rather than adding it to return value alias set.

I guess we want to specify what unused really means. Indeed current comment is
"Nonzero if the argument is not used by the function." and in this case we wold
need to have separate EAF_NOREAD so current EAF_UNUSED would be EAF_NOCLOBBER |
EAF_NOREAD or track that internally in ipa-modref.

A quick fix is to make return statement clear EAF_UNUSED flag.

  parent reply	other threads:[~2020-11-15 13:33 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-15  9:49 [Bug rtl-optimization/97836] New: wrong code at -O1 on x86_64-pc-linux-gnu zhendong.su at inf dot ethz.ch
2020-11-15 12:53 ` [Bug rtl-optimization/97836] " zhendong.su at inf dot ethz.ch
2020-11-15 13:19 ` [Bug rtl-optimization/97836] [11 Regression] wrong code at -O1 on x86_64-pc-linux-gnu by r11-5029 hjl.tools at gmail dot com
2020-11-15 13:33 ` hubicka at gcc dot gnu.org [this message]
2020-11-16  7:26 ` rguenth at gcc dot gnu.org
2020-11-16  7:46 ` hubicka at gcc dot gnu.org
2020-12-02 19:31 ` jakub at gcc dot gnu.org
2021-01-01 19:11 ` [Bug rtl-optimization/97836] " hubicka at gcc dot gnu.org
2021-03-29 10:21 ` hubicka at gcc dot gnu.org
2021-04-27 11:39 ` jakub at gcc dot gnu.org
2021-07-28  7:05 ` rguenth at gcc dot gnu.org
2021-08-22 19:40 ` hubicka 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-97836-4-hXRuGuQ199@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).