Changes in directory llvm/utils/TableGen:
DAGISelEmitter.cpp updated: 1.243 -> 1.244 --- Log message: The generated runloop shouldn't require Select to update 'Result'. In fact we'd like to remove result entirely. --- Diffs of the changes: (+6 -3) DAGISelEmitter.cpp | 9 ++++++--- 1 files changed, 6 insertions(+), 3 deletions(-) Index: llvm/utils/TableGen/DAGISelEmitter.cpp diff -u llvm/utils/TableGen/DAGISelEmitter.cpp:1.243 llvm/utils/TableGen/DAGISelEmitter.cpp:1.244 --- llvm/utils/TableGen/DAGISelEmitter.cpp:1.243 Tue Aug 15 18:27:50 2006 +++ llvm/utils/TableGen/DAGISelEmitter.cpp Tue Aug 15 18:42:26 2006 @@ -3646,8 +3646,11 @@ OS << " memset(ISelQueued, 0, NumBytes);\n"; OS << " memset(ISelSelected, 0, NumBytes);\n"; OS << "\n"; - OS << " SDOperand ResNode;\n"; - OS << " Select(ResNode, Root);\n"; + OS << " // Create a dummy node (which is not added to allnodes), that adds\n" + << " // a reference to the root node, preventing it from being deleted,\n" + << " // and tracking any changes of the root.\n" + << " HandleSDNode Dummy(CurDAG->getRoot());\n" + << " ISelQueue.push_back(CurDAG->getRoot().Val);\n"; OS << " while (!ISelQueue.empty()) {\n"; OS << " SDOperand Tmp;\n"; OS << " SDNode *Node = ISelQueue.front();\n"; @@ -3663,7 +3666,7 @@ OS << " ISelQueued = NULL;\n"; OS << " delete[] ISelSelected;\n"; OS << " ISelSelected = NULL;\n"; - OS << " return ResNode;\n"; + OS << " return Dummy.getValue();\n"; OS << "}\n"; Intrinsics = LoadIntrinsics(Records); _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits