aboutsummaryrefslogtreecommitdiff
path: root/include/llvm/Target/TargetFrameLowering.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/llvm/Target/TargetFrameLowering.h')
-rw-r--r--include/llvm/Target/TargetFrameLowering.h16
1 files changed, 14 insertions, 2 deletions
diff --git a/include/llvm/Target/TargetFrameLowering.h b/include/llvm/Target/TargetFrameLowering.h
index 1958f90f9b..6a35fdef7d 100644
--- a/include/llvm/Target/TargetFrameLowering.h
+++ b/include/llvm/Target/TargetFrameLowering.h
@@ -48,11 +48,18 @@ private:
unsigned TransientStackAlignment;
int LocalAreaOffset;
bool StackRealignable;
+
+ // @LOCALMOD-BEGIN
+ // TODO(pdox): Refactor this and upstream it, to get rid of the
+ // assumption that StackSlotSize == PointerSize.
+ unsigned StackSlotSize;
+ // @LOCALMOD-END
public:
TargetFrameLowering(StackDirection D, unsigned StackAl, int LAO,
- unsigned TransAl = 1, bool StackReal = true)
+ unsigned TransAl = 1, bool StackReal = true,
+ unsigned SlotSize = 0) // @LOCALMOD
: StackDir(D), StackAlignment(StackAl), TransientStackAlignment(TransAl),
- LocalAreaOffset(LAO), StackRealignable(StackReal) {}
+ LocalAreaOffset(LAO), StackRealignable(StackReal), StackSlotSize(SlotSize) {}
virtual ~TargetFrameLowering();
@@ -63,6 +70,11 @@ public:
///
StackDirection getStackGrowthDirection() const { return StackDir; }
+ // @LOCALMOD-BEGIN
+ /// getStackSlotSize - Return the size of a stack slot
+ unsigned getStackSlotSize() const { return StackSlotSize; }
+ // @LOCALMOD-END
+
/// getStackAlignment - This method returns the number of bytes to which the
/// stack pointer must be aligned on entry to a function. Typically, this
/// is the largest alignment for any data object in the target.