]> gcc.gnu.org Git - gcc.git/commitdiff
re PR tree-optimization/19097 (Quadratic behavior with many sets for the same registe...
authorAndrew MacLeod <amacleod@redhat.com>
Mon, 31 Oct 2005 13:38:05 +0000 (13:38 +0000)
committerAndrew Macleod <amacleod@gcc.gnu.org>
Mon, 31 Oct 2005 13:38:05 +0000 (13:38 +0000)
2005-10-31  Andrew MacLeod  <amacleod@redhat.com>

PR tree-optimization/19097
* tree-ssa-operands.c (correct_use_link): Don't look for modified stmts.

From-SVN: r106272

gcc/ChangeLog
gcc/tree-ssa-operands.c

index cd55c36ff1279538dc889bc876784fdf78314982..2f77e79491c12da116d4eee45321f3e56b8472e8 100644 (file)
@@ -1,3 +1,8 @@
+2005-10-31  Andrew MacLeod  <amacleod@redhat.com>
+       
+       PR tree-optimization/19097
+       * tree-ssa-operands.c (correct_use_link): Don't look for modified stmts.
+
 2005-10-31  J"orn Rennecke <joern.rennecke@st.com>
 
        * optabs.c (expand_unop): Take TRULY_NOOP_TRUNCATION into account.
index 30845546d287bce9ee582b81e9394eb5358dbb77..024762961236f444df539fcfe70e338d4c4b064d 100644 (file)
@@ -311,27 +311,12 @@ correct_use_link (use_operand_p ptr, tree stmt)
   prev = ptr->prev;
   if (prev)
     {
-      bool stmt_mod = true;
-      /* Find the first element which isn't a SAFE iterator, is in a different
-        stmt, and is not a modified stmt.  That node is in the correct list,
-        see if we are too.  */
-
-      while (stmt_mod)
-       {
-         while (prev->stmt == stmt || prev->stmt == NULL)
-           prev = prev->prev;
-         if (prev->use == NULL)
-           stmt_mod = false;
-         else
-           if ((stmt_mod = stmt_modified_p (prev->stmt)))
-             prev = prev->prev;
-       }
+      /* Find the root element, making sure we skip any safe iterators.  */
+      while (prev->use != NULL || prev->stmt == NULL)
+       prev = prev->prev;
 
       /* Get the ssa_name of the list the node is in.  */
-      if (prev->use == NULL)
-       root = prev->stmt;
-      else
-       root = *(prev->use);
+      root = prev->stmt;
       /* If it's the right list, simply return.  */
       if (root == *(ptr->use))
        return;
This page took 0.071234 seconds and 5 git commands to generate.