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

Declarations

include/llvm/CodeGen/LiveRangeCalc.h
   37 template <class NodeT> class DomTreeNodeBase;

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/CodeGen/LiveRangeCalc.h
   42 using MachineDomTreeNode = DomTreeNodeBase<MachineBasicBlock>;
include/llvm/Support/GenericDomTree.h
   62   DomTreeNodeBase *IDom;
   64   std::vector<DomTreeNodeBase *> Children;
   69   DomTreeNodeBase(NodeT *BB, DomTreeNodeBase *iDom)
   72   using iterator = typename std::vector<DomTreeNodeBase *>::iterator;
   74       typename std::vector<DomTreeNodeBase *>::const_iterator;
   82   DomTreeNodeBase *getIDom() const { return IDom; }
   85   const std::vector<DomTreeNodeBase *> &getChildren() const { return Children; }
   87   std::unique_ptr<DomTreeNodeBase> addChild(
   88       std::unique_ptr<DomTreeNodeBase> C) {
   97   bool compare(const DomTreeNodeBase *Other) const {
  104     for (const DomTreeNodeBase *I : *Other) {
  109     for (const DomTreeNodeBase *I : *this) {
  117   void setIDom(DomTreeNodeBase *NewIDom) {
  143   bool DominatedBy(const DomTreeNodeBase *other) const {
  152     SmallVector<DomTreeNodeBase *, 64> WorkStack = {this};
  155       DomTreeNodeBase *Current = WorkStack.pop_back_val();
  158       for (DomTreeNodeBase *C : *Current) {
  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);
  582   DomTreeNodeBase<NodeT> *setNewRoot(NodeT *BB) {
  587     DomTreeNodeBase<NodeT> *NewNode = (DomTreeNodes[BB] =
  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));
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/Vectorize/VPlanDominatorTree.h
   28 using VPDomTreeNode = DomTreeNodeBase<VPBlockBase>;
tools/clang/include/clang/Analysis/Analyses/Dominators.h
   38 using DomTreeNode = llvm::DomTreeNodeBase<CFGBlock>;