aboutsummaryrefslogtreecommitdiff
path: root/include/llvm/CodeGen/MachineFunction.h
diff options
context:
space:
mode:
authorVikram S. Adve <vadve@cs.uiuc.edu>2002-03-31 18:57:49 +0000
committerVikram S. Adve <vadve@cs.uiuc.edu>2002-03-31 18:57:49 +0000
commitfa79e6e869264f6bf8b134302e4218f08f1f0ced (patch)
treee526309758ad1a023eeee96660e9331f9e84376c /include/llvm/CodeGen/MachineFunction.h
parent1792779edffe9e41cb0c07298b4dd0ef4acb0f2a (diff)
Include temp. values when computing max. size of stack frame!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2070 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/CodeGen/MachineFunction.h')
-rw-r--r--include/llvm/CodeGen/MachineFunction.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/include/llvm/CodeGen/MachineFunction.h b/include/llvm/CodeGen/MachineFunction.h
index d8f3339e17..01c9fd9d24 100644
--- a/include/llvm/CodeGen/MachineFunction.h
+++ b/include/llvm/CodeGen/MachineFunction.h
@@ -29,6 +29,7 @@ class MachineCodeForMethod : private Annotation {
unsigned currentOptionalArgsSize;
unsigned maxOptionalArgsSize;
unsigned currentTmpValuesSize;
+ unsigned maxTmpValuesSize;
std::hash_set<const Constant*> constantsForConstPool;
std::hash_map<const Value*, int> offsets;
@@ -108,6 +109,17 @@ private:
regSpillsSize+= incr;
staticStackSize += incr;
}
+ inline void incrementTmpAreaSize(int incr) {
+ currentTmpValuesSize += incr;
+ if (maxTmpValuesSize < currentTmpValuesSize)
+ {
+ staticStackSize += currentTmpValuesSize - maxTmpValuesSize;
+ maxTmpValuesSize = currentTmpValuesSize;
+ }
+ }
+ inline void resetTmpAreaSize() {
+ currentTmpValuesSize = 0;
+ }
inline void incrementCurrentOptionalArgsSize(int incr) {
currentOptionalArgsSize+= incr; // stack size already includes this!
}