diff options
author | Chad Rosier <mcrosier@apple.com> | 2013-01-31 20:02:54 +0000 |
---|---|---|
committer | Chad Rosier <mcrosier@apple.com> | 2013-01-31 20:02:54 +0000 |
commit | df782d222529e1ed1d81488a32ee8b5958225a12 (patch) | |
tree | 65cff471cd75cf65846f4ffaa0f49a09a22f31ca /llvm/lib/Target/NVPTX/NVPTXRegisterInfo.cpp | |
parent | afc1b12f0187247d2799b35af88d98c3d815e446 (diff) | |
download | bcm5719-llvm-df782d222529e1ed1d81488a32ee8b5958225a12.tar.gz bcm5719-llvm-df782d222529e1ed1d81488a32ee8b5958225a12.zip |
[PEI] Pass the frame index operand number to the eliminateFrameIndex function.
Each target implementation was needlessly recomputing the index.
Part of rdar://13076458
llvm-svn: 174083
Diffstat (limited to 'llvm/lib/Target/NVPTX/NVPTXRegisterInfo.cpp')
-rw-r--r-- | llvm/lib/Target/NVPTX/NVPTXRegisterInfo.cpp | 18 |
1 files changed, 5 insertions, 13 deletions
diff --git a/llvm/lib/Target/NVPTX/NVPTXRegisterInfo.cpp b/llvm/lib/Target/NVPTX/NVPTXRegisterInfo.cpp index 08be917bb7d..e0c9161f31f 100644 --- a/llvm/lib/Target/NVPTX/NVPTXRegisterInfo.cpp +++ b/llvm/lib/Target/NVPTX/NVPTXRegisterInfo.cpp @@ -277,30 +277,22 @@ BitVector NVPTXRegisterInfo::getReservedRegs(const MachineFunction &MF) const { void NVPTXRegisterInfo:: eliminateFrameIndex(MachineBasicBlock::iterator II, - int SPAdj, + int SPAdj, unsigned FIOperandNum, RegScavenger *RS) const { assert(SPAdj == 0 && "Unexpected"); - unsigned i = 0; MachineInstr &MI = *II; - while (!MI.getOperand(i).isFI()) { - ++i; - assert(i < MI.getNumOperands() && - "Instr doesn't have FrameIndex operand!"); - } - - int FrameIndex = MI.getOperand(i).getIndex(); + int FrameIndex = MI.getOperand(FIOperandNum).getIndex(); MachineFunction &MF = *MI.getParent()->getParent(); int Offset = MF.getFrameInfo()->getObjectOffset(FrameIndex) + - MI.getOperand(i+1).getImm(); + MI.getOperand(FIOperandNum+1).getImm(); // Using I0 as the frame pointer - MI.getOperand(i).ChangeToRegister(NVPTX::VRFrame, false); - MI.getOperand(i+1).ChangeToImmediate(Offset); + MI.getOperand(FIOperandNum).ChangeToRegister(NVPTX::VRFrame, false); + MI.getOperand(FIOperandNum+1).ChangeToImmediate(Offset); } - int NVPTXRegisterInfo:: getDwarfRegNum(unsigned RegNum, bool isEH) const { return 0; |