Distinquish stack slots from other stack objects. They (and fixed objects) get FixedStack PseudoSourceValues.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84326 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Target/ARM/ARMBaseInstrInfo.cpp b/lib/Target/ARM/ARMBaseInstrInfo.cpp
index ecdf5a0..271e0a9 100644
--- a/lib/Target/ARM/ARMBaseInstrInfo.cpp
+++ b/lib/Target/ARM/ARMBaseInstrInfo.cpp
@@ -670,8 +670,11 @@
MachineFunction &MF = *MBB.getParent();
MachineFrameInfo &MFI = *MF.getFrameInfo();
+ const Value *SV = (MFI.isFixedObjectIndex(FI) ||
+ MFI.isSpillSlotObjectIndex(FI))
+ ? PseudoSourceValue::getFixedStack(FI) : PseudoSourceValue::getStack();
MachineMemOperand *MMO =
- MF.getMachineMemOperand(PseudoSourceValue::getFixedStack(FI),
+ MF.getMachineMemOperand(SV,
MachineMemOperand::MOStore, 0,
MFI.getObjectSize(FI),
MFI.getObjectAlignment(FI));
@@ -708,8 +711,11 @@
MachineFunction &MF = *MBB.getParent();
MachineFrameInfo &MFI = *MF.getFrameInfo();
+ const Value *SV = (MFI.isFixedObjectIndex(FI) ||
+ MFI.isSpillSlotObjectIndex(FI))
+ ? PseudoSourceValue::getFixedStack(FI) : PseudoSourceValue::getStack();
MachineMemOperand *MMO =
- MF.getMachineMemOperand(PseudoSourceValue::getFixedStack(FI),
+ MF.getMachineMemOperand(SV,
MachineMemOperand::MOLoad, 0,
MFI.getObjectSize(FI),
MFI.getObjectAlignment(FI));
diff --git a/lib/Target/X86/X86InstrBuilder.h b/lib/Target/X86/X86InstrBuilder.h
index c475b56..8cbdfec 100644
--- a/lib/Target/X86/X86InstrBuilder.h
+++ b/lib/Target/X86/X86InstrBuilder.h
@@ -143,8 +143,11 @@
Flags |= MachineMemOperand::MOLoad;
if (TID.mayStore())
Flags |= MachineMemOperand::MOStore;
+ const Value *SV = (MFI.isFixedObjectIndex(FI) ||
+ MFI.isSpillSlotObjectIndex(FI))
+ ? PseudoSourceValue::getFixedStack(FI) : PseudoSourceValue::getStack();
MachineMemOperand *MMO =
- MF.getMachineMemOperand(PseudoSourceValue::getFixedStack(FI),
+ MF.getMachineMemOperand(SV,
Flags, Offset,
MFI.getObjectSize(FI),
MFI.getObjectAlignment(FI));