diff options
author | Owen Anderson <resistor@mac.com> | 2007-09-28 01:23:47 +0000 |
---|---|---|
committer | Owen Anderson <resistor@mac.com> | 2007-09-28 01:23:47 +0000 |
commit | 0fbef94cd00c8b0d7c890df7745fa61910c0474d (patch) | |
tree | 7a6a18063345ca223d093d18d4990a7f22267501 /llvm/lib/Analysis/PostDominators.cpp | |
parent | edfc5b2204cd8de2a2c7946952220545a32ded2d (diff) | |
download | llvm-0fbef94cd00c8b0d7c890df7745fa61910c0474d.zip llvm-0fbef94cd00c8b0d7c890df7745fa61910c0474d.tar.gz llvm-0fbef94cd00c8b0d7c890df7745fa61910c0474d.tar.bz2 |
Have PostDomTree use the newly templated DFSPass.
llvm-svn: 42427
Diffstat (limited to 'llvm/lib/Analysis/PostDominators.cpp')
-rw-r--r-- | llvm/lib/Analysis/PostDominators.cpp | 45 |
1 files changed, 0 insertions, 45 deletions
diff --git a/llvm/lib/Analysis/PostDominators.cpp b/llvm/lib/Analysis/PostDominators.cpp index b8d833e..cd29749 100644 --- a/llvm/lib/Analysis/PostDominators.cpp +++ b/llvm/lib/Analysis/PostDominators.cpp @@ -28,51 +28,6 @@ char PostDominanceFrontier::ID = 0; static RegisterPass<PostDominatorTree> F("postdomtree", "Post-Dominator Tree Construction", true); -unsigned PostDominatorTree::DFSPass(BasicBlock *V, unsigned N) { - std::vector<BasicBlock *> workStack; - SmallPtrSet<BasicBlock *, 32> Visited; - workStack.push_back(V); - - do { - BasicBlock *currentBB = workStack.back(); - InfoRec &CurVInfo = Info[currentBB]; - - // Visit each block only once. - if (Visited.insert(currentBB)) { - CurVInfo.Semi = ++N; - CurVInfo.Label = currentBB; - - Vertex.push_back(currentBB); // Vertex[n] = current; - // Info[currentBB].Ancestor = 0; - // Ancestor[n] = 0 - // Child[currentBB] = 0; - CurVInfo.Size = 1; // Size[currentBB] = 1 - } - - // Visit children - bool visitChild = false; - for (pred_iterator PI = pred_begin(currentBB), PE = pred_end(currentBB); - PI != PE && !visitChild; ++PI) { - InfoRec &SuccVInfo = Info[*PI]; - if (SuccVInfo.Semi == 0) { - SuccVInfo.Parent = currentBB; - if (!Visited.count(*PI)) { - workStack.push_back(*PI); - visitChild = true; - } - } - } - - // If all children are visited or if this block has no child then pop this - // block out of workStack. - if (!visitChild) - workStack.pop_back(); - - } while (!workStack.empty()); - - return N; -} - //===----------------------------------------------------------------------===// // PostDominanceFrontier Implementation //===----------------------------------------------------------------------===// |