public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug tree-optimization/44710] New: If-conversion generates redundant statements
@ 2010-06-29 9:11 irar at il dot ibm dot com
2010-06-29 9:11 ` [Bug tree-optimization/44710] " irar at il dot ibm dot com
` (4 more replies)
0 siblings, 5 replies; 6+ messages in thread
From: irar at il dot ibm dot com @ 2010-06-29 9:11 UTC (permalink / raw)
To: gcc-bugs
Starting from revision 160625
(http://gcc.gnu.org/ml/gcc-patches/2010-06/msg01155.html) if-conversion
generates redundant statements for
for (i = 0; i < N; i++)
if (arr[i] < limit)
{
pos = i + 1;
limit = arr[i];
}
# pos_22 = PHI <pos_1(4), 1(2)>
# i_23 = PHI <prephitmp.8_2(4), 0(2)>
# limit_24 = PHI <limit_4(4), 1.28e+2(2)>
# ivtmp.9_18 = PHI <ivtmp.9_17(4), 64(2)>
limit_9 = arr[i_23];
pos_10 = i_23 + 1;
D.4534_12 = limit_9 < limit_24; <-----
pretmp.7_3 = i_23 + 1;
D.4535_20 = limit_9 >= limit_24; <-----
pos_1 = [cond_expr] limit_9 >= limit_24 ? pos_22 : pos_10;
limit_4 = [cond_expr] limit_9 >= limit_24 ? limit_24 : limit_9;
prephitmp.8_2 = [cond_expr] limit_9 >= limit_24 ? pretmp.7_3 : pos_10;
ivtmp.9_17 = ivtmp.9_18 - 1;
D.4536_19 = D.4534_12 || D.4535_20; <-----
if (ivtmp.9_17 != 0)
goto <bb 4>;
else
goto <bb 5>;
The statements are removed by later dce pass, but they interfere with my
attempts to vectorize this loop.
--
Summary: If-conversion generates redundant statements
Product: gcc
Version: 4.6.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: irar at il dot ibm dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44710
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug tree-optimization/44710] If-conversion generates redundant statements
2010-06-29 9:11 [Bug tree-optimization/44710] New: If-conversion generates redundant statements irar at il dot ibm dot com
@ 2010-06-29 9:11 ` irar at il dot ibm dot com
2010-06-29 10:24 ` [Bug tree-optimization/44710] [4.6 Regression] " rguenth at gcc dot gnu dot org
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: irar at il dot ibm dot com @ 2010-06-29 9:11 UTC (permalink / raw)
To: gcc-bugs
------- Comment #1 from irar at il dot ibm dot com 2010-06-29 09:11 -------
Created an attachment (id=21036)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21036&action=view)
Full testcase
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44710
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug tree-optimization/44710] [4.6 Regression] If-conversion generates redundant statements
2010-06-29 9:11 [Bug tree-optimization/44710] New: If-conversion generates redundant statements irar at il dot ibm dot com
2010-06-29 9:11 ` [Bug tree-optimization/44710] " irar at il dot ibm dot com
@ 2010-06-29 10:24 ` rguenth at gcc dot gnu dot org
2010-06-29 13:57 ` spop at gcc dot gnu dot org
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2010-06-29 10:24 UTC (permalink / raw)
To: gcc-bugs
--
rguenth at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |missed-optimization
Summary|If-conversion generates |[4.6 Regression] If-
|redundant statements |conversion generates
| |redundant statements
Target Milestone|--- |4.6.0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44710
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug tree-optimization/44710] [4.6 Regression] If-conversion generates redundant statements
2010-06-29 9:11 [Bug tree-optimization/44710] New: If-conversion generates redundant statements irar at il dot ibm dot com
2010-06-29 9:11 ` [Bug tree-optimization/44710] " irar at il dot ibm dot com
2010-06-29 10:24 ` [Bug tree-optimization/44710] [4.6 Regression] " rguenth at gcc dot gnu dot org
@ 2010-06-29 13:57 ` spop at gcc dot gnu dot org
2010-07-08 16:38 ` spop at gcc dot gnu dot org
2010-07-08 16:41 ` spop at gcc dot gnu dot org
4 siblings, 0 replies; 6+ messages in thread
From: spop at gcc dot gnu dot org @ 2010-06-29 13:57 UTC (permalink / raw)
To: gcc-bugs
------- Comment #2 from spop at gcc dot gnu dot org 2010-06-29 13:56 -------
Mine.
Patch 0005 of http://gcc.gnu.org/ml/gcc-patches/2010-06/msg02250.html
fixes exactly this problem. I have not yet worked on correcting the patch
as Richi asked.
--
spop at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
AssignedTo|unassigned at gcc dot gnu |spop at gcc dot gnu dot org
|dot org |
Status|UNCONFIRMED |ASSIGNED
Ever Confirmed|0 |1
Last reconfirmed|0000-00-00 00:00:00 |2010-06-29 13:56:58
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44710
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug tree-optimization/44710] [4.6 Regression] If-conversion generates redundant statements
2010-06-29 9:11 [Bug tree-optimization/44710] New: If-conversion generates redundant statements irar at il dot ibm dot com
` (2 preceding siblings ...)
2010-06-29 13:57 ` spop at gcc dot gnu dot org
@ 2010-07-08 16:38 ` spop at gcc dot gnu dot org
2010-07-08 16:41 ` spop at gcc dot gnu dot org
4 siblings, 0 replies; 6+ messages in thread
From: spop at gcc dot gnu dot org @ 2010-07-08 16:38 UTC (permalink / raw)
To: gcc-bugs
------- Comment #3 from spop at gcc dot gnu dot org 2010-07-08 16:38 -------
Subject: Bug 44710
Author: spop
Date: Thu Jul 8 16:38:00 2010
New Revision: 161964
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=161964
Log:
Call maybe_fold_or_comparisons to fold OR-ed predicates.
2010-07-08 Sebastian Pop <sebastian.pop@amd.com>
PR tree-optimization/44710
* tree-if-conv.c (parse_predicate): New.
(add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
* gcc.dg/tree-ssa/ifc-6.c: New.
* gcc.dg/tree-ssa/ifc-pr44710.c: New.
Added:
trunk/gcc/testsuite/gcc.dg/tree-ssa/ifc-6.c
trunk/gcc/testsuite/gcc.dg/tree-ssa/ifc-pr44710.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-if-conv.c
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44710
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug tree-optimization/44710] [4.6 Regression] If-conversion generates redundant statements
2010-06-29 9:11 [Bug tree-optimization/44710] New: If-conversion generates redundant statements irar at il dot ibm dot com
` (3 preceding siblings ...)
2010-07-08 16:38 ` spop at gcc dot gnu dot org
@ 2010-07-08 16:41 ` spop at gcc dot gnu dot org
4 siblings, 0 replies; 6+ messages in thread
From: spop at gcc dot gnu dot org @ 2010-07-08 16:41 UTC (permalink / raw)
To: gcc-bugs
------- Comment #4 from spop at gcc dot gnu dot org 2010-07-08 16:40 -------
Fixed.
--
spop at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution| |FIXED
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44710
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2010-07-08 16:41 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-06-29 9:11 [Bug tree-optimization/44710] New: If-conversion generates redundant statements irar at il dot ibm dot com
2010-06-29 9:11 ` [Bug tree-optimization/44710] " irar at il dot ibm dot com
2010-06-29 10:24 ` [Bug tree-optimization/44710] [4.6 Regression] " rguenth at gcc dot gnu dot org
2010-06-29 13:57 ` spop at gcc dot gnu dot org
2010-07-08 16:38 ` spop at gcc dot gnu dot org
2010-07-08 16:41 ` spop at gcc dot gnu dot 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).