Really remove dead nodes from isel queue.
authorEvan Cheng <evan.cheng@apple.com>
Thu, 12 Oct 2006 23:18:52 +0000 (23:18 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Thu, 12 Oct 2006 23:18:52 +0000 (23:18 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30923 91177308-0d34-0410-b5e6-96231b3b80d8

utils/TableGen/DAGISelEmitter.cpp

index fdc67a157bcfcb01dc52acab21efea4b23e6cd4d..8b1dc6e09e14d7ed1aeda8450b7551201ca6f7c4 100644 (file)
@@ -3723,7 +3723,8 @@ OS << "  unsigned NumKilled = ISelKilled.size();\n";
   OS << "  if (NumKilled) {\n";
   OS << "    for (unsigned i = 0; i != NumKilled; ++i) {\n";
   OS << "      SDNode *Temp = ISelKilled[i];\n";
-  OS << "      std::remove(ISelQueue.begin(), ISelQueue.end(), Temp);\n";
+  OS << "      ISelQueue.erase(std::remove(ISelQueue.begin(), ISelQueue.end(), "
+     << "Temp), ISelQueue.end());\n";
   OS << "    };\n";
  OS << "    std::make_heap(ISelQueue.begin(), ISelQueue.end(), isel_sort());\n";
   OS << "    ISelKilled.clear();\n";