Use RemoveDeadNode to kill dead node.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30917 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/utils/TableGen/DAGISelEmitter.cpp b/utils/TableGen/DAGISelEmitter.cpp
index 5221fe0..fdc67a1 100644
--- a/utils/TableGen/DAGISelEmitter.cpp
+++ b/utils/TableGen/DAGISelEmitter.cpp
@@ -3741,16 +3741,6 @@
OS << " RemoveKilled();\n";
OS << "}\n\n";
- OS << "void DeleteNode(SDNode *N) {\n";
- OS << " CurDAG->DeleteNode(N);\n";
- OS << " for (SDNode::op_iterator I = N->op_begin(), E = N->op_end(); "
- << "I != E; ++I) {\n";
- OS << " SDNode *Operand = I->Val;\n";
- OS << " if (Operand->use_empty())\n";
- OS << " DeleteNode(Operand);\n";
- OS << " }\n";
- OS << "}\n";
-
OS << "// SelectRoot - Top level entry to DAG isel.\n";
OS << "SDOperand SelectRoot(SDOperand Root) {\n";
OS << " SelectRootInit();\n";
@@ -3774,8 +3764,10 @@
OS << " if (ResNode != Node) {\n";
OS << " if (ResNode)\n";
OS << " ReplaceUses(Node, ResNode);\n";
- OS << " if (Node->use_empty()) // Don't delete EntryToken, etc.\n";
- OS << " DeleteNode(Node);\n";
+ OS << " if (Node->use_empty()) { // Don't delete EntryToken, etc.\n";
+ OS << " CurDAG->RemoveDeadNode(Node, ISelKilled);\n";
+ OS << " RemoveKilled();\n";
+ OS << " }\n";
OS << " }\n";
OS << " }\n";
OS << " }\n";