reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

Declarations

lib/IR/Dominators.cpp
   65 template class llvm::DomTreeNodeBase<BasicBlock>;

References

include/llvm/Analysis/DominanceFrontier.h
  129   using DomTreeNodeT = DomTreeNodeBase<BlockT>;
  145   using DomTreeNodeT = DomTreeNodeBase<BasicBlock>;
include/llvm/Analysis/DominanceFrontierImpl.h
   37   using DomTreeNodeT = DomTreeNodeBase<BlockT>;
include/llvm/Analysis/LoopInfoImpl.h
  540   const DomTreeNodeBase<BlockT> *DomRoot = DomTree.getRootNode();
include/llvm/Analysis/RegionInfoImpl.h
  768   for (DomTreeNodeBase<BlockT> *C : *N) {
include/llvm/IR/Dominators.h
   74 using DomTreeNode = DomTreeNodeBase<BasicBlock>;
include/llvm/Support/GenericDomTree.h
  167 raw_ostream &operator<<(raw_ostream &O, const DomTreeNodeBase<NodeT> *Node) {
  180 void PrintDomTree(const DomTreeNodeBase<NodeT> *N, raw_ostream &O,
  183   for (typename DomTreeNodeBase<NodeT>::const_iterator I = N->begin(),
  243      DenseMap<NodeT *, std::unique_ptr<DomTreeNodeBase<NodeT>>>;
  245   DomTreeNodeBase<NodeT> *RootNode = nullptr;
  312       DomTreeNodeBase<NodeT> &MyNd = *DomTreeNode.second;
  313       DomTreeNodeBase<NodeT> &OtherNd = *OI->second;
  328   DomTreeNodeBase<NodeT> *getNode(const NodeT *BB) const {
  336   DomTreeNodeBase<NodeT> *operator[](const NodeT *BB) const {
  347   DomTreeNodeBase<NodeT> *getRootNode() { return RootNode; }
  348   const DomTreeNodeBase<NodeT> *getRootNode() const { return RootNode; }
  353     const DomTreeNodeBase<NodeT> *RN = getNode(R);
  356     SmallVector<const DomTreeNodeBase<NodeT> *, 8> WL;
  360       const DomTreeNodeBase<NodeT> *N = WL.pop_back_val();
  369   bool properlyDominates(const DomTreeNodeBase<NodeT> *A,
  370                          const DomTreeNodeBase<NodeT> *B) const {
  388   bool isReachableFromEntry(const DomTreeNodeBase<NodeT> *A) const { return A; }
  393   bool dominates(const DomTreeNodeBase<NodeT> *A,
  394                  const DomTreeNodeBase<NodeT> *B) const {
  458     DomTreeNodeBase<NodeT> *NodeA = getNode(A);
  459     DomTreeNodeBase<NodeT> *NodeB = getNode(B);
  482   bool isVirtualRoot(const DomTreeNodeBase<NodeT> *A) const {
  568   DomTreeNodeBase<NodeT> *addNewBlock(NodeT *BB, NodeT *DomBB) {
  570     DomTreeNodeBase<NodeT> *IDomNode = getNode(DomBB);
  574                 std::make_unique<DomTreeNodeBase<NodeT>>(BB, IDomNode))).get();
  582   DomTreeNodeBase<NodeT> *setNewRoot(NodeT *BB) {
  587     DomTreeNodeBase<NodeT> *NewNode = (DomTreeNodes[BB] =
  588       std::make_unique<DomTreeNodeBase<NodeT>>(BB, nullptr)).get();
  606   void changeImmediateDominator(DomTreeNodeBase<NodeT> *N,
  607                                 DomTreeNodeBase<NodeT> *NewIDom) {
  621     DomTreeNodeBase<NodeT> *Node = getNode(BB);
  628     DomTreeNodeBase<NodeT> *IDom = Node->getIDom();
  689     SmallVector<std::pair<const DomTreeNodeBase<NodeT> *,
  690                           typename DomTreeNodeBase<NodeT>::const_iterator>,
  693     const DomTreeNodeBase<NodeT> *ThisRoot = getRootNode();
  706       const DomTreeNodeBase<NodeT> *Node = WorkStack.back().first;
  716         const DomTreeNodeBase<NodeT> *Child = *ChildIt;
  816     DomTreeNodeBase<NodeT> *NewBBNode = addNewBlock(NewBB, NewBBIDom);
  821       DomTreeNodeBase<NodeT> *NewBBSuccNode = getNode(NewBBSucc);
  827   bool dominatedBySlowTreeWalk(const DomTreeNodeBase<NodeT> *A,
  828                                const DomTreeNodeBase<NodeT> *B) const {
  834     const DomTreeNodeBase<NodeT> *IDom;
include/llvm/Support/GenericDomTreeConstruction.h
   56   using TreeNodePtr = DomTreeNodeBase<NodeT> *;
  189         std::make_unique<DomTreeNodeBase<NodeT>>(BB, IDomNode)))
  589                        std::make_unique<DomTreeNodeBase<NodeT>>(Root, nullptr))
  614           std::make_unique<DomTreeNodeBase<NodeT>>(W, IDomNode));
  666                std::make_unique<DomTreeNodeBase<NodeT>>(From, VirtualRoot)))
include/llvm/Support/GenericIteratedDominanceFrontier.h
  138       std::pair<DomTreeNodeBase<NodeTy> *, std::pair<unsigned, unsigned>>;
  148     if (DomTreeNodeBase<NodeTy> *Node = DT.getNode(BB))
  152   SmallVector<DomTreeNodeBase<NodeTy> *, 32> Worklist;
  153   SmallPtrSet<DomTreeNodeBase<NodeTy> *, 32> VisitedPQ;
  154   SmallPtrSet<DomTreeNodeBase<NodeTy> *, 32> VisitedWorklist;
  159     DomTreeNodeBase<NodeTy> *Root = RootPair.first;
  172       DomTreeNodeBase<NodeTy> *Node = Worklist.pop_back_val();
  177         DomTreeNodeBase<NodeTy> *SuccNode = DT.getNode(Succ);
lib/Transforms/Utils/LoopSimplify.cpp
  676       const std::vector<DomTreeNodeBase<BasicBlock> *> &Children =