diff options
author | Evan Cheng <evan.cheng@apple.com> | 2009-10-18 18:16:27 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2009-10-18 18:16:27 +0000 |
commit | 174e2cf99df2011a0d56e96dcdb32c1ccaf4f464 (patch) | |
tree | a9c2c0c4ab7512a79f6bd15d41caa381e2cccf7c /lib/Target/ARM/ARMBaseInstrInfo.cpp | |
parent | 3820341c59acd9a1d0a664a2ce86745015d8fccb (diff) | |
download | external_llvm-174e2cf99df2011a0d56e96dcdb32c1ccaf4f464.zip external_llvm-174e2cf99df2011a0d56e96dcdb32c1ccaf4f464.tar.gz external_llvm-174e2cf99df2011a0d56e96dcdb32c1ccaf4f464.tar.bz2 |
-Revert parts of 84326 and 84411. Distinquishing between fixed and non-fixed
stack slots and giving them different PseudoSourceValue's did not fix the
problem of post-alloc scheduling miscompiling llvm itself.
- Apply Dan's conservative workaround by assuming any non fixed stack slots can
alias other memory locations. This means a load from spill slot #1 cannot
move above a store of spill slot #2.
- Enable post-alloc scheduling for x86 at optimization leverl Default and above.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84424 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/ARMBaseInstrInfo.cpp')
-rw-r--r-- | lib/Target/ARM/ARMBaseInstrInfo.cpp | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/lib/Target/ARM/ARMBaseInstrInfo.cpp b/lib/Target/ARM/ARMBaseInstrInfo.cpp index 271e0a9..ecdf5a0 100644 --- a/lib/Target/ARM/ARMBaseInstrInfo.cpp +++ b/lib/Target/ARM/ARMBaseInstrInfo.cpp @@ -670,11 +670,8 @@ storeRegToStackSlot(MachineBasicBlock &MBB, MachineBasicBlock::iterator I, 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(SV, + MF.getMachineMemOperand(PseudoSourceValue::getFixedStack(FI), MachineMemOperand::MOStore, 0, MFI.getObjectSize(FI), MFI.getObjectAlignment(FI)); @@ -711,11 +708,8 @@ loadRegFromStackSlot(MachineBasicBlock &MBB, MachineBasicBlock::iterator I, 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(SV, + MF.getMachineMemOperand(PseudoSourceValue::getFixedStack(FI), MachineMemOperand::MOLoad, 0, MFI.getObjectSize(FI), MFI.getObjectAlignment(FI)); |