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(); _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits