Update split candidate correctly when interference cache is full.
[oota-llvm.git] / lib / CodeGen / RegAllocGreedy.cpp
index f54a2c85d1006dc802d450af2dbc880851f65f7a..71b7f4f78524d1d158c2d4d581a30c92e9501389 100644 (file)
@@ -1118,6 +1118,8 @@ unsigned RAGreedy::tryRegionSplit(LiveInterval &VirtReg, AllocationOrder &Order,
       }
       --NumCands;
       GlobalCand[Worst] = GlobalCand[NumCands];
+      if (BestCand == NumCands)
+        BestCand = Worst;
     }
 
     if (GlobalCand.size() <= NumCands)