Be more aggressive about renumbering vregs after splitting them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62639 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/PreAllocSplitting.cpp b/lib/CodeGen/PreAllocSplitting.cpp
index 6b37637..3c8257f 100644
--- a/lib/CodeGen/PreAllocSplitting.cpp
+++ b/lib/CodeGen/PreAllocSplitting.cpp
@@ -1127,9 +1127,11 @@
LIs->InsertMachineInstrInMaps(prior(RestorePt), RestoreIdx);
if (KillPt->getParent() == BarrierMBB) {
- UpdateRegisterInterval(ValNo, LIs->getUseIndex(KillIdx)+1,
+ VNInfo* After = UpdateRegisterInterval(ValNo, LIs->getUseIndex(KillIdx)+1,
LIs->getDefIndex(RestoreIdx));
+ RenumberValno(After);
+
++NumSplits;
++NumRemats;
return true;
@@ -1312,9 +1314,11 @@
UpdateSpillSlotInterval(ValNo, LIs->getUseIndex(SpillIndex)+1,
LIs->getDefIndex(RestoreIndex));
- UpdateRegisterInterval(ValNo, LIs->getUseIndex(SpillIndex)+1,
+ VNInfo* After = UpdateRegisterInterval(ValNo,
+ LIs->getUseIndex(SpillIndex)+1,
LIs->getDefIndex(RestoreIndex));
-
+ RenumberValno(After);
+
++NumSplits;
return true;
}