public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug tree-optimization/102902] New: wrong code at -O3 on x86_64-linux-gnu (generated code hangs)
@ 2021-10-22 17:35 zhendong.su at inf dot ethz.ch
  2021-10-22 18:53 ` [Bug tree-optimization/102902] [12 Regression] " pinskia at gcc dot gnu.org
                   ` (10 more replies)
  0 siblings, 11 replies; 12+ messages in thread
From: zhendong.su at inf dot ethz.ch @ 2021-10-22 17:35 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 102902
           Summary: wrong code at -O3 on x86_64-linux-gnu (generated code
                    hangs)
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: zhendong.su at inf dot ethz.ch
  Target Milestone: ---

This appears to be a recent regression.

[575] % gcctk -v
Using built-in specs.
COLLECT_GCC=gcctk
COLLECT_LTO_WRAPPER=/local/suz-local/software/local/gcc-trunk/libexec/gcc/x86_64-pc-linux-gnu/12.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../gcc-trunk/configure --disable-bootstrap
--prefix=/local/suz-local/software/local/gcc-trunk --enable-languages=c,c++
--disable-werror --enable-multilib --with-system-zlib
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 12.0.0 20211022 (experimental) [master r12-4624-gae5c540662e] (GCC) 
[576] % 
[576] % gcctk -O2 small.c; ./a.out
[577] % 
[577] % gcctk -O3 small.c
[578] % timeout -s 9 10 ./a.out
Killed
[579] % 
[579] % cat small.c
int printf (const char *, ...);
int a, b, c, d, e, f;
int main() {
  int g;
  short h = 1;
  for (; e < 2; e++) {
  L1:
    f = 1;
    while (b > 0 || a > 0) {
      g++;
      h++;
      printf("%d", g);
    }
  L2:
    if (!h && (!c || a))
      goto L1;
    if (c)
      goto L2;
  }
  return 0;
}

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

* [Bug tree-optimization/102902] [12 Regression] wrong code at -O3 on x86_64-linux-gnu (generated code hangs)
  2021-10-22 17:35 [Bug tree-optimization/102902] New: wrong code at -O3 on x86_64-linux-gnu (generated code hangs) zhendong.su at inf dot ethz.ch
@ 2021-10-22 18:53 ` pinskia at gcc dot gnu.org
  2021-10-22 21:20 ` pinskia at gcc dot gnu.org
                   ` (9 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: pinskia at gcc dot gnu.org @ 2021-10-22 18:53 UTC (permalink / raw)
  To: gcc-bugs

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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Depends on|                            |100810
   Last reconfirmed|                            |2021-10-22
             Status|UNCONFIRMED                 |NEW
     Ever confirmed|0                           |1

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Confirmed.  -fno-ivopts fixes the issue.  I suspect (have not fully looked
yet), this is the same issue as PR 100810. Initializing g also fixes the issue
which is another sign it is the same issue as PR 100810.


Referenced Bugs:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100810
[Bug 100810] [12 Regression] wrong code at -O1 and above on x86_64-linux-gnu
since r12-397-gda9e6e63d1ae22e530ec7baf59f6ed028bf05776

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

* [Bug tree-optimization/102902] [12 Regression] wrong code at -O3 on x86_64-linux-gnu (generated code hangs)
  2021-10-22 17:35 [Bug tree-optimization/102902] New: wrong code at -O3 on x86_64-linux-gnu (generated code hangs) zhendong.su at inf dot ethz.ch
  2021-10-22 18:53 ` [Bug tree-optimization/102902] [12 Regression] " pinskia at gcc dot gnu.org
@ 2021-10-22 21:20 ` pinskia at gcc dot gnu.org
  2021-10-25  8:44 ` [Bug tree-optimization/102902] [12 Regression] -O3 produces code that uses an uninitialized variable but originally was not used by r12-3876 marxin at gcc dot gnu.org
                   ` (8 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: pinskia at gcc dot gnu.org @ 2021-10-22 21:20 UTC (permalink / raw)
  To: gcc-bugs

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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |12.0

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

* [Bug tree-optimization/102902] [12 Regression] -O3 produces code that uses an uninitialized variable but originally was not used by r12-3876
  2021-10-22 17:35 [Bug tree-optimization/102902] New: wrong code at -O3 on x86_64-linux-gnu (generated code hangs) zhendong.su at inf dot ethz.ch
  2021-10-22 18:53 ` [Bug tree-optimization/102902] [12 Regression] " pinskia at gcc dot gnu.org
  2021-10-22 21:20 ` pinskia at gcc dot gnu.org
@ 2021-10-25  8:44 ` marxin at gcc dot gnu.org
  2021-10-25  8:45 ` marxin at gcc dot gnu.org
                   ` (7 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: marxin at gcc dot gnu.org @ 2021-10-25  8:44 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #2 from Martin Liška <marxin at gcc dot gnu.org> ---
*** Bug 102922 has been marked as a duplicate of this bug. ***

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

* [Bug tree-optimization/102902] [12 Regression] -O3 produces code that uses an uninitialized variable but originally was not used by r12-3876
  2021-10-22 17:35 [Bug tree-optimization/102902] New: wrong code at -O3 on x86_64-linux-gnu (generated code hangs) zhendong.su at inf dot ethz.ch
                   ` (2 preceding siblings ...)
  2021-10-25  8:44 ` [Bug tree-optimization/102902] [12 Regression] -O3 produces code that uses an uninitialized variable but originally was not used by r12-3876 marxin at gcc dot gnu.org
@ 2021-10-25  8:45 ` marxin at gcc dot gnu.org
  2021-10-25  8:57 ` marxin at gcc dot gnu.org
                   ` (6 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: marxin at gcc dot gnu.org @ 2021-10-25  8:45 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #3 from Martin Liška <marxin at gcc dot gnu.org> ---
I guess fixed with:

commit aa15952d646fd5dd569fce287b719a737ae66e4f (HEAD -> master, origin/trunk,
origin/master, origin/HEAD)
Author: Richard Biener <rguenther@suse.de>
Date:   Mon Oct 25 09:33:15 2021 +0200

    tree-optimization/102920 - fix PHI VN with undefined args

    This fixes a latent issue exposed by now allowing VN_TOP in PHI
    arguments.  We may only use optimistic equality when merging values on
    different edges, not when merging values on the same edge - in particular
    we may not choose the undef value on any edge when there's a not undef
    value as well.

    2021-10-25  Richard Biener  <rguenther@suse.de>

            PR tree-optimization/102920
            * tree-ssa-sccvn.h (expressions_equal_p): Add argument
            controlling VN_TOP matching behavior.
            * tree-ssa-sccvn.c (expressions_equal_p): Likewise.
            (vn_phi_eq): Do not optimistically match VN_TOP.

            * gcc.dg/torture/pr102920.c: New testcase.

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

* [Bug tree-optimization/102902] [12 Regression] -O3 produces code that uses an uninitialized variable but originally was not used by r12-3876
  2021-10-22 17:35 [Bug tree-optimization/102902] New: wrong code at -O3 on x86_64-linux-gnu (generated code hangs) zhendong.su at inf dot ethz.ch
                   ` (3 preceding siblings ...)
  2021-10-25  8:45 ` marxin at gcc dot gnu.org
@ 2021-10-25  8:57 ` marxin at gcc dot gnu.org
  2021-10-25  8:58 ` rguenth at gcc dot gnu.org
                   ` (5 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: marxin at gcc dot gnu.org @ 2021-10-25  8:57 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #4 from Martin Liška <marxin at gcc dot gnu.org> ---
(In reply to Martin Liška from comment #3)
> I guess fixed with:
> 
> commit aa15952d646fd5dd569fce287b719a737ae66e4f (HEAD -> master,
> origin/trunk, origin/master, origin/HEAD)
> Author: Richard Biener <rguenther@suse.de>
> Date:   Mon Oct 25 09:33:15 2021 +0200
> 
>     tree-optimization/102920 - fix PHI VN with undefined args
>     
>     This fixes a latent issue exposed by now allowing VN_TOP in PHI
>     arguments.  We may only use optimistic equality when merging values on
>     different edges, not when merging values on the same edge - in particular
>     we may not choose the undef value on any edge when there's a not undef
>     value as well.
>     
>     2021-10-25  Richard Biener  <rguenther@suse.de>
>     
>             PR tree-optimization/102920
>             * tree-ssa-sccvn.h (expressions_equal_p): Add argument
>             controlling VN_TOP matching behavior.
>             * tree-ssa-sccvn.c (expressions_equal_p): Likewise.
>             (vn_phi_eq): Do not optimistically match VN_TOP.
>     
>             * gcc.dg/torture/pr102920.c: New testcase.

Sorry, wrong PR.

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

* [Bug tree-optimization/102902] [12 Regression] -O3 produces code that uses an uninitialized variable but originally was not used by r12-3876
  2021-10-22 17:35 [Bug tree-optimization/102902] New: wrong code at -O3 on x86_64-linux-gnu (generated code hangs) zhendong.su at inf dot ethz.ch
                   ` (4 preceding siblings ...)
  2021-10-25  8:57 ` marxin at gcc dot gnu.org
@ 2021-10-25  8:58 ` rguenth at gcc dot gnu.org
  2021-11-24  8:35 ` zhendong.su at inf dot ethz.ch
                   ` (4 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-10-25  8:58 UTC (permalink / raw)
  To: gcc-bugs

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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Depends on|100810                      |
         Resolution|---                         |DUPLICATE

--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> ---
Dup.

*** This bug has been marked as a duplicate of bug 102920 ***


Referenced Bugs:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100810
[Bug 100810] [12 Regression] wrong code at -O1 and above on x86_64-linux-gnu
since r12-397-gda9e6e63d1ae22e530ec7baf59f6ed028bf05776

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

* [Bug tree-optimization/102902] [12 Regression] -O3 produces code that uses an uninitialized variable but originally was not used by r12-3876
  2021-10-22 17:35 [Bug tree-optimization/102902] New: wrong code at -O3 on x86_64-linux-gnu (generated code hangs) zhendong.su at inf dot ethz.ch
                   ` (5 preceding siblings ...)
  2021-10-25  8:58 ` rguenth at gcc dot gnu.org
@ 2021-11-24  8:35 ` zhendong.su at inf dot ethz.ch
  2021-11-24  8:44 ` pinskia at gcc dot gnu.org
                   ` (3 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: zhendong.su at inf dot ethz.ch @ 2021-11-24  8:35 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #6 from Zhendong Su <zhendong.su at inf dot ethz.ch> ---
Hi Richard, I just noticed that this issue was mis-categorized as a duplicate
of 102920, which was filed later. It's not very important, but it would
probably be nice to correctly label the issues in the bug tracker. Thanks.

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

* [Bug tree-optimization/102902] [12 Regression] -O3 produces code that uses an uninitialized variable but originally was not used by r12-3876
  2021-10-22 17:35 [Bug tree-optimization/102902] New: wrong code at -O3 on x86_64-linux-gnu (generated code hangs) zhendong.su at inf dot ethz.ch
                   ` (6 preceding siblings ...)
  2021-11-24  8:35 ` zhendong.su at inf dot ethz.ch
@ 2021-11-24  8:44 ` pinskia at gcc dot gnu.org
  2021-11-24  8:46 ` pinskia at gcc dot gnu.org
                   ` (2 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: pinskia at gcc dot gnu.org @ 2021-11-24  8:44 UTC (permalink / raw)
  To: gcc-bugs

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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|DUPLICATE                   |---
             Status|RESOLVED                    |NEW

--- Comment #7 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Reopening.

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

* [Bug tree-optimization/102902] [12 Regression] -O3 produces code that uses an uninitialized variable but originally was not used by r12-3876
  2021-10-22 17:35 [Bug tree-optimization/102902] New: wrong code at -O3 on x86_64-linux-gnu (generated code hangs) zhendong.su at inf dot ethz.ch
                   ` (7 preceding siblings ...)
  2021-11-24  8:44 ` pinskia at gcc dot gnu.org
@ 2021-11-24  8:46 ` pinskia at gcc dot gnu.org
  2022-01-17 13:09 ` rguenth at gcc dot gnu.org
  2022-04-04 12:59 ` rguenth at gcc dot gnu.org
  10 siblings, 0 replies; 12+ messages in thread
From: pinskia at gcc dot gnu.org @ 2021-11-24  8:46 UTC (permalink / raw)
  To: gcc-bugs

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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           See Also|                            |https://gcc.gnu.org/bugzill
                   |                            |a/show_bug.cgi?id=100810

--- Comment #8 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
It is basically the same as PR 100810. we have a conditional use of an
unitialized variable and ivopts decides to make it unconditional ...

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

* [Bug tree-optimization/102902] [12 Regression] -O3 produces code that uses an uninitialized variable but originally was not used by r12-3876
  2021-10-22 17:35 [Bug tree-optimization/102902] New: wrong code at -O3 on x86_64-linux-gnu (generated code hangs) zhendong.su at inf dot ethz.ch
                   ` (8 preceding siblings ...)
  2021-11-24  8:46 ` pinskia at gcc dot gnu.org
@ 2022-01-17 13:09 ` rguenth at gcc dot gnu.org
  2022-04-04 12:59 ` rguenth at gcc dot gnu.org
  10 siblings, 0 replies; 12+ messages in thread
From: rguenth at gcc dot gnu.org @ 2022-01-17 13:09 UTC (permalink / raw)
  To: gcc-bugs

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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P1

--- Comment #9 from Richard Biener <rguenth at gcc dot gnu.org> ---
PR100810 is P1 so lets make this one, too.  Just to say, the bug will be very
difficult to fix for good because fundamentally a default def SSA looks
like to have the same value for two different uses but the way we handle it
means that guarantee is violated.  It's difficult to cure that not only because
former defs can become undefs.  We'd need a way to stabilize the value on
an uninit use but without sacrifying optimization (for uses in PHI nodes).

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

* [Bug tree-optimization/102902] [12 Regression] -O3 produces code that uses an uninitialized variable but originally was not used by r12-3876
  2021-10-22 17:35 [Bug tree-optimization/102902] New: wrong code at -O3 on x86_64-linux-gnu (generated code hangs) zhendong.su at inf dot ethz.ch
                   ` (9 preceding siblings ...)
  2022-01-17 13:09 ` rguenth at gcc dot gnu.org
@ 2022-04-04 12:59 ` rguenth at gcc dot gnu.org
  10 siblings, 0 replies; 12+ messages in thread
From: rguenth at gcc dot gnu.org @ 2022-04-04 12:59 UTC (permalink / raw)
  To: gcc-bugs

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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |DUPLICATE
             Status|NEW                         |RESOLVED

--- Comment #10 from Richard Biener <rguenth at gcc dot gnu.org> ---
Confirmed as duplicate, -fno-ivopts fixes it, as does the proposed patch(es) in
the duplicate.

*** This bug has been marked as a duplicate of bug 100810 ***

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

end of thread, other threads:[~2022-04-04 12:59 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-22 17:35 [Bug tree-optimization/102902] New: wrong code at -O3 on x86_64-linux-gnu (generated code hangs) zhendong.su at inf dot ethz.ch
2021-10-22 18:53 ` [Bug tree-optimization/102902] [12 Regression] " pinskia at gcc dot gnu.org
2021-10-22 21:20 ` pinskia at gcc dot gnu.org
2021-10-25  8:44 ` [Bug tree-optimization/102902] [12 Regression] -O3 produces code that uses an uninitialized variable but originally was not used by r12-3876 marxin at gcc dot gnu.org
2021-10-25  8:45 ` marxin at gcc dot gnu.org
2021-10-25  8:57 ` marxin at gcc dot gnu.org
2021-10-25  8:58 ` rguenth at gcc dot gnu.org
2021-11-24  8:35 ` zhendong.su at inf dot ethz.ch
2021-11-24  8:44 ` pinskia at gcc dot gnu.org
2021-11-24  8:46 ` pinskia at gcc dot gnu.org
2022-01-17 13:09 ` rguenth at gcc dot gnu.org
2022-04-04 12:59 ` 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).