OSDN Git Service

2009-05-13 Doug Kwan <dougkwan@google.com>
authordougkwan <dougkwan@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 14 May 2009 00:02:55 +0000 (00:02 +0000)
committerdougkwan <dougkwan@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 14 May 2009 00:02:55 +0000 (00:02 +0000)
* tree-ssa-sccvn.c (compare_ops): Stabilize qsort.

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

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

index c2da140..52ae152 100644 (file)
@@ -1,3 +1,7 @@
+2009-05-13  Doug Kwan  <dougkwan@google.com>
+
+       * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
+
 2009-05-13  Adam Nemet  <anemet@caviumnetworks.com>
 
        * config/mips/mips.md (store): Add attributes for QI and HI.
index b101aeb..539afd2 100644 (file)
@@ -2421,7 +2421,7 @@ compare_ops (const void *pa, const void *pb)
   basic_block bbb;
 
   if (gimple_nop_p (opstmta) && gimple_nop_p (opstmtb))
-    return 0;
+    return SSA_NAME_VERSION (opa) - SSA_NAME_VERSION (opb);
   else if (gimple_nop_p (opstmta))
     return -1;
   else if (gimple_nop_p (opstmtb))
@@ -2431,7 +2431,7 @@ compare_ops (const void *pa, const void *pb)
   bbb = gimple_bb (opstmtb);
 
   if (!bba && !bbb)
-    return 0;
+    return SSA_NAME_VERSION (opa) - SSA_NAME_VERSION (opb);
   else if (!bba)
     return -1;
   else if (!bbb)
@@ -2441,12 +2441,15 @@ compare_ops (const void *pa, const void *pb)
     {
       if (gimple_code (opstmta) == GIMPLE_PHI
          && gimple_code (opstmtb) == GIMPLE_PHI)
-       return 0;
+       return SSA_NAME_VERSION (opa) - SSA_NAME_VERSION (opb);
       else if (gimple_code (opstmta) == GIMPLE_PHI)
        return -1;
       else if (gimple_code (opstmtb) == GIMPLE_PHI)
        return 1;
-      return gimple_uid (opstmta) - gimple_uid (opstmtb);
+      else if (gimple_uid (opstmta) != gimple_uid (opstmtb))
+        return gimple_uid (opstmta) - gimple_uid (opstmtb);
+      else
+       return SSA_NAME_VERSION (opa) - SSA_NAME_VERSION (opb);
     }
   return rpo_numbers[bba->index] - rpo_numbers[bbb->index];
 }