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