2004-09-16 Andrew MacLeod <amacleod@redhat.com>
authoramacleod <amacleod@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 16 Sep 2004 18:45:33 +0000 (18:45 +0000)
committeramacleod <amacleod@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 16 Sep 2004 18:45:33 +0000 (18:45 +0000)
PR tree-optimization/17517
* tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
coalesce same-root variables without checking for abnormal PHI usage.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@87609 138bc75d-0d04-0410-961f-82ee72b054a4

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

index 265495f..72b17b2 100644 (file)
@@ -1,3 +1,9 @@
+2004-09-16  Andrew MacLeod  <amacleod@redhat.com>
+
+       PR tree-optimization/17517
+       * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't 
+       coalesce same-root variables without checking for abnormal PHI usage.
+
 2004-09-16  Daniel Berlin  <dberlin@dberlin.org>
        
        * cfgloop.h (duplicate_loop):  Add prototype.
index 494e3a5..49225d0 100644 (file)
@@ -169,6 +169,16 @@ copy_rename_partition_coalesce (var_map map, tree var1, tree var2, FILE *debug)
       return;
     }
 
+  /* Don't coalesce if one of the variables occurs in an abnormal PHI.  */
+  abnorm = (SSA_NAME_OCCURS_IN_ABNORMAL_PHI (rep1)
+           || SSA_NAME_OCCURS_IN_ABNORMAL_PHI (rep2));
+  if (abnorm)
+    {
+      if (debug)
+       fprintf (debug, " : Abnormal PHI barrier.  No coalesce.\n");
+      return;
+    }
+
   /* Partitions already have the same root, simply merge them.  */
   if (root1 == root2)
     {
@@ -251,16 +261,6 @@ copy_rename_partition_coalesce (var_map map, tree var1, tree var2, FILE *debug)
       return;
     }
 
-  /* Don't coalesce if one of the variables occurs in an abnormal PHI.  */
-  abnorm = (SSA_NAME_OCCURS_IN_ABNORMAL_PHI (rep1)
-           || SSA_NAME_OCCURS_IN_ABNORMAL_PHI (rep2));
-  if (abnorm)
-    {
-      if (debug)
-       fprintf (debug, " : Abnormal PHI barrier.  No coalesce.\n");
-      return;
-    }
-
   /* Merge the two partitions.  */
   p3 = partition_union (map->var_partition, p1, p2);