aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2001-09-12 16:34:03 +0000
committerChris Lattner <sabre@nondot.org>2001-09-12 16:34:03 +0000
commit5f6baf78ea26168d328444f15bc1da355afd88a8 (patch)
treeb06192fbb6951125def21f0da83b290c7ff9b358
parent4ddb4c82d7451f7ab0269a4d0ca948f96e80402e (diff)
More cleanups, preparing to revamp InstrForest to, among other things,
not leak all its allocated memory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@553 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/llvm/CodeGen/InstrForest.h2
-rw-r--r--lib/CodeGen/InstrSelection/InstrForest.cpp13
-rw-r--r--lib/CodeGen/InstrSelection/InstrSelection.cpp7
-rw-r--r--lib/CodeGen/TargetMachine/Sparc/Sparc.burg2
-rw-r--r--lib/Target/SparcV9/InstrSelection/InstrForest.cpp13
-rw-r--r--lib/Target/SparcV9/InstrSelection/InstrSelection.cpp7
6 files changed, 19 insertions, 25 deletions
diff --git a/include/llvm/CodeGen/InstrForest.h b/include/llvm/CodeGen/InstrForest.h
index e987521ea0..47a12ace6b 100644
--- a/include/llvm/CodeGen/InstrForest.h
+++ b/include/llvm/CodeGen/InstrForest.h
@@ -238,7 +238,7 @@ class InstrForest : private hash_map<const Instruction*, InstructionNode*> {
hash_set<InstructionNode*> treeRoots;
public:
- void buildTreesForMethod(Method *M);
+ InstrForest(Method *M);
inline InstructionNode *getTreeNodeForInstr(Instruction* instr) {
return (*this)[instr];
diff --git a/lib/CodeGen/InstrSelection/InstrForest.cpp b/lib/CodeGen/InstrSelection/InstrForest.cpp
index 50c4f98721..0ecf1c2fe9 100644
--- a/lib/CodeGen/InstrSelection/InstrForest.cpp
+++ b/lib/CodeGen/InstrSelection/InstrForest.cpp
@@ -176,11 +176,6 @@ inline void InstrForest::setRightChild(InstrTreeNode *Par, InstrTreeNode *Chld){
}
-void InstrForest::buildTreesForMethod(Method *M) {
- for_each(M->inst_begin(), M->inst_end(),
- bind_obj(this, &InstrForest::buildTreeForInstruction));
-}
-
InstructionNode *InstrForest::buildTreeForInstruction(Instruction *Inst) {
InstructionNode *treeNode = getTreeNodeForInstr(Inst);
if (treeNode) {
@@ -210,8 +205,7 @@ InstructionNode *InstrForest::buildTreeForInstruction(Instruction *Inst) {
static InstrTreeNode *fixedChildArray[MAX_CHILD];
InstrTreeNode **childArray =
(Inst->getNumOperands() > MAX_CHILD)
- ? new (InstrTreeNode*)[Inst->getNumOperands()]
- : fixedChildArray;
+ ? new (InstrTreeNode*)[Inst->getNumOperands()] : fixedChildArray;
//
// Walk the operands of the instruction
@@ -309,3 +303,8 @@ InstructionNode *InstrForest::buildTreeForInstruction(Instruction *Inst) {
return treeNode;
}
+
+InstrForest::InstrForest(Method *M) {
+ for_each(M->inst_begin(), M->inst_end(),
+ bind_obj(this, &InstrForest::buildTreeForInstruction));
+}
diff --git a/lib/CodeGen/InstrSelection/InstrSelection.cpp b/lib/CodeGen/InstrSelection/InstrSelection.cpp
index 675e489e46..b77b5a8b4e 100644
--- a/lib/CodeGen/InstrSelection/InstrSelection.cpp
+++ b/lib/CodeGen/InstrSelection/InstrSelection.cpp
@@ -31,11 +31,11 @@ enum SelectDebugLevel_t {
};
// Enable Debug Options to be specified on the command line
-cl::Enum<enum SelectDebugLevel_t> SelectDebugLevel("dselect", cl::NoFlags, // cl::Hidden
+cl::Enum<enum SelectDebugLevel_t> SelectDebugLevel("dselect", cl::NoFlags,
"enable instruction selection debugging information",
clEnumValN(Select_NoDebugInfo, "n", "disable debug output"),
clEnumValN(Select_PrintMachineCode, "y", "print generated machine code"),
- clEnumValN(Select_DebugInstTrees, "i", "print instr. selection debugging info"),
+ clEnumValN(Select_DebugInstTrees, "i", "print instruction selection debug info"),
clEnumValN(Select_DebugBurgTrees, "b", "print burg trees"), 0);
@@ -54,8 +54,7 @@ SelectInstructionsForMethod(Method* method,
//
// Build the instruction trees to be given as inputs to BURG.
//
- InstrForest instrForest;
- instrForest.buildTreesForMethod(method);
+ InstrForest instrForest(method);
if (SelectDebugLevel >= Select_DebugInstTrees)
{
diff --git a/lib/CodeGen/TargetMachine/Sparc/Sparc.burg b/lib/CodeGen/TargetMachine/Sparc/Sparc.burg
index a40a9bb1fb..c554f2fff3 100644
--- a/lib/CodeGen/TargetMachine/Sparc/Sparc.burg
+++ b/lib/CodeGen/TargetMachine/Sparc/Sparc.burg
@@ -220,8 +220,6 @@ reg: Constant = 72 (3); /* prefer direct use */
* This code was taken from sample.gr provided with BURG.
*-----------------------------------------------------------------------*/
-static char rcsid[] = "$Id$";
-
void printcover(NODEPTR_TYPE p, int goalnt, int indent) {
int eruleno = burm_rule(STATE_LABEL(p), goalnt);
short *nts = burm_nts[eruleno];
diff --git a/lib/Target/SparcV9/InstrSelection/InstrForest.cpp b/lib/Target/SparcV9/InstrSelection/InstrForest.cpp
index 50c4f98721..0ecf1c2fe9 100644
--- a/lib/Target/SparcV9/InstrSelection/InstrForest.cpp
+++ b/lib/Target/SparcV9/InstrSelection/InstrForest.cpp
@@ -176,11 +176,6 @@ inline void InstrForest::setRightChild(InstrTreeNode *Par, InstrTreeNode *Chld){
}
-void InstrForest::buildTreesForMethod(Method *M) {
- for_each(M->inst_begin(), M->inst_end(),
- bind_obj(this, &InstrForest::buildTreeForInstruction));
-}
-
InstructionNode *InstrForest::buildTreeForInstruction(Instruction *Inst) {
InstructionNode *treeNode = getTreeNodeForInstr(Inst);
if (treeNode) {
@@ -210,8 +205,7 @@ InstructionNode *InstrForest::buildTreeForInstruction(Instruction *Inst) {
static InstrTreeNode *fixedChildArray[MAX_CHILD];
InstrTreeNode **childArray =
(Inst->getNumOperands() > MAX_CHILD)
- ? new (InstrTreeNode*)[Inst->getNumOperands()]
- : fixedChildArray;
+ ? new (InstrTreeNode*)[Inst->getNumOperands()] : fixedChildArray;
//
// Walk the operands of the instruction
@@ -309,3 +303,8 @@ InstructionNode *InstrForest::buildTreeForInstruction(Instruction *Inst) {
return treeNode;
}
+
+InstrForest::InstrForest(Method *M) {
+ for_each(M->inst_begin(), M->inst_end(),
+ bind_obj(this, &InstrForest::buildTreeForInstruction));
+}
diff --git a/lib/Target/SparcV9/InstrSelection/InstrSelection.cpp b/lib/Target/SparcV9/InstrSelection/InstrSelection.cpp
index 675e489e46..b77b5a8b4e 100644
--- a/lib/Target/SparcV9/InstrSelection/InstrSelection.cpp
+++ b/lib/Target/SparcV9/InstrSelection/InstrSelection.cpp
@@ -31,11 +31,11 @@ enum SelectDebugLevel_t {
};
// Enable Debug Options to be specified on the command line
-cl::Enum<enum SelectDebugLevel_t> SelectDebugLevel("dselect", cl::NoFlags, // cl::Hidden
+cl::Enum<enum SelectDebugLevel_t> SelectDebugLevel("dselect", cl::NoFlags,
"enable instruction selection debugging information",
clEnumValN(Select_NoDebugInfo, "n", "disable debug output"),
clEnumValN(Select_PrintMachineCode, "y", "print generated machine code"),
- clEnumValN(Select_DebugInstTrees, "i", "print instr. selection debugging info"),
+ clEnumValN(Select_DebugInstTrees, "i", "print instruction selection debug info"),
clEnumValN(Select_DebugBurgTrees, "b", "print burg trees"), 0);
@@ -54,8 +54,7 @@ SelectInstructionsForMethod(Method* method,
//
// Build the instruction trees to be given as inputs to BURG.
//
- InstrForest instrForest;
- instrForest.buildTreesForMethod(method);
+ InstrForest instrForest(method);
if (SelectDebugLevel >= Select_DebugInstTrees)
{