Lines Matching defs:NodeTy

39 template <class NodeTy, bool IsPostDom> struct ChildrenGetterTy {
40 using NodeRef = typename GraphTraits<NodeTy *>::NodeRef;
41 using ChildIteratorType = typename GraphTraits<NodeTy *>::ChildIteratorType;
58 template <class NodeTy, bool IsPostDom> class IDFCalculatorBase {
61 std::conditional_t<IsPostDom, Inverse<NodeTy *>, NodeTy *>;
63 IDFCalculatorDetail::ChildrenGetterTy<NodeTy, IsPostDom>;
65 IDFCalculatorBase(DominatorTreeBase<NodeTy, IsPostDom> &DT) : DT(DT) {}
67 IDFCalculatorBase(DominatorTreeBase<NodeTy, IsPostDom> &DT,
76 void setDefiningBlocks(const SmallPtrSetImpl<NodeTy *> &Blocks) {
85 void setLiveInBlocks(const SmallPtrSetImpl<NodeTy *> &Blocks) {
103 void calculate(SmallVectorImpl<NodeTy *> &IDFBlocks);
106 DominatorTreeBase<NodeTy, IsPostDom> &DT;
109 const SmallPtrSetImpl<NodeTy *> *LiveInBlocks;
110 const SmallPtrSetImpl<NodeTy *> *DefBlocks;
119 template <class NodeTy, bool IsPostDom>
120 typename ChildrenGetterTy<NodeTy, IsPostDom>::range
121 ChildrenGetterTy<NodeTy, IsPostDom>::get(const NodeRef &N) {
123 typename IDFCalculatorBase<NodeTy, IsPostDom>::OrderedNodeTy;
130 template <class NodeTy, bool IsPostDom>
131 void IDFCalculatorBase<NodeTy, IsPostDom>::calculate(
132 SmallVectorImpl<NodeTy *> &IDFBlocks) {
138 std::pair<DomTreeNodeBase<NodeTy> *, std::pair<unsigned, unsigned>>;
147 SmallVector<DomTreeNodeBase<NodeTy> *, 32> Worklist;
148 SmallPtrSet<DomTreeNodeBase<NodeTy> *, 16> VisitedPQ;
149 SmallPtrSet<DomTreeNodeBase<NodeTy> *, 16> VisitedWorklist;
155 for (NodeTy *BB : *DefBlocks)
156 if (DomTreeNodeBase<NodeTy> *Node = DT.getNode(BB)) {
164 DomTreeNodeBase<NodeTy> *Root = RootPair.first;
176 DomTreeNodeBase<NodeTy> *Node = Worklist.pop_back_val();
177 NodeTy *BB = Node->getBlock();
180 auto DoWork = [&](NodeTy *Succ) {
181 DomTreeNodeBase<NodeTy> *SuccNode = DT.getNode(Succ);
190 NodeTy *SuccBB = SuccNode->getBlock();