mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-18 11:24:01 +00:00
Add the long awaited memory operand folding support for linear scan
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12058 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -385,7 +385,7 @@ void RA::assignRegOrStackSlotAtInterval(IntervalPtrs::value_type cur)
|
||||
if (cur->weight <= minWeight) {
|
||||
DEBUG(std::cerr << "\t\t\tspilling(c): " << *cur << '\n';);
|
||||
int slot = vrm_->assignVirt2StackSlot(cur->reg);
|
||||
li_->updateSpilledInterval(*cur, slot);
|
||||
li_->updateSpilledInterval(*cur, *vrm_, slot);
|
||||
|
||||
// if we didn't eliminate the interval find where to add it
|
||||
// back to unhandled. We need to scan since unhandled are
|
||||
@ -424,7 +424,7 @@ void RA::assignRegOrStackSlotAtInterval(IntervalPtrs::value_type cur)
|
||||
DEBUG(std::cerr << "\t\t\tspilling(a): " << **i << '\n');
|
||||
earliestStart = std::min(earliestStart, (*i)->start());
|
||||
int slot = vrm_->assignVirt2StackSlot((*i)->reg);
|
||||
li_->updateSpilledInterval(**i, slot);
|
||||
li_->updateSpilledInterval(**i, *vrm_, slot);
|
||||
}
|
||||
}
|
||||
for (IntervalPtrs::iterator i = inactive_.begin();
|
||||
@ -436,7 +436,7 @@ void RA::assignRegOrStackSlotAtInterval(IntervalPtrs::value_type cur)
|
||||
DEBUG(std::cerr << "\t\t\tspilling(i): " << **i << '\n');
|
||||
earliestStart = std::min(earliestStart, (*i)->start());
|
||||
int slot = vrm_->assignVirt2StackSlot((*i)->reg);
|
||||
li_->updateSpilledInterval(**i, slot);
|
||||
li_->updateSpilledInterval(**i, *vrm_, slot);
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user