Don't include the destination interval in the union when computing
Parent - union(Y, ...). Doh.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117042 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/SplitKit.cpp b/lib/CodeGen/SplitKit.cpp
index 278a91d..88bf018 100644
--- a/lib/CodeGen/SplitKit.cpp
+++ b/lib/CodeGen/SplitKit.cpp
@@ -740,10 +740,10 @@
break;
}
}
+ DEBUG(dbgs() << " rewr BB#" << MI->getParent()->getNumber() << '\t'<< Idx);
assert(LI && "No register was live at use");
MO.setReg(LI->reg);
- DEBUG(dbgs() << " rewrite BB#" << MI->getParent()->getNumber() << '\t'
- << Idx << '\t' << *MI);
+ DEBUG(dbgs() << '\t' << *MI);
}
}
@@ -755,6 +755,8 @@
SmallVector<IIPair, 8> Iters;
for (LiveRangeEdit::iterator LI = edit_.begin(), LE = edit_.end(); LI != LE;
++LI) {
+ if (*LI == dupli_.getLI())
+ continue;
LiveInterval::const_iterator I = (*LI)->find(Start);
LiveInterval::const_iterator E = (*LI)->end();
if (I != E)