It is safe to ignore LastSplitPoint when the variable is not live out.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Wed, 23 Feb 2011 18:26:31 +0000 (18:26 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Wed, 23 Feb 2011 18:26:31 +0000 (18:26 +0000)
No code will be inserted after the split point anyway.

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

lib/CodeGen/SplitKit.cpp

index a97d890c25b09f28ba0332c90a620009fbc98b7b..fd5d50b7ecb8d6731d821a9bf26842822a5e412d 100644 (file)
@@ -961,10 +961,10 @@ void SplitEditor::splitSingleBlocks(const SplitAnalysis::BlockPtrSet &Blocks) {
 
     openIntv();
     SlotIndex SegStart = enterIntvBefore(BI.FirstUse);
-    if (BI.LastUse < BI.LastSplitPoint) {
+    if (!BI.LiveOut || BI.LastUse < BI.LastSplitPoint) {
       useIntv(SegStart, leaveIntvAfter(BI.LastUse));
     } else {
-      // THe last use os after tha last valid split point.
+      // The last use is after the last valid split point.
       SlotIndex SegStop = leaveIntvBefore(BI.LastSplitPoint);
       useIntv(SegStart, SegStop);
       overlapIntv(SegStop, BI.LastUse);