aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Target/X86/X86MachineFunctionInfo.h
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Target/X86/X86MachineFunctionInfo.h')
-rw-r--r--llvm/lib/Target/X86/X86MachineFunctionInfo.h18
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