SchedDFS: Complete support for nested subtrees.
[oota-llvm.git] / include / llvm / CodeGen / MachineFrameInfo.h
index 93d77287d7ca621beab9832d44775c59a6cedc22..0748b9ab24a2810abfef5383fa06e5c94bb31e88 100644 (file)
@@ -493,11 +493,23 @@ public:
     return Objects[ObjectIdx+NumFixedObjects].Size == ~0ULL;
   }
 
+  /// CreateStackObjectWithMinAlign - Create a new statically sized stack
+  /// object, returning a nonnegative identifier to represent it. This function
+  /// takes a preferred alignment and a minimal alignment.
+  ///
+  int CreateStackObjectWithMinAlign(uint64_t Size, unsigned PrefAlignment,
+                        unsigned MinAlignment, bool isSS,
+                        bool MayNeedSP = false, const AllocaInst *Alloca = 0);
+
   /// CreateStackObject - Create a new statically sized stack object, returning
-  /// a nonnegative identifier to represent it.
+  /// a nonnegative identifier to represent it. Will not emit an error when
+  /// Alignment can't be satisfied.
   ///
   int CreateStackObject(uint64_t Size, unsigned Alignment, bool isSS,
-                        bool MayNeedSP = false, const AllocaInst *Alloca = 0);
+                        bool MayNeedSP = false, const AllocaInst *Alloca = 0) {
+    return CreateStackObjectWithMinAlign(Size, Alignment, 0, isSS,
+                                         MayNeedSP, Alloca);
+  }
 
   /// CreateSpillStackObject - Create a new statically sized stack object that
   /// represents a spill slot, returning a nonnegative identifier to represent
@@ -517,7 +529,8 @@ public:
   /// variable sized object is created, whether or not the index returned is
   /// actually used.
   ///
-  int CreateVariableSizedObject(unsigned Alignment);
+  int CreateVariableSizedObject(unsigned PrefAlignment, unsigned MinAlignment,
+                                const AllocaInst *Alloca = 0);
 
   /// getCalleeSavedInfo - Returns a reference to call saved info vector for the
   /// current function.