diff options
author | Chris Lattner <sabre@nondot.org> | 2007-12-08 06:39:11 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2007-12-08 06:39:11 +0000 |
commit | 73944fb22270697e75408cba52cca276be371a1f (patch) | |
tree | e6ebc214c149c6da74c62763df7166a3761f65a0 /lib/Target/PowerPC/PPCRegisterInfo.cpp | |
parent | edfd10de873a424a8516a6dbf5feb8168efc462d (diff) |
refactor some code to avoid overloading the name 'usesLR' in
different places to mean different things. Document what the
one in PPCFunctionInfo means and when it is valid.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44699 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/PowerPC/PPCRegisterInfo.cpp')
-rw-r--r-- | lib/Target/PowerPC/PPCRegisterInfo.cpp | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/lib/Target/PowerPC/PPCRegisterInfo.cpp b/lib/Target/PowerPC/PPCRegisterInfo.cpp index f93c2ce9e0..679ca2e58f 100644 --- a/lib/Target/PowerPC/PPCRegisterInfo.cpp +++ b/lib/Target/PowerPC/PPCRegisterInfo.cpp @@ -645,11 +645,13 @@ bool PPCRegisterInfo::hasFP(const MachineFunction &MF) const { return MFI->getStackSize() && needsFP(MF); } -/// usesLR - Returns if the link registers (LR) has been used in the function. -/// -bool PPCRegisterInfo::usesLR(MachineFunction &MF) const { - PPCFunctionInfo *FI = MF.getInfo<PPCFunctionInfo>(); - return FI->usesLR(); +/// MustSaveLR - Return true if this function requires that we save the LR +/// register onto the stack in the prolog and restore it in the epilog of the function. +static bool MustSaveLR(const MachineFunction &MF) { + return MF.getInfo<PPCFunctionInfo>()->usesLR() || + // FIXME: Anything that has a call should clobber the LR register, + // isn't this redundant?? + MF.getFrameInfo()->hasCalls(); } void PPCRegisterInfo:: @@ -1062,7 +1064,7 @@ void PPCRegisterInfo::emitPrologue(MachineFunction &MF) const { // Get operating system bool IsMachoABI = Subtarget.isMachoABI(); // Check if the link register (LR) has been used. - bool UsesLR = MFI->hasCalls() || usesLR(MF); + bool UsesLR = MustSaveLR(MF); // Do we have a frame pointer for this function? bool HasFP = hasFP(MF) && FrameSize; @@ -1226,7 +1228,7 @@ void PPCRegisterInfo::emitEpilogue(MachineFunction &MF, // Get operating system bool IsMachoABI = Subtarget.isMachoABI(); // Check if the link register (LR) has been used. - bool UsesLR = MFI->hasCalls() || usesLR(MF); + bool UsesLR = MustSaveLR(MF); // Do we have a frame pointer for this function? bool HasFP = hasFP(MF) && FrameSize; |