diff options
| author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2010-08-13 01:05:26 +0000 |
|---|---|---|
| committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2010-08-13 01:05:26 +0000 |
| commit | 1aa1dc945219b380d1d55e7f94e8323c41119075 (patch) | |
| tree | effc8324181d554e48b4da0425518e6cf42b4b6b /lib | |
| parent | d6c209aaf1ecf0724d981c6e198449f631fd018b (diff) | |
| download | external_llvm-1aa1dc945219b380d1d55e7f94e8323c41119075.zip external_llvm-1aa1dc945219b380d1d55e7f94e8323c41119075.tar.gz external_llvm-1aa1dc945219b380d1d55e7f94e8323c41119075.tar.bz2 | |
Let LiveInterval::addRange extend existing ranges, it will verify that value
numbers match. The old check could accidentally leave holes in openli.
Also let useIntv add all ranges for the phi-def value inserted by
enterIntvAtEnd. This works as long at the value mapping is established in
enterIntvAtEnd.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110995 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/CodeGen/SplitKit.cpp | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/lib/CodeGen/SplitKit.cpp b/lib/CodeGen/SplitKit.cpp index 5193cf4..8ec2e1e 100644 --- a/lib/CodeGen/SplitKit.cpp +++ b/lib/CodeGen/SplitKit.cpp @@ -465,9 +465,6 @@ void SplitEditor::enterIntvAtEnd(MachineBasicBlock &A, MachineBasicBlock &B) { VNIB = openli_->getNextValue(SlotIndex(StartB, true), 0, false, lis_.getVNInfoAllocator()); VNIB->setIsPHIDef(true); - // Add a minimal range for the new value. - openli_->addRange(LiveRange(VNIB->def, std::min(EndB, CurB->end), VNIB)); - VNInfo *&mapVNI = valueMap_[CurB->valno]; if (mapVNI) { // Multiple copies - must create PHI value. @@ -496,8 +493,8 @@ void SplitEditor::useIntv(SlotIndex Start, SlotIndex End) { if (I != B) { --I; - // I begins before Start, but overlaps. openli may already have a value. - if (I->end > Start && !openli_->liveAt(Start)) + // I begins before Start, but overlaps. + if (I->end > Start) openli_->addRange(LiveRange(Start, std::min(End, I->end), mapValue(I->valno))); ++I; |
