Switch some std::sets to SmallPtrSet. This speeds up
[oota-llvm.git] / lib / VMCore / Dominators.cpp
index 6231eb8e469d6d3e397f8c1249a79bb3c6751170..7d0fbaa29aa5e656f6bca56981c68930c2ed573f 100644 (file)
@@ -211,7 +211,7 @@ unsigned DominatorTree::DFSPass(BasicBlock *V, unsigned N) {
 void DominatorTree::Compress(BasicBlock *VIn) {
 
   std::vector<BasicBlock *> Work;
-  std::set<BasicBlock *> Visited;
+  SmallPtrSet<BasicBlock *, 32> Visited;
   BasicBlock *VInAncestor = Info[VIn].Ancestor;
   InfoRec &VInVAInfo = Info[VInAncestor];
 
@@ -225,9 +225,9 @@ void DominatorTree::Compress(BasicBlock *VIn) {
     InfoRec &VAInfo = Info[VAncestor];
 
     // Process Ancestor first
-    if (Visited.count(VAncestor) == 0 && VAInfo.Ancestor != 0) {
+    if (Visited.insert(VAncestor) &&
+        VAInfo.Ancestor != 0) {
       Work.push_back(VAncestor);
-      Visited.insert(VAncestor);
       continue;
     } 
     Work.pop_back();