From: Evan Cheng Date: Tue, 1 May 2007 00:47:46 +0000 (+0000) Subject: Added hook hasReservedCallFrame(). It returns true if the call frame is X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=14f1dd120fc13200697560680999c0efe7ecd714;p=oota-llvm.git Added hook hasReservedCallFrame(). It returns true if the call frame is included as part of the stack frame. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36606 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/Target/MRegisterInfo.h b/include/llvm/Target/MRegisterInfo.h index 2db4f2031bd..4b9389accb7 100644 --- a/include/llvm/Target/MRegisterInfo.h +++ b/include/llvm/Target/MRegisterInfo.h @@ -451,6 +451,15 @@ public: /// variable sized allocas or if frame pointer elimination is disabled. virtual bool hasFP(const MachineFunction &MF) const = 0; + // hasReservedCallFrame - Under normal circumstances, when a frame pointer is + // not required, we reserve argument space for call sites in the function + // immediately on entry to the current function. This eliminates the need for + // add/sub sp brackets around call sites. Returns true if the call frame is + // included as part of the stack frame. + virtual bool hasReservedCallFrame(MachineFunction &MF) const { + return !hasFP(MF); + } + /// getCallFrameSetup/DestroyOpcode - These methods return the opcode of the /// frame setup/destroy instructions if they exist (-1 otherwise). Some /// targets use pseudo instructions in order to abstract away the difference