diff options
author | Alexander Timofeev <alexander.timofeev@amd.com> | 2022-11-17 19:03:22 +0100 |
---|---|---|
committer | Alexander Timofeev <alexander.timofeev@amd.com> | 2022-11-18 15:57:34 +0100 |
commit | 32bd75716c27d1a094c2436529b596ce1547f6eb (patch) | |
tree | 3fd4096552f727e0c1ecdb07bb4b17df1216bdfb /llvm/lib/Target/XCore | |
parent | 244105f791539a84eeef7e8e50c180e413675b60 (diff) | |
download | llvm-32bd75716c27d1a094c2436529b596ce1547f6eb.zip llvm-32bd75716c27d1a094c2436529b596ce1547f6eb.tar.gz llvm-32bd75716c27d1a094c2436529b596ce1547f6eb.tar.bz2 |
PEI should be able to use backward walk in replaceFrameIndicesBackward.
The backward register scavenger has correct register
liveness information. PEI should leverage the backward register scavenger.
Reviewed By: arsenm
Differential Revision: https://reviews.llvm.org/D137574
Diffstat (limited to 'llvm/lib/Target/XCore')
-rw-r--r-- | llvm/lib/Target/XCore/XCoreRegisterInfo.cpp | 5 | ||||
-rw-r--r-- | llvm/lib/Target/XCore/XCoreRegisterInfo.h | 2 |
2 files changed, 4 insertions, 3 deletions
diff --git a/llvm/lib/Target/XCore/XCoreRegisterInfo.cpp b/llvm/lib/Target/XCore/XCoreRegisterInfo.cpp index 0d1ba39..ed5a0ad 100644 --- a/llvm/lib/Target/XCore/XCoreRegisterInfo.cpp +++ b/llvm/lib/Target/XCore/XCoreRegisterInfo.cpp @@ -250,7 +250,7 @@ XCoreRegisterInfo::useFPForScavengingIndex(const MachineFunction &MF) const { return false; } -void +bool XCoreRegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II, int SPAdj, unsigned FIOperandNum, RegScavenger *RS) const { @@ -284,7 +284,7 @@ XCoreRegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II, if (MI.isDebugValue()) { MI.getOperand(FIOperandNum).ChangeToRegister(FrameReg, false /*isDef*/); MI.getOperand(FIOperandNum + 1).ChangeToImmediate(Offset); - return; + return false; } // fold constant into offset. @@ -313,6 +313,7 @@ XCoreRegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II, // Erase old instruction. MachineBasicBlock &MBB = *MI.getParent(); MBB.erase(II); + return true; } diff --git a/llvm/lib/Target/XCore/XCoreRegisterInfo.h b/llvm/lib/Target/XCore/XCoreRegisterInfo.h index f1eec7b..b72875c 100644 --- a/llvm/lib/Target/XCore/XCoreRegisterInfo.h +++ b/llvm/lib/Target/XCore/XCoreRegisterInfo.h @@ -34,7 +34,7 @@ public: bool useFPForScavengingIndex(const MachineFunction &MF) const override; - void eliminateFrameIndex(MachineBasicBlock::iterator II, + bool eliminateFrameIndex(MachineBasicBlock::iterator II, int SPAdj, unsigned FIOperandNum, RegScavenger *RS = nullptr) const override; |