dupli always has an interval now.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Tue, 5 Oct 2010 23:10:04 +0000 (23:10 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Tue, 5 Oct 2010 23:10:04 +0000 (23:10 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115708 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/SplitKit.cpp

index 1864e3781321d243840504c49a5495c57ee435a8..b1ce209d456f8af6a7490db177bc42ecf1df1c1d 100644 (file)
@@ -798,6 +798,7 @@ SplitEditor::addTruncSimpleRange(SlotIndex Start, SlotIndex End, VNInfo *VNI) {
 /// instructions using curli to use the new intervals.
 void SplitEditor::rewrite() {
   assert(!openli_.getLI() && "Previous LI not closed before rewrite");
+  assert(dupli_.getLI() && "No dupli for rewrite. Noop spilt?");
 
   // First we need to fill in the live ranges in dupli.
   // If values were redefined, we need a full recoloring with SSA update.
@@ -863,23 +864,19 @@ void SplitEditor::rewrite() {
         break;
       }
     }
-    if (LI) {
-      MO.setReg(LI->reg);
-      sa_.removeUse(MI);
-      DEBUG(dbgs() << "  rewrite " << Idx << '\t' << *MI);
-    }
+    MO.setReg(LI->reg);
+    sa_.removeUse(MI);
+    DEBUG(dbgs() << "  rewrite " << Idx << '\t' << *MI);
   }
 
   // dupli_ goes in last, after rewriting.
-  if (dupli_.getLI()) {
-    if (dupli_.getLI()->empty()) {
-      DEBUG(dbgs() << "  dupli became empty?\n");
-      lis_.removeInterval(dupli_.getLI()->reg);
-      dupli_.reset(0);
-    } else {
-      dupli_.getLI()->RenumberValues(lis_);
-      intervals_.push_back(dupli_.getLI());
-    }
+  if (dupli_.getLI()->empty()) {
+    DEBUG(dbgs() << "  dupli became empty?\n");
+    lis_.removeInterval(dupli_.getLI()->reg);
+    dupli_.reset(0);
+  } else {
+    dupli_.getLI()->RenumberValues(lis_);
+    intervals_.push_back(dupli_.getLI());
   }
 
   // Calculate spill weight and allocation hints for new intervals.