Lines Matching refs:GraphT
32 template<class GraphT>
33 unsigned DFSPass(DominatorTreeBase<typename GraphT::NodeType>& DT, in DFSPass()
34 typename GraphT::NodeType* V, unsigned N) { in DFSPass()
55 SmallVector<std::pair<typename GraphT::NodeType*, in DFSPass()
56 typename GraphT::ChildIteratorType>, 32> Worklist; in DFSPass()
57 Worklist.push_back(std::make_pair(V, GraphT::child_begin(V))); in DFSPass()
59 typename GraphT::NodeType* BB = Worklist.back().first; in DFSPass()
60 typename GraphT::ChildIteratorType NextSucc = Worklist.back().second; in DFSPass()
62 typename DominatorTreeBase<typename GraphT::NodeType>::InfoRec &BBInfo = in DFSPass()
66 if (NextSucc == GraphT::child_begin(BB)) { in DFSPass()
83 if (NextSucc == GraphT::child_end(BB)) { in DFSPass()
92 typename GraphT::NodeType* Succ = *NextSucc; in DFSPass()
94 typename DominatorTreeBase<typename GraphT::NodeType>::InfoRec &SuccVInfo = in DFSPass()
98 Worklist.push_back(std::make_pair(Succ, GraphT::child_begin(Succ))); in DFSPass()
105 template <class GraphT>
106 typename GraphT::NodeType *
107 Eval(DominatorTreeBase<typename GraphT::NodeType> &DT, in Eval()
108 typename GraphT::NodeType *VIn, unsigned LastLinked) { in Eval()
109 typename DominatorTreeBase<typename GraphT::NodeType>::InfoRec &VInInfo = in Eval()
114 SmallVector<typename GraphT::NodeType*, 32> Work; in Eval()
115 SmallPtrSet<typename GraphT::NodeType*, 32> Visited; in Eval()
121 typename GraphT::NodeType* V = Work.back(); in Eval()
122 typename DominatorTreeBase<typename GraphT::NodeType>::InfoRec &VInfo = in Eval()
124 typename GraphT::NodeType* VAncestor = DT.Vertex[VInfo.Parent]; in Eval()
137 typename DominatorTreeBase<typename GraphT::NodeType>::InfoRec &VAInfo = in Eval()
139 typename GraphT::NodeType* VAncestorLabel = VAInfo.Label; in Eval()
140 typename GraphT::NodeType* VLabel = VInfo.Label; in Eval()
152 typedef GraphTraits<NodeT> GraphT; in Calculate() typedef
157 typename DominatorTreeBase<typename GraphT::NodeType>::InfoRec &BBInfo = in Calculate()
169 N = DFSPass<GraphT>(DT, DT.Roots[i], N); in Calculate()
191 typename GraphT::NodeType* W = DT.Vertex[i]; in Calculate()
192 typename DominatorTreeBase<typename GraphT::NodeType>::InfoRec &WInfo = in Calculate()
197 typename GraphT::NodeType* V = DT.Vertex[Buckets[j]]; in Calculate()
198 typename GraphT::NodeType* U = Eval<GraphT>(DT, V, i + 1); in Calculate()
212 unsigned SemiU = DT.Info[Eval<GraphT>(DT, N, i + 1)].Semi; in Calculate()
230 typename GraphT::NodeType* Root = DT.Vertex[1]; in Calculate()
232 typename GraphT::NodeType* V = DT.Vertex[Buckets[j]]; in Calculate()
239 typename GraphT::NodeType* W = DT.Vertex[i]; in Calculate()
240 typename GraphT::NodeType*& WIDom = DT.IDoms[W]; in Calculate()
251 typename GraphT::NodeType* Root = !MultipleRoots ? DT.Roots[0] : nullptr; in Calculate()
255 llvm::make_unique<DomTreeNodeBase<typename GraphT::NodeType>>( in Calculate()
260 typename GraphT::NodeType* W = DT.Vertex[i]; in Calculate()
266 typename GraphT::NodeType* ImmDom = DT.getIDom(W); in Calculate()
271 DomTreeNodeBase<typename GraphT::NodeType> *IDomNode = in Calculate()
277 llvm::make_unique<DomTreeNodeBase<typename GraphT::NodeType>>( in Calculate()