diff options
Diffstat (limited to 'llvm/lib/Target/X86/X86MachineFunctionInfo.h')
| -rw-r--r-- | llvm/lib/Target/X86/X86MachineFunctionInfo.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86MachineFunctionInfo.h b/llvm/lib/Target/X86/X86MachineFunctionInfo.h index 315aeef65d28..24371369d4a4 100644 --- a/llvm/lib/Target/X86/X86MachineFunctionInfo.h +++ b/llvm/lib/Target/X86/X86MachineFunctionInfo.h @@ -170,6 +170,12 @@ class X86MachineFunctionInfo : public MachineFunctionInfo { SmallVector<size_t, 0> PreallocatedStackSizes; SmallVector<SmallVector<size_t, 4>, 0> PreallocatedArgOffsets; + // True if a function clobbers FP/BP according to its calling convention. + bool FPClobberedByCall = false; + bool BPClobberedByCall = false; + bool FPClobberedByInvoke = false; + bool BPClobberedByInvoke = false; + private: /// ForwardedMustTailRegParms - A list of virtual and physical registers /// that must be forwarded to every musttail call. @@ -328,6 +334,18 @@ public: assert(!PreallocatedArgOffsets[Id].empty() && "arg offsets not set"); return PreallocatedArgOffsets[Id]; } + + bool getFPClobberedByCall() const { return FPClobberedByCall; } + void setFPClobberedByCall(bool C) { FPClobberedByCall = C; } + + bool getBPClobberedByCall() const { return BPClobberedByCall; } + void setBPClobberedByCall(bool C) { BPClobberedByCall = C; } + + bool getFPClobberedByInvoke() const { return FPClobberedByInvoke; } + void setFPClobberedByInvoke(bool C) { FPClobberedByInvoke = C; } + + bool getBPClobberedByInvoke() const { return BPClobberedByInvoke; } + void setBPClobberedByInvoke(bool C) { BPClobberedByInvoke = C; } }; } // End llvm namespace |
