diff options
author | Vikram S. Adve <vadve@cs.uiuc.edu> | 2002-03-31 18:57:49 +0000 |
---|---|---|
committer | Vikram S. Adve <vadve@cs.uiuc.edu> | 2002-03-31 18:57:49 +0000 |
commit | fa79e6e869264f6bf8b134302e4218f08f1f0ced (patch) | |
tree | e526309758ad1a023eeee96660e9331f9e84376c /include/llvm/CodeGen/MachineFunction.h | |
parent | 1792779edffe9e41cb0c07298b4dd0ef4acb0f2a (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.h | 12 |
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! } |