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.h19
1 files changed, 16 insertions, 3 deletions
diff --git a/include/llvm/Target/TargetFrameLowering.h b/include/llvm/Target/TargetFrameLowering.h
index d56db7b511..7df3bfa473 100644
--- a/include/llvm/Target/TargetFrameLowering.h
+++ b/include/llvm/Target/TargetFrameLowering.h
@@ -48,11 +48,19 @@ private:
unsigned StackAlignment;
unsigned TransientStackAlignment;
int LocalAreaOffset;
+
+ // @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)
+ TargetFrameLowering(StackDirection D,
+ unsigned StackAl, int LAO,
+ unsigned TransAl = 1,
+ unsigned SlotSize = 0) // @LOCALMOD
: StackDir(D), StackAlignment(StackAl), TransientStackAlignment(TransAl),
- LocalAreaOffset(LAO) {}
+ LocalAreaOffset(LAO), StackSlotSize(SlotSize) {}
virtual ~TargetFrameLowering();
@@ -63,6 +71,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.