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
diff --git a/lib/Target/PowerPC/PPCRegisterInfo.cpp b/lib/Target/PowerPC/PPCRegisterInfo.cpp
index f93c2ce..679ca2e 100644
--- a/lib/Target/PowerPC/PPCRegisterInfo.cpp
+++ b/lib/Target/PowerPC/PPCRegisterInfo.cpp
@@ -645,11 +645,13 @@
   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 @@
   // 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 @@
   // 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;