X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=include%2Fllvm%2FCodeGen%2FMachineFrameInfo.h;h=e947c3026975a2c624042194c8de9cd618ca2a95;hb=9436574d1bc2207b9c088b1f7847dc8d21c7f460;hp=dca809177d4b07a2b62cb8614a64b144bd9e7235;hpb=dae28732f44add82857b7a802b7985b93aaf054e;p=oota-llvm.git diff --git a/include/llvm/CodeGen/MachineFrameInfo.h b/include/llvm/CodeGen/MachineFrameInfo.h index dca809177d4..e947c302697 100644 --- a/include/llvm/CodeGen/MachineFrameInfo.h +++ b/include/llvm/CodeGen/MachineFrameInfo.h @@ -239,6 +239,9 @@ class MachineFrameInfo { /// True if the function contains a call to the llvm.vastart intrinsic. bool HasVAStart; + /// True if this is a varargs function that contains a musttail call. + bool HasMustTailInVarArgFunc; + const TargetFrameLowering *getFrameLowering() const; public: explicit MachineFrameInfo(const TargetMachine &TM, bool RealignOpt) @@ -260,6 +263,7 @@ public: UseLocalStackAllocationBlock = false; HasInlineAsmWithSPAdjust = false; HasVAStart = false; + HasMustTailInVarArgFunc = false; } /// hasStackObjects - Return true if there are any stack objects in this @@ -483,6 +487,10 @@ public: bool hasVAStart() const { return HasVAStart; } void setHasVAStart(bool B) { HasVAStart = B; } + /// Returns true if the function is variadic and contains a musttail call. + bool hasMustTailInVarArgFunc() const { return HasMustTailInVarArgFunc; } + void setHasMustTailInVarArgFunc(bool B) { HasMustTailInVarArgFunc = B; } + /// getMaxCallFrameSize - Return the maximum size of a call frame that must be /// allocated for an outgoing function call. This is only available if /// CallFrameSetup/Destroy pseudo instructions are used by the target, and