mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-27 14:34:58 +00:00
When we generate spill code, then decide we don't need
to spill after all, we weren't handling 2-instruction spill sequences correctly (PPC Altivec). We need to remove the store in this case. Removing the other instruction(s) would be goodness but is not needed for correctness, and isn't done here. 7331562. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85437 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
7e5d2ff20f
commit
e841d2f867
@ -1430,6 +1430,7 @@ private:
|
||||
std::vector<MachineOperand*> &KillOps,
|
||||
VirtRegMap &VRM) {
|
||||
|
||||
MachineBasicBlock::iterator oldNextMII = next(MII);
|
||||
TII->storeRegToStackSlot(MBB, next(MII), PhysReg, true, StackSlot, RC);
|
||||
MachineInstr *StoreMI = next(MII);
|
||||
VRM.addSpillSlotUse(StackSlot, StoreMI);
|
||||
@ -1466,7 +1467,9 @@ private:
|
||||
}
|
||||
}
|
||||
|
||||
LastStore = next(MII);
|
||||
// Allow for multi-instruction spill sequences, as on PPC Altivec. Presume
|
||||
// the last of multiple instructions is the actual store.
|
||||
LastStore = prior(oldNextMII);
|
||||
|
||||
// If the stack slot value was previously available in some other
|
||||
// register, change it now. Otherwise, make the register available,
|
||||
|
Loading…
x
Reference in New Issue
Block a user