From: Akira Hatanaka Date: Wed, 25 May 2011 17:52:48 +0000 (+0000) Subject: Change initial value of MaxCallFrameSize. MipsFI::getMaxCallFrameSize() should X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=f15f49850768f5889c2e12aeb273e158597a1223;p=oota-llvm.git Change initial value of MaxCallFrameSize. MipsFI::getMaxCallFrameSize() should 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 --- diff --git a/lib/Target/Mips/MipsFrameLowering.cpp b/lib/Target/Mips/MipsFrameLowering.cpp index 3291853bf89..41ad18783ac 100644 --- a/lib/Target/Mips/MipsFrameLowering.cpp +++ b/lib/Target/Mips/MipsFrameLowering.cpp @@ -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); diff --git a/lib/Target/Mips/MipsISelLowering.cpp b/lib/Target/Mips/MipsISelLowering.cpp index 9efd0f757b7..624736fd8b9 100644 --- a/lib/Target/Mips/MipsISelLowering.cpp +++ b/lib/Target/Mips/MipsISelLowering.cpp @@ -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. diff --git a/lib/Target/Mips/MipsMachineFunction.h b/lib/Target/Mips/MipsMachineFunction.h index fffc0edd286..9cc0faf0469 100644 --- a/lib/Target/Mips/MipsMachineFunction.h +++ b/lib/Target/Mips/MipsMachineFunction.h @@ -48,13 +48,13 @@ private: std::pair 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