public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/112767] New: [14 regression] spurious -Waggressive-loop-optimizations
@ 2023-11-29 18:24 sss@li-snyder.org
2023-11-29 18:34 ` [Bug tree-optimization/112767] " pinskia at gcc dot gnu.org
` (4 more replies)
0 siblings, 5 replies; 6+ messages in thread
From: sss@li-snyder.org @ 2023-11-29 18:24 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112767
Bug ID: 112767
Summary: [14 regression] spurious
-Waggressive-loop-optimizations
Product: gcc
Version: 14.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: sss@li-snyder.org
Target Milestone: ---
With a recent checkout of gcc14 (20231129), on a x86_64-pc-linux-gnu host,
the following source gives a seemingly bogus -Waggressive-loop-optimizations
warning with -O3:
--------------------------------------------------------------
double reg_dict[32];
void foo(int);
void initialize()
{
int i=8;
for (int phi=0; phi<8; ++phi) {
reg_dict[i]=0;
int sn = 0;
if (i < 16) sn = 20;
foo(sn);
++i;
}
}
--------------------------------------------------------------
$ g++ -c -O3 x.cc
x.cc: In function ‘void initialize()’:
x.cc:9:16: warning: iteration 16 invokes undefined behavior
[-Waggressive-loop-optimizations]
9 | reg_dict[i]=0;
| ~~~~~~~~~~~^~
x.cc:8:22: note: within this loop
8 | for (int phi=0; phi<8; ++phi) {
| ~~~^~
This is a confusing warning, as the containing loop is executed only 8 times.
Exactly which undefined behavior is meant is also not spelled out.
From the context, i'd guess it to be an out-of-bounds array write,
but that's a false positive.
The warning happens with -O3 but not with lower optimization levels.
It also does not occur with gcc 13.2.1 20230728.
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug tree-optimization/112767] [14 regression] spurious -Waggressive-loop-optimizations
2023-11-29 18:24 [Bug c++/112767] New: [14 regression] spurious -Waggressive-loop-optimizations sss@li-snyder.org
@ 2023-11-29 18:34 ` pinskia at gcc dot gnu.org
2023-11-29 22:08 ` ppalka at gcc dot gnu.org
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: pinskia at gcc dot gnu.org @ 2023-11-29 18:34 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112767
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Last reconfirmed| |2023-11-29
Ever confirmed|0 |1
Target Milestone|--- |14.0
Status|UNCONFIRMED |NEW
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Confirmed. Looks like loop split is messing up ...
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug tree-optimization/112767] [14 regression] spurious -Waggressive-loop-optimizations
2023-11-29 18:24 [Bug c++/112767] New: [14 regression] spurious -Waggressive-loop-optimizations sss@li-snyder.org
2023-11-29 18:34 ` [Bug tree-optimization/112767] " pinskia at gcc dot gnu.org
@ 2023-11-29 22:08 ` ppalka at gcc dot gnu.org
2023-11-30 11:42 ` [Bug tree-optimization/112767] [14 regression] spurious -Waggressive-loop-optimizations since r14-2944-g3d48c11ad082de rguenth at gcc dot gnu.org
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: ppalka at gcc dot gnu.org @ 2023-11-29 22:08 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112767
Patrick Palka <ppalka at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |ppalka at gcc dot gnu.org
--- Comment #2 from Patrick Palka <ppalka at gcc dot gnu.org> ---
Started with r14-2944-g3d48c11ad082de
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug tree-optimization/112767] [14 regression] spurious -Waggressive-loop-optimizations since r14-2944-g3d48c11ad082de
2023-11-29 18:24 [Bug c++/112767] New: [14 regression] spurious -Waggressive-loop-optimizations sss@li-snyder.org
2023-11-29 18:34 ` [Bug tree-optimization/112767] " pinskia at gcc dot gnu.org
2023-11-29 22:08 ` ppalka at gcc dot gnu.org
@ 2023-11-30 11:42 ` rguenth at gcc dot gnu.org
2023-11-30 12:35 ` cvs-commit at gcc dot gnu.org
2023-11-30 12:36 ` rguenth at gcc dot gnu.org
4 siblings, 0 replies; 6+ messages in thread
From: rguenth at gcc dot gnu.org @ 2023-11-30 11:42 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112767
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot gnu.org
Status|NEW |ASSIGNED
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
Confirmed. Now with SCCP after loop splitting that's the pass
exposing enough info but not eliding the loop before IVCANON comes and
diagnoses this.
SCCP does
<bb 17> [local count: 119292719]:
- # i_23 = PHI <i_8(3)>
- # phi_24 = PHI <phi_9(3)>
+ i_23 = 16;
+ phi_24 = 8;
if (phi_24 != 8)
and only copyprop3 removes the condition.
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug tree-optimization/112767] [14 regression] spurious -Waggressive-loop-optimizations since r14-2944-g3d48c11ad082de
2023-11-29 18:24 [Bug c++/112767] New: [14 regression] spurious -Waggressive-loop-optimizations sss@li-snyder.org
` (2 preceding siblings ...)
2023-11-30 11:42 ` [Bug tree-optimization/112767] [14 regression] spurious -Waggressive-loop-optimizations since r14-2944-g3d48c11ad082de rguenth at gcc dot gnu.org
@ 2023-11-30 12:35 ` cvs-commit at gcc dot gnu.org
2023-11-30 12:36 ` rguenth at gcc dot gnu.org
4 siblings, 0 replies; 6+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2023-11-30 12:35 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112767
--- Comment #4 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Richard Biener <rguenth@gcc.gnu.org>:
https://gcc.gnu.org/g:2dde9f326ded84814a78c3044294b535c1f97b41
commit r14-6010-g2dde9f326ded84814a78c3044294b535c1f97b41
Author: Richard Biener <rguenther@suse.de>
Date: Thu Nov 30 12:38:53 2023 +0100
tree-optimization/112767 - spurious diagnostic after sccp/loop-split swap
We are diagnosing an unreachable loop which we only manage to elide
after the copyprop pass after sccp which leaves the code open for
diagnosing by the intermittent ivcanon pass. The following makes sure
to clean things up a bit earlier, propagating constant final values
to uses immediately.
PR tree-optimization/112767
* tree-scalar-evolution.cc (final_value_replacement_loop):
Propagate constants to immediate uses immediately.
* gcc.dg/tree-ssa/pr112767.c: New testcase.
* gcc.dg/graphite/pr83255.c: Disable SCCP.
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug tree-optimization/112767] [14 regression] spurious -Waggressive-loop-optimizations since r14-2944-g3d48c11ad082de
2023-11-29 18:24 [Bug c++/112767] New: [14 regression] spurious -Waggressive-loop-optimizations sss@li-snyder.org
` (3 preceding siblings ...)
2023-11-30 12:35 ` cvs-commit at gcc dot gnu.org
@ 2023-11-30 12:36 ` rguenth at gcc dot gnu.org
4 siblings, 0 replies; 6+ messages in thread
From: rguenth at gcc dot gnu.org @ 2023-11-30 12:36 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112767
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |FIXED
Status|ASSIGNED |RESOLVED
--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> ---
Fixed.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2023-11-30 12:36 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-11-29 18:24 [Bug c++/112767] New: [14 regression] spurious -Waggressive-loop-optimizations sss@li-snyder.org
2023-11-29 18:34 ` [Bug tree-optimization/112767] " pinskia at gcc dot gnu.org
2023-11-29 22:08 ` ppalka at gcc dot gnu.org
2023-11-30 11:42 ` [Bug tree-optimization/112767] [14 regression] spurious -Waggressive-loop-optimizations since r14-2944-g3d48c11ad082de rguenth at gcc dot gnu.org
2023-11-30 12:35 ` cvs-commit at gcc dot gnu.org
2023-11-30 12:36 ` 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).