aboutsummaryrefslogtreecommitdiff
path: root/include/llvm/CodeGen/MachineFrameInfo.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/llvm/CodeGen/MachineFrameInfo.h')
-rw-r--r--include/llvm/CodeGen/MachineFrameInfo.h19
1 files changed, 16 insertions, 3 deletions
diff --git a/include/llvm/CodeGen/MachineFrameInfo.h b/include/llvm/CodeGen/MachineFrameInfo.h
index 93d77287d7..0748b9ab24 100644
--- a/include/llvm/CodeGen/MachineFrameInfo.h
+++ b/include/llvm/CodeGen/MachineFrameInfo.h
@@ -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.