mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-04-06 09:44:39 +00:00
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
This commit is contained in:
parent
00667a54f2
commit
2780d3ca81
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user