When updating live range endpoints, make sure to preserve the early clobber bit.
[oota-llvm.git] / lib / CodeGen / LiveIntervalAnalysis.cpp
index 87538c42438309fdade274fada4247bc2531b3a5..bdf4f2dfffce8c9423a39408eacea120eda39057 100644 (file)
@@ -1173,7 +1173,7 @@ private:
     SlotIndex LastUse = findLastUseBefore(LI->reg, OldIdx);
     if (LastUse != NewIdx)
       moveKillFlags(LI->reg, NewIdx, LastUse);
-    LR->end = LastUse.getRegSlot();
+    LR->end = LastUse.getRegSlot(LR->end.isEarlyClobber());
   }
 
   void moveEnteringDownFrom(SlotIndex OldIdx, IntRangePair& P) {
@@ -1187,7 +1187,7 @@ private:
         assert(LR->end > OldIdx && "LiveRange does not cover original slot");
         moveKillFlags(LI->reg, LR->end, NewIdx);
       }
-      LR->end = NewIdx.getRegSlot();
+      LR->end = NewIdx.getRegSlot(LR->end.isEarlyClobber());
     }
   }