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.

llvm-svn: 85437
This commit is contained in:
Dale Johannesen 2009-10-28 21:56:18 +00:00
parent 1fd4c577d2
commit 14f162d9dc
1 changed files with 4 additions and 1 deletions

View File

@ -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,