Only fixed stack objects and spill slots should be get FixedStack PseudoSourceValue.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84411 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Evan Cheng
2009-10-18 06:27:36 +00:00
parent c6e2009608
commit 20270c9093
9 changed files with 77 additions and 54 deletions

View File

@ -466,8 +466,10 @@ void StackSlotColoring::RewriteInstruction(MachineInstr *MI, int OldFI,
// Update the memory references. This changes the MachineMemOperands
// directly. They may be in use by multiple instructions, however all
// instructions using OldFI are being rewritten to use NewFI.
const Value *OldSV = PseudoSourceValue::getFixedStack(OldFI);
const Value *NewSV = PseudoSourceValue::getFixedStack(NewFI);
const Value *OldSV = MFI->isFixedObjectIndex(OldFI)
? PseudoSourceValue::getFixedStack(OldFI) : PseudoSourceValue::getStack();
const Value *NewSV = MFI->isFixedObjectIndex(NewFI)
? PseudoSourceValue::getFixedStack(NewFI) : PseudoSourceValue::getStack();
for (MachineInstr::mmo_iterator I = MI->memoperands_begin(),
E = MI->memoperands_end(); I != E; ++I)
if ((*I)->getValue() == OldSV)