Fix PEI to not walk off the start of a block when an updated instruction

is the first in its block.  This is PR3842.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67304 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2009-03-19 17:15:43 +00:00
parent bf5836b075
commit 5e6345bde0

View File

@ -533,11 +533,15 @@ void PEI::replaceFrameIndices(MachineFunction &Fn) {
SPAdj += Size;
MachineBasicBlock::iterator PrevI = prior(I);
MachineBasicBlock::iterator PrevI = BB->end();
if (I != BB->begin()) PrevI = prior(I);
TRI.eliminateCallFramePseudoInstr(Fn, *BB, I);
// Visit the instructions created by eliminateCallFramePseudoInstr().
I = next(PrevI);
if (PrevI == BB->end())
I = BB->begin(); // The replaced instr was the first in the block.
else
I = next(PrevI);
continue;
}