mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-09 10:31:14 +00:00
Don't attempt to update SpillSlotToUsesMap for stack slots that aren't
generated by the spiller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51439 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
785c6af979
commit
cff860801e
@ -147,8 +147,14 @@ int VirtRegMap::getEmergencySpillSlot(const TargetRegisterClass *RC) {
|
||||
|
||||
void VirtRegMap::addSpillSlotUse(int FI, MachineInstr *MI) {
|
||||
if (!MF.getFrameInfo()->isFixedObjectIndex(FI)) {
|
||||
assert(FI >= 0 && "Spill slot index should not be negative!");
|
||||
SpillSlotToUsesMap[FI-LowSpillSlot].insert(MI);
|
||||
// If FI < LowSpillSlot, this stack reference was produced by
|
||||
// instruction selection and is not a spill
|
||||
if (FI >= LowSpillSlot) {
|
||||
assert(FI >= 0 && "Spill slot index should not be negative!");
|
||||
assert(FI-LowSpillSlot < SpillSlotToUsesMap.size()
|
||||
&& "Invalid spill slot");
|
||||
SpillSlotToUsesMap[FI-LowSpillSlot].insert(MI);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -179,6 +185,12 @@ void VirtRegMap::RemoveMachineInstrFromMaps(MachineInstr *MI) {
|
||||
int FI = MO.getIndex();
|
||||
if (MF.getFrameInfo()->isFixedObjectIndex(FI))
|
||||
continue;
|
||||
// This stack reference was produced by instruction selection and
|
||||
// is not a spill
|
||||
if (FI < LowSpillSlot)
|
||||
continue;
|
||||
assert(FI-LowSpillSlot < SpillSlotToUsesMap.size()
|
||||
&& "Invalid spill slot");
|
||||
SpillSlotToUsesMap[FI-LowSpillSlot].erase(MI);
|
||||
}
|
||||
MI2VirtMap.erase(MI);
|
||||
|
Loading…
x
Reference in New Issue
Block a user