diff options
Diffstat (limited to 'include/llvm/Analysis/IteratedDominanceFrontier.h')
-rw-r--r-- | include/llvm/Analysis/IteratedDominanceFrontier.h | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/include/llvm/Analysis/IteratedDominanceFrontier.h b/include/llvm/Analysis/IteratedDominanceFrontier.h index bd74d6bd14c3..edaf4e9025bc 100644 --- a/include/llvm/Analysis/IteratedDominanceFrontier.h +++ b/include/llvm/Analysis/IteratedDominanceFrontier.h @@ -42,11 +42,11 @@ namespace llvm { /// By default, liveness is not used to prune the IDF computation. /// The template parameters should be either BasicBlock* or Inverse<BasicBlock /// *>, depending on if you want the forward or reverse IDF. -template <class NodeTy> +template <class NodeTy, bool IsPostDom> class IDFCalculator { - -public: - IDFCalculator(DominatorTreeBase<BasicBlock> &DT) : DT(DT), useLiveIn(false) {} + public: + IDFCalculator(DominatorTreeBase<BasicBlock, IsPostDom> &DT) + : DT(DT), useLiveIn(false) {} /// \brief Give the IDF calculator the set of blocks in which the value is /// defined. This is equivalent to the set of starting blocks it should be @@ -84,12 +84,12 @@ public: void calculate(SmallVectorImpl<BasicBlock *> &IDFBlocks); private: - DominatorTreeBase<BasicBlock> &DT; - bool useLiveIn; - const SmallPtrSetImpl<BasicBlock *> *LiveInBlocks; - const SmallPtrSetImpl<BasicBlock *> *DefBlocks; + DominatorTreeBase<BasicBlock, IsPostDom> &DT; + bool useLiveIn; + const SmallPtrSetImpl<BasicBlock *> *LiveInBlocks; + const SmallPtrSetImpl<BasicBlock *> *DefBlocks; }; -typedef IDFCalculator<BasicBlock *> ForwardIDFCalculator; -typedef IDFCalculator<Inverse<BasicBlock *>> ReverseIDFCalculator; +typedef IDFCalculator<BasicBlock *, false> ForwardIDFCalculator; +typedef IDFCalculator<Inverse<BasicBlock *>, true> ReverseIDFCalculator; } #endif |