[Bug tree-optimization/56286] vectorizer does not keep loop-closed SSA up-to-date

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Feb 11 12:55:00 GMT 2013


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56286

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |compile-time-hog,
                   |                            |wrong-code
             Status|UNCONFIRMED                 |ASSIGNED
   Last reconfirmed|                            |2013-02-11
         AssignedTo|unassigned at gcc dot       |rguenth at gcc dot gnu.org
                   |gnu.org                     |
     Ever Confirmed|0                           |1

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> 2013-02-11 12:55:06 UTC ---
This blocks fixing of tree-ssa-loop-manip.c:find_uses_to_rename

   /* ??? If CHANGED_BBS is empty we rewrite the whole function -- why?  */
   if (changed_bbs && !bitmap_empty_p (changed_bbs))
     {
       EXECUTE_IF_SET_IN_BITMAP (changed_bbs, 0, index, bi)

which can be a major resource hog.  Also relying on that bug is broken,
without checking we can end up generating wrong-code this way.

Incremental betterness can be achieved by

Index: gcc/tree-vect-stmts.c
===================================================================
--- gcc/tree-vect-stmts.c       (revision 195938)
+++ gcc/tree-vect-stmts.c       (working copy)
@@ -5834,46 +5834,6 @@ vect_transform_stmt (gimple stmt, gimple
        }
     }

-  /* Handle inner-loop stmts whose DEF is used in the loop-nest that
-     is being vectorized, but outside the immediately enclosing loop.  */
-  if (vec_stmt
...
-           }
-       }
-    }
-
   /* Handle stmts whose DEF is used outside the loop-nest that is
      being vectorized.  */


But still

FAIL: gcc.dg/vect/no-scevccp-outer-22.c (internal compiler error)
FAIL: gcc.dg/vect/no-scevccp-outer-22.c (test for excess errors)
WARNING: gcc.dg/vect/no-scevccp-outer-22.c compilation failed to produce
executable
FAIL: gcc.dg/vect/no-scevccp-noreassoc-outer-4.c (internal compiler error)
FAIL: gcc.dg/vect/no-scevccp-noreassoc-outer-4.c (test for excess errors)
WARNING: gcc.dg/vect/no-scevccp-noreassoc-outer-4.c compilation failed to
produce executable
FAIL: gcc.dg/vect/no-scevccp-noreassoc-outer-4.c scan-tree-dump-times vect
"OUTER LOOP VECTORIZED." 1



More information about the Gcc-bugs mailing list