[llvm-commits] CVS: llvm/utils/TableGen/DAGISelEmitter.cpp
Evan Cheng
evan.cheng at apple.com
Thu Jun 29 16:57:19 PDT 2006
Changes in directory llvm/utils/TableGen:
DAGISelEmitter.cpp updated: 1.216 -> 1.217
---
Log message:
Ugly hack! Add helper functions InsertInFlightSetEntry and
RemoveInFlightSetEntry. They are used in place of direct set operators to
reduce instruction selection function stack size.
---
Diffs of the changes: (+8 -4)
DAGISelEmitter.cpp | 12 ++++++++----
1 files changed, 8 insertions(+), 4 deletions(-)
Index: llvm/utils/TableGen/DAGISelEmitter.cpp
diff -u llvm/utils/TableGen/DAGISelEmitter.cpp:1.216 llvm/utils/TableGen/DAGISelEmitter.cpp:1.217
--- llvm/utils/TableGen/DAGISelEmitter.cpp:1.216 Mon Jun 19 19:56:37 2006
+++ llvm/utils/TableGen/DAGISelEmitter.cpp Thu Jun 29 18:57:05 2006
@@ -2450,14 +2450,16 @@
emitCode("if (!Match) {");
for (std::vector<std::string>::iterator AI = InflightNodes.begin(),
AE = InflightNodes.end(); AI != AE; ++AI)
- emitCode(" InFlightSet.erase(" + *AI + ".Val);");
+ emitCode(" SelectionDAG::RemoveInFlightSetEntry(InFlightSet, " +
+ *AI + ".Val);");
emitCode("}");
}
emitCheck("Match");
for (unsigned i = 0; i < NumRes; ++i) {
- emitCode("InFlightSet.insert(CPTmp" + utostr(i+ResNo) + ".Val);");
+ emitCode("SelectionDAG::InsertInFlightSetEntry(InFlightSet, CPTmp" +
+ utostr(i+ResNo) + ".Val);");
InflightNodes.push_back("CPTmp" + utostr(i+ResNo));
}
for (unsigned i = 0; i < NumRes; ++i) {
@@ -2579,7 +2581,8 @@
assert(!Val.empty() &&
"Variable referenced but not defined and not caught earlier!");
if (Child->isLeaf() && !NodeGetComplexPattern(Child, ISE)) {
- emitCode("InFlightSet.insert(" + Val + ".Val);");
+ emitCode("SelectionDAG::InsertInFlightSetEntry(InFlightSet, " +
+ Val + ".Val);");
InflightNodes.push_back(Val);
}
}
@@ -2616,7 +2619,8 @@
// The operands have been selected. Remove them from InFlightSet.
for (std::vector<std::string>::iterator AI = InflightNodes.begin(),
AE = InflightNodes.end(); AI != AE; ++AI)
- emitCode("InFlightSet.erase(" + *AI + ".Val);");
+ emitCode("SelectionDAG::RemoveInFlightSetEntry(InFlightSet, " +
+ *AI + ".Val);");
}
unsigned NumResults = Inst.getNumResults();
More information about the llvm-commits
mailing list