Change initial value of MaxCallFrameSize. MipsFI::getMaxCallFrameSize() should
authorAkira Hatanaka <ahatanak@gmail.com>
Wed, 25 May 2011 17:52:48 +0000 (17:52 +0000)
committerAkira Hatanaka <ahatanak@gmail.com>
Wed, 25 May 2011 17:52:48 +0000 (17:52 +0000)
return 0 if there are no function calls made.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132065 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/Mips/MipsFrameLowering.cpp
lib/Target/Mips/MipsISelLowering.cpp
lib/Target/Mips/MipsMachineFunction.h

index 3291853bf891cd82eebea8174fdac7772b5992bf..41ad18783aceb1b10907ff0e1c71d4dfd289d17e 100644 (file)
@@ -154,7 +154,7 @@ void MipsFrameLowering::emitPrologue(MachineFunction &MF) const {
   unsigned StackAlign = getStackAlignment();
   unsigned LocalVarAreaOffset = MipsFI->needGPSaveRestore() ? 
     (MFI->getObjectOffset(MipsFI->getGPFI()) + RegSize) :
-    MFI->getMaxCallFrameSize();
+    MipsFI->getMaxCallFrameSize();
   unsigned StackSize = AlignOffset(LocalVarAreaOffset, StackAlign) +
     AlignOffset(MFI->getStackSize(), StackAlign);
 
index 9efd0f757b7af11c885497a3078d544efc52002f..624736fd8b94a7d3661c240d25f2e770e7148d67 100644 (file)
@@ -1322,7 +1322,7 @@ MipsTargetLowering::LowerCall(SDValue Chain, SDValue Callee,
   if (IsPIC) {
     // Function can have an arbitrary number of calls, so
     // hold the LastArgStackLoc with the biggest offset.
-    int MaxCallFrameSize = MipsFI->getMaxCallFrameSize();
+    unsigned MaxCallFrameSize = MipsFI->getMaxCallFrameSize();
     unsigned NextStackOffset = CCInfo.getNextStackOffset();
 
     // For O32, a minimum of four words (16 bytes) of argument space is
@@ -1330,7 +1330,7 @@ MipsTargetLowering::LowerCall(SDValue Chain, SDValue Callee,
     if (Subtarget->isABI_O32())
       NextStackOffset = std::max(NextStackOffset, (unsigned)16);
 
-    if (MaxCallFrameSize < (int)NextStackOffset) {
+    if (MaxCallFrameSize < NextStackOffset) {
       MipsFI->setMaxCallFrameSize(NextStackOffset);
 
       // $gp restore slot must be aligned.
index fffc0edd286de3449ebeaf1dc900a4b89385a7b9..9cc0faf0469a0038d421b8f9b4eca45fcab491e2 100644 (file)
@@ -48,13 +48,13 @@ private:
   std::pair<int, int> InArgFIRange, OutArgFIRange;
   int GPFI; // Index of the frame object for restoring $gp 
   bool HasCall; // True if function has a function call.
-  int MaxCallFrameSize;
+  unsigned MaxCallFrameSize;
 public:
   MipsFunctionInfo(MachineFunction& MF)
   : SRetReturnReg(0), GlobalBaseReg(0),
     VarArgsFrameIndex(0), InArgFIRange(std::make_pair(-1, 0)),
     OutArgFIRange(std::make_pair(-1, 0)), GPFI(0), HasCall(false),
-    MaxCallFrameSize(-1)
+    MaxCallFrameSize(0)
   {}
 
   bool isInArgFI(int FI) const {
@@ -89,8 +89,8 @@ public:
   bool hasCall() const { return HasCall; }
   void setHasCall() { HasCall = true; }
 
-  int getMaxCallFrameSize() const { return MaxCallFrameSize; }
-  void setMaxCallFrameSize(int S) { MaxCallFrameSize = S; }
+  unsigned getMaxCallFrameSize() const { return MaxCallFrameSize; }
+  void setMaxCallFrameSize(unsigned S) { MaxCallFrameSize = S; }
 };
 
 } // end of namespace llvm