ARM / x86_64 varargs: Don't save regparms in prologue without va_start
[oota-llvm.git] / include / llvm / CodeGen / MachineFrameInfo.h
index 79a82497661e47555ba185d1f2f5305583db4e96..dca809177d4b07a2b62cb8614a64b144bd9e7235 100644 (file)
@@ -236,6 +236,9 @@ class MachineFrameInfo {
   /// pointer.
   bool HasInlineAsmWithSPAdjust;
 
+  /// True if the function contains a call to the llvm.vastart intrinsic.
+  bool HasVAStart;
+
   const TargetFrameLowering *getFrameLowering() const;
 public:
     explicit MachineFrameInfo(const TargetMachine &TM, bool RealignOpt)
@@ -256,6 +259,7 @@ public:
     LocalFrameMaxAlign = 0;
     UseLocalStackAllocationBlock = false;
     HasInlineAsmWithSPAdjust = false;
+    HasVAStart = false;
   }
 
   /// hasStackObjects - Return true if there are any stack objects in this
@@ -475,6 +479,10 @@ public:
   bool hasInlineAsmWithSPAdjust() const { return HasInlineAsmWithSPAdjust; }
   void setHasInlineAsmWithSPAdjust(bool B) { HasInlineAsmWithSPAdjust = B; }
 
+  /// Returns true if the function calls the llvm.va_start intrinsic.
+  bool hasVAStart() const { return HasVAStart; }
+  void setHasVAStart(bool B) { HasVAStart = 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