mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-23 02:29:18 +00:00
dupli always has an interval now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115708 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
6dbbff9172
commit
d00f7e0c76
@ -798,6 +798,7 @@ SplitEditor::addTruncSimpleRange(SlotIndex Start, SlotIndex End, VNInfo *VNI) {
|
|||||||
/// instructions using curli to use the new intervals.
|
/// instructions using curli to use the new intervals.
|
||||||
void SplitEditor::rewrite() {
|
void SplitEditor::rewrite() {
|
||||||
assert(!openli_.getLI() && "Previous LI not closed before rewrite");
|
assert(!openli_.getLI() && "Previous LI not closed before rewrite");
|
||||||
|
assert(dupli_.getLI() && "No dupli for rewrite. Noop spilt?");
|
||||||
|
|
||||||
// First we need to fill in the live ranges in dupli.
|
// First we need to fill in the live ranges in dupli.
|
||||||
// If values were redefined, we need a full recoloring with SSA update.
|
// If values were redefined, we need a full recoloring with SSA update.
|
||||||
@ -863,23 +864,19 @@ void SplitEditor::rewrite() {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (LI) {
|
MO.setReg(LI->reg);
|
||||||
MO.setReg(LI->reg);
|
sa_.removeUse(MI);
|
||||||
sa_.removeUse(MI);
|
DEBUG(dbgs() << " rewrite " << Idx << '\t' << *MI);
|
||||||
DEBUG(dbgs() << " rewrite " << Idx << '\t' << *MI);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// dupli_ goes in last, after rewriting.
|
// dupli_ goes in last, after rewriting.
|
||||||
if (dupli_.getLI()) {
|
if (dupli_.getLI()->empty()) {
|
||||||
if (dupli_.getLI()->empty()) {
|
DEBUG(dbgs() << " dupli became empty?\n");
|
||||||
DEBUG(dbgs() << " dupli became empty?\n");
|
lis_.removeInterval(dupli_.getLI()->reg);
|
||||||
lis_.removeInterval(dupli_.getLI()->reg);
|
dupli_.reset(0);
|
||||||
dupli_.reset(0);
|
} else {
|
||||||
} else {
|
dupli_.getLI()->RenumberValues(lis_);
|
||||||
dupli_.getLI()->RenumberValues(lis_);
|
intervals_.push_back(dupli_.getLI());
|
||||||
intervals_.push_back(dupli_.getLI());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Calculate spill weight and allocation hints for new intervals.
|
// Calculate spill weight and allocation hints for new intervals.
|
||||||
|
Loading…
Reference in New Issue
Block a user