diff options
author | Chris Lattner <sabre@nondot.org> | 2003-02-01 06:23:33 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2003-02-01 06:23:33 +0000 |
commit | 71449ba5569f18336012aa51c41e215706b5270e (patch) | |
tree | 86a710dc5f86cd854a32558c0e4f6656322c20f2 /llvm/lib/Analysis/DataStructure | |
parent | 4f276cc4dd893706296eb39cfd20604f317a43b8 (diff) | |
download | bcm5719-llvm-71449ba5569f18336012aa51c41e215706b5270e.tar.gz bcm5719-llvm-71449ba5569f18336012aa51c41e215706b5270e.zip |
Remove dead nodes more efficiently
llvm-svn: 5462
Diffstat (limited to 'llvm/lib/Analysis/DataStructure')
-rw-r--r-- | llvm/lib/Analysis/DataStructure/DataStructure.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/Analysis/DataStructure/DataStructure.cpp b/llvm/lib/Analysis/DataStructure/DataStructure.cpp index a0e57706015..8a6eab452fe 100644 --- a/llvm/lib/Analysis/DataStructure/DataStructure.cpp +++ b/llvm/lib/Analysis/DataStructure/DataStructure.cpp @@ -1095,7 +1095,8 @@ void DSGraph::removeDeadNodes(unsigned Flags) { for (unsigned i = 0; i != Nodes.size(); ++i) if (!Alive.count(Nodes[i])) { DSNode *N = Nodes[i]; - Nodes.erase(Nodes.begin()+i--); // Erase node from alive list. + std::swap(Nodes[i--], Nodes.back()); // move node to end of vector + Nodes.pop_back(); // Erase node from alive list. DeadNodes.push_back(N); // Add node to our list of dead nodes N->dropAllReferences(); // Drop all outgoing edges } |