From 9d999772df3a7fd96857bb9155e1e9ab5fee7a13 Mon Sep 17 00:00:00 2001 From: Jakob Stoklund Olesen Date: Thu, 21 Oct 2010 18:47:08 +0000 Subject: [PATCH] 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 --- lib/CodeGen/SplitKit.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/CodeGen/SplitKit.cpp b/lib/CodeGen/SplitKit.cpp index 278a91d97d2..88bf01800cf 100644 --- a/lib/CodeGen/SplitKit.cpp +++ b/lib/CodeGen/SplitKit.cpp @@ -740,10 +740,10 @@ void SplitEditor::rewrite(unsigned reg) { 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 @@ SplitEditor::addTruncSimpleRange(SlotIndex Start, SlotIndex End, VNInfo *VNI) { SmallVector 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)