Home | History | Annotate | Download | only in Support

Lines Matching defs:GraphT

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