summaryrefslogtreecommitdiff
path: root/include/llvm/CodeGen/MachineFrameInfo.h
diff options
context:
space:
mode:
authorJim Grosbach <grosbach@apple.com>2010-08-19 02:47:08 +0000
committerJim Grosbach <grosbach@apple.com>2010-08-19 02:47:08 +0000
commita0fc005321ac163f10ebc5216a85068a496969df (patch)
treedcb5018dec268aa79c5967a30e8a94d2380f43e0 /include/llvm/CodeGen/MachineFrameInfo.h
parent8a757aeac436ecd27e28a39b10032fd6fda33780 (diff)
downloadllvm-a0fc005321ac163f10ebc5216a85068a496969df.tar.gz
llvm-a0fc005321ac163f10ebc5216a85068a496969df.tar.bz2
llvm-a0fc005321ac163f10ebc5216a85068a496969df.tar.xz
Update local stack block allocation to let PEI do the allocs if no additional
base registers were required. This will allow for slightly better packing of the locals when alignment padding is necessary after callee saved registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111508 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/CodeGen/MachineFrameInfo.h')
-rw-r--r--include/llvm/CodeGen/MachineFrameInfo.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/include/llvm/CodeGen/MachineFrameInfo.h b/include/llvm/CodeGen/MachineFrameInfo.h
index ba5d6ba97e..f8bf14ab01 100644
--- a/include/llvm/CodeGen/MachineFrameInfo.h
+++ b/include/llvm/CodeGen/MachineFrameInfo.h
@@ -216,6 +216,11 @@ class MachineFrameInfo {
/// alignment of any object in it.
unsigned LocalFrameMaxAlign;
+ /// Whether the local object blob needs to be allocated together. If not,
+ /// PEI should ignore the isPreAllocated flags on the stack objects and
+ /// just allocate them normally.
+ bool UseLocalStackAllocationBlock;
+
public:
explicit MachineFrameInfo(const TargetFrameInfo &tfi) : TFI(tfi) {
StackSize = NumFixedObjects = OffsetAdjustment = MaxAlignment = 0;
@@ -315,6 +320,17 @@ public:
/// object blob.
unsigned getLocalFrameMaxAlign() { return LocalFrameMaxAlign; }
+ /// getUseLocalStackAllocationBlock - Get whether the local allocation blob
+ /// should be allocated together or let PEI allocate the locals in it
+ /// directly.
+ bool getUseLocalStackAllocationBlock() {return UseLocalStackAllocationBlock;}
+
+ /// setUseLocalStackAllocationBlock - Set whether the local allocation blob
+ /// should be allocated together or let PEI allocate the locals in it
+ /// directly.
+ void setUseLocalStackAllocationBlock(bool v) {
+ UseLocalStackAllocationBlock = v;
+ }
/// isObjectPreAllocated - Return true if the object was pre-allocated into
/// the local block.