diff options
author | Chris Lattner <sabre@nondot.org> | 2002-08-21 23:43:50 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2002-08-21 23:43:50 +0000 |
commit | a69fd903585a665c031d5aa3fdfb8dc919b44bef (patch) | |
tree | 99d2f676777a0991af298165d0e47d75b7347baa /include/llvm/Analysis/Dominators.h | |
parent | 352eef717dc2e686b28164a8f0f982db4fd24cd7 (diff) | |
download | external_llvm-a69fd903585a665c031d5aa3fdfb8dc919b44bef.zip external_llvm-a69fd903585a665c031d5aa3fdfb8dc919b44bef.tar.gz external_llvm-a69fd903585a665c031d5aa3fdfb8dc919b44bef.tar.bz2 |
- Split Dominators.h into Dominators.h & PostDominators.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3432 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Analysis/Dominators.h')
-rw-r--r-- | include/llvm/Analysis/Dominators.h | 96 |
1 files changed, 2 insertions, 94 deletions
diff --git a/include/llvm/Analysis/Dominators.h b/include/llvm/Analysis/Dominators.h index 5ef302f..af45646 100644 --- a/include/llvm/Analysis/Dominators.h +++ b/include/llvm/Analysis/Dominators.h @@ -15,8 +15,8 @@ // //===----------------------------------------------------------------------===// -#ifndef LLVM_DOMINATORS_H -#define LLVM_DOMINATORS_H +#ifndef LLVM_ANALYSIS_DOMINATORS_H +#define LLVM_ANALYSIS_DOMINATORS_H #include "llvm/Pass.h" #include <set> @@ -108,25 +108,6 @@ struct DominatorSet : public DominatorSetBase { }; -//===------------------------------------- -// DominatorSet Class - Concrete subclass of DominatorSetBase that is used to -// compute the post-dominator set. -// -struct PostDominatorSet : public DominatorSetBase { - PostDominatorSet() : DominatorSetBase(true) {} - - virtual bool runOnFunction(Function &F); - - // getAnalysisUsage - This obviously provides a dominator set, but it also - // uses the UnifyFunctionExitNode pass if building post-dominators - // - virtual void getAnalysisUsage(AnalysisUsage &AU) const; -}; - - - - - //===----------------------------------------------------------------------===// // // ImmediateDominators - Calculate the immediate dominator for each node in a @@ -182,29 +163,6 @@ struct ImmediateDominators : public ImmediateDominatorsBase { }; -//===------------------------------------- -// ImmediatePostDominators Class - Concrete subclass of ImmediateDominatorsBase -// that is used to compute the immediate post-dominators. -// -struct ImmediatePostDominators : public ImmediateDominatorsBase { - ImmediatePostDominators() : ImmediateDominatorsBase(true) {} - - virtual bool runOnFunction(Function &F) { - IDoms.clear(); // Reset from the last time we were run... - PostDominatorSet &DS = getAnalysis<PostDominatorSet>(); - Root = DS.getRoot(); - calcIDoms(DS); - return false; - } - - virtual void getAnalysisUsage(AnalysisUsage &AU) const { - AU.setPreservesAll(); - AU.addRequired<PostDominatorSet>(); - } -}; - - - //===----------------------------------------------------------------------===// // // DominatorTree - Calculate the immediate dominator tree for a function. @@ -284,30 +242,6 @@ private: }; -//===------------------------------------- -// PostDominatorTree Class - Concrete subclass of DominatorTree that is used to -// compute the a post-dominator tree. -// -struct PostDominatorTree : public DominatorTreeBase { - PostDominatorTree() : DominatorTreeBase(true) {} - - virtual bool runOnFunction(Function &F) { - reset(); // Reset from the last time we were run... - PostDominatorSet &DS = getAnalysis<PostDominatorSet>(); - Root = DS.getRoot(); - calculate(DS); - return false; - } - - virtual void getAnalysisUsage(AnalysisUsage &AU) const { - AU.setPreservesAll(); - AU.addRequired<PostDominatorSet>(); - } -private: - void calculate(const PostDominatorSet &DS); -}; - - //===----------------------------------------------------------------------===// // // DominanceFrontier - Calculate the dominance frontiers for a function. @@ -358,30 +292,4 @@ private: const DominatorTree::Node *Node); }; - -//===------------------------------------- - -// PostDominanceFrontier Class - Concrete subclass of DominanceFrontier that is -// used to compute the a post-dominance frontier. -// -struct PostDominanceFrontier : public DominanceFrontierBase { - PostDominanceFrontier() : DominanceFrontierBase(true) {} - - virtual bool runOnFunction(Function &) { - Frontiers.clear(); - PostDominatorTree &DT = getAnalysis<PostDominatorTree>(); - Root = DT.getRoot(); - calculate(DT, DT[Root]); - return false; - } - - virtual void getAnalysisUsage(AnalysisUsage &AU) const { - AU.setPreservesAll(); - AU.addRequired<PostDominatorTree>(); - } -private: - const DomSetType &calculate(const PostDominatorTree &DT, - const DominatorTree::Node *Node); -}; - #endif |