Fix an obvious merge bug in -join-globalcopies (disabled).
authorAndrew Trick <atrick@apple.com>
Thu, 15 Nov 2012 02:32:22 +0000 (02:32 +0000)
committerAndrew Trick <atrick@apple.com>
Thu, 15 Nov 2012 02:32:22 +0000 (02:32 +0000)
Jakub Staszak spotted this in review. I don't notice these things
until I manually rerun benchmarks. But reducing unit tests is a very
high priority.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168021 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/RegisterCoalescer.cpp

index df67975286055501f7c514e7b1a24c03ca49e174..5d6e0f00adb13749d6b0bd69c374f15b4c9112d6 100644 (file)
@@ -2080,8 +2080,10 @@ void RegisterCoalescer::joinAllIntervals() {
   unsigned CurrDepth = UINT_MAX;
   for (unsigned i = 0, e = MBBs.size(); i != e; ++i) {
     // Try coalescing the collected local copies for deeper loops.
-    if (JoinGlobalCopies && MBBs[i].Depth < CurrDepth)
+    if (JoinGlobalCopies && MBBs[i].Depth < CurrDepth) {
       coalesceLocals();
+      CurrDepth = MBBs[i].Depth;
+    }
     copyCoalesceInMBB(MBBs[i].MBB);
   }
   coalesceLocals();