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