summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/MachineFunction.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2002-12-25 05:03:22 +0000
committerChris Lattner <sabre@nondot.org>2002-12-25 05:03:22 +0000
commit448fb45b2ddcd0a936ad6afb9d2e2bc83507a7e6 (patch)
treeae31f02604d78c89b45691b88103682e2a94fc20 /llvm/lib/CodeGen/MachineFunction.cpp
parentf2dc9d9cea96499211615829870c180bf6c93b15 (diff)
downloadbcm5719-llvm-448fb45b2ddcd0a936ad6afb9d2e2bc83507a7e6.tar.gz
bcm5719-llvm-448fb45b2ddcd0a936ad6afb9d2e2bc83507a7e6.zip
Remove dependency on SSARegMap.h by MachineFunction.h
llvm-svn: 5143
Diffstat (limited to 'llvm/lib/CodeGen/MachineFunction.cpp')
-rw-r--r--llvm/lib/CodeGen/MachineFunction.cpp27
1 files changed, 19 insertions, 8 deletions
diff --git a/llvm/lib/CodeGen/MachineFunction.cpp b/llvm/lib/CodeGen/MachineFunction.cpp
index 8e2616a6211..ef783d1741f 100644
--- a/llvm/lib/CodeGen/MachineFunction.cpp
+++ b/llvm/lib/CodeGen/MachineFunction.cpp
@@ -6,9 +6,10 @@
//
//===----------------------------------------------------------------------===//
-#include "llvm/CodeGen/MachineInstr.h" // For debug output
#include "llvm/CodeGen/MachineFunction.h"
+#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/CodeGen/MachineCodeForInstruction.h"
+#include "llvm/CodeGen/SSARegMap.h"
#include "llvm/Target/TargetMachine.h"
#include "llvm/Target/MachineFrameInfo.h"
#include "llvm/Target/MachineCacheInfo.h"
@@ -95,14 +96,18 @@ Pass *createMachineFunctionPrinterPass() {
MachineFunction::MachineFunction(const Function *F,
const TargetMachine& target)
- : Annotation(MF_AID),
- Fn(F), Target(target), staticStackSize(0),
- automaticVarsSize(0), regSpillsSize(0),
- maxOptionalArgsSize(0), maxOptionalNumArgs(0),
- currentTmpValuesSize(0), maxTmpValuesSize(0), compiledAsLeaf(false),
- spillsAreaFrozen(false), automaticVarsAreaFrozen(false)
-{
+ : Annotation(MF_AID), Fn(F), Target(target) {
SSARegMapping = new SSARegMap();
+
+ // FIXME: move state into another class
+ staticStackSize = automaticVarsSize = regSpillsSize = 0;
+ maxOptionalArgsSize = maxOptionalNumArgs = currentTmpValuesSize = 0;
+ maxTmpValuesSize = 0;
+ compiledAsLeaf = spillsAreaFrozen = automaticVarsAreaFrozen = false;
+}
+
+MachineFunction::~MachineFunction() {
+ delete SSARegMapping;
}
void MachineFunction::dump() const { print(std::cerr); }
@@ -153,6 +158,12 @@ MachineFunction& MachineFunction::get(const Function *F)
return *mc;
}
+void MachineFunction::clearSSARegMap() {
+ delete SSARegMapping;
+ SSARegMapping = 0;
+}
+
+
static unsigned
ComputeMaxOptionalArgsSize(const TargetMachine& target, const Function *F,
unsigned &maxOptionalNumArgs)
OpenPOWER on IntegriCloud