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

Derived Classes

include/llvm/Analysis/DDG.h
   86 class RootDDGNode : public DDGNode {
  101 class SimpleDDGNode : public DDGNode {

Declarations

include/llvm/Analysis/DDG.h
   24 class DDGNode;

References

include/llvm/ADT/DirectedGraph.h
   31   explicit DGEdge(NodeType &N) : TargetNode(N) {}
   32   explicit DGEdge(const DGEdge<NodeType, EdgeType> &E)
   34   DGEdge<NodeType, EdgeType> &operator=(const DGEdge<NodeType, EdgeType> &E) {
   34   DGEdge<NodeType, EdgeType> &operator=(const DGEdge<NodeType, EdgeType> &E) {
   45   const NodeType &getTargetNode() const { return TargetNode; }
   46   NodeType &getTargetNode() {
   62   NodeType &TargetNode;
   77   explicit DGNode(const DGNode<NodeType, EdgeType> &N) : Edges(N.Edges) {}
   78   DGNode(DGNode<NodeType, EdgeType> &&N) : Edges(std::move(N.Edges)) {}
   80   DGNode<NodeType, EdgeType> &operator=(const DGNode<NodeType, EdgeType> &N) {
   80   DGNode<NodeType, EdgeType> &operator=(const DGNode<NodeType, EdgeType> &N) {
   84   DGNode<NodeType, EdgeType> &operator=(const DGNode<NodeType, EdgeType> &&N) {
   84   DGNode<NodeType, EdgeType> &operator=(const DGNode<NodeType, EdgeType> &&N) {
   91   bool operator==(const NodeType &N) const { return getDerived().isEqualTo(N); }
   92   bool operator!=(const NodeType &N) const { return !operator==(N); }
  107   bool findEdgesTo(const NodeType &N, SmallVectorImpl<EdgeType *> &EL) const {
  123   bool hasEdgeTo(const NodeType &N) const {
  139   bool isEqualTo(const NodeType &N) const { return this == &N; }
  142   NodeType &getDerived() { return *static_cast<NodeType *>(this); }
  143   const NodeType &getDerived() const {
  149   const_iterator findEdgeTo(const NodeType &N) const {
  165   using NodeListTy = SmallVector<NodeType *, 10>;
  170   using DGraphType = DirectedGraph<NodeType, EdgeType>;
  173   explicit DirectedGraph(NodeType &N) : Nodes() { addNode(N); }
  189   const NodeType &front() const { return *Nodes.front(); }
  190   NodeType &front() { return *Nodes.front(); }
  191   const NodeType &back() const { return *Nodes.back(); }
  192   NodeType &back() { return *Nodes.back(); }
  197   const_iterator findNode(const NodeType &N) const {
  201   iterator findNode(const NodeType &N) {
  207   bool addNode(NodeType &N) {
  216   bool findIncomingEdgesToNode(const NodeType &N, SmallVectorImpl<EdgeType*> &EL) const {
  219     for (auto *Node : Nodes) {
  233   bool removeNode(NodeType &N) {
  239     for (auto *Node : Nodes) {
  255   bool connect(NodeType &Src, NodeType &Dst, EdgeType &E) {
  255   bool connect(NodeType &Src, NodeType &Dst, EdgeType &E) {
include/llvm/Analysis/DDG.h
   26 using DDGNodeBase = DGNode<DDGNode, DDGEdge>;
   27 using DDGEdgeBase = DGEdge<DDGNode, DDGEdge>;
   28 using DDGBase = DirectedGraph<DDGNode, DDGEdge>;
   51   DDGNode(const DDGNode &N) : DDGNodeBase(N), Kind(N.Kind) {}
   52   DDGNode(DDGNode &&N) : DDGNodeBase(std::move(N)), Kind(N.Kind) {}
   55   DDGNode &operator=(const DDGNode &N) {
   55   DDGNode &operator=(const DDGNode &N) {
   61   DDGNode &operator=(DDGNode &&N) {
   61   DDGNode &operator=(DDGNode &&N) {
   86 class RootDDGNode : public DDGNode {
   94   static bool classof(const DDGNode *N) {
  101 class SimpleDDGNode : public DDGNode {
  136   static bool classof(const DDGNode *N) {
  168   explicit DDGEdge(DDGNode &N) = delete;
  169   DDGEdge(DDGNode &N, EdgeKind K) : DDGEdgeBase(N), Kind(K) {}
  219   NodeType &getRoot() const {
  236   NodeType *Root = nullptr;
  239 using DDGInfo = DependenceGraphInfo<DDGNode>;
  246   using NodeType = DDGNode;
  275   DDGNode &createRootNode() final override {
  281   DDGNode &createFineGrainedNode(Instruction &I) final override {
  287   DDGEdge &createDefUseEdge(DDGNode &Src, DDGNode &Tgt) final override {
  287   DDGEdge &createDefUseEdge(DDGNode &Src, DDGNode &Tgt) final override {
  293   DDGEdge &createMemoryEdge(DDGNode &Src, DDGNode &Tgt) final override {
  293   DDGEdge &createMemoryEdge(DDGNode &Src, DDGNode &Tgt) final override {
  299   DDGEdge &createRootedEdge(DDGNode &Src, DDGNode &Tgt) final override {
  299   DDGEdge &createRootedEdge(DDGNode &Src, DDGNode &Tgt) final override {
  309 raw_ostream &operator<<(raw_ostream &OS, const DDGNode &N);
  310 raw_ostream &operator<<(raw_ostream &OS, const DDGNode::NodeKind K);
  347   using NodeRef = DDGNode *;
  349   static DDGNode *DDGGetTargetNode(DGEdge<DDGNode, DDGEdge> *P) {
  349   static DDGNode *DDGGetTargetNode(DGEdge<DDGNode, DDGEdge> *P) {
  356       mapped_iterator<DDGNode::iterator, decltype(&DDGGetTargetNode)>;
  357   using ChildEdgeIteratorType = DDGNode::iterator;
  374 struct GraphTraits<DataDependenceGraph *> : public GraphTraits<DDGNode *> {
  387   using NodeRef = const DDGNode *;
  389   static const DDGNode *DDGGetTargetNode(const DGEdge<DDGNode, DDGEdge> *P) {
  389   static const DDGNode *DDGGetTargetNode(const DGEdge<DDGNode, DDGEdge> *P) {
  396       mapped_iterator<DDGNode::const_iterator, decltype(&DDGGetTargetNode)>;
  397   using ChildEdgeIteratorType = DDGNode::const_iterator;
  415     : public GraphTraits<const DDGNode *> {
include/llvm/Support/Casting.h
   34   using SimpleType = From; // The real type this represents...
   37   static SimpleType &getSimplifiedValue(From &Val) { return Val; }
   41   using NonConstSimpleType = typename simplify_type<From>::SimpleType;
   47   static RetType getSimplifiedValue(const From& Val) {
   57   static inline bool doit(const From &Val) {
   76   static inline bool doit(const From &Val) {
   77     return isa_impl<To, From>::doit(Val);
  104   static inline bool doit(const From *Val) {
  106     return isa_impl<To, From>::doit(*Val);
  141 template <class X, class Y> LLVM_NODISCARD inline bool isa(const Y &Val) {
  142   return isa_impl_wrap<X, const Y,
  143                        typename simplify_type<const Y>::SimpleType>::doit(Val);
  236       std::is_same<X, typename simplify_type<X>::SimpleType>::value;
  236       std::is_same<X, typename simplify_type<X>::SimpleType>::value;
include/llvm/Support/PointerLikeTypeTraits.h
   56   static inline void *getAsVoidPointer(T *P) { return P; }
   57   static inline T *getFromVoidPointer(void *P) { return static_cast<T *>(P); }
   59   enum { NumLowBitsAvailable = detail::ConstantLog2<alignof(T)>::value };
   91   typedef PointerLikeTypeTraits<T *> NonConst;
   93   static inline const void *getAsVoidPointer(const T *P) {
   96   static inline const T *getFromVoidPointer(const void *P) {
include/llvm/Support/type_traits.h
   55 struct add_const_past_pointer { using type = const T; };
lib/Analysis/DDG.cpp
   40 raw_ostream &llvm::operator<<(raw_ostream &OS, const DDGNode::NodeKind K) {
   43   case DDGNode::NodeKind::SingleInstruction:
   46   case DDGNode::NodeKind::MultiInstruction:
   49   case DDGNode::NodeKind::Root:
   52   case DDGNode::NodeKind::Unknown:
   60 raw_ostream &llvm::operator<<(raw_ostream &OS, const DDGNode &N) {
  155   for (auto *N : Nodes) {
  162 bool DataDependenceGraph::addNode(DDGNode &N) {
  179   for (auto *Node : G)
lib/Analysis/DependenceGraphBuilder.cpp
   43       auto &NewNode = createFineGrainedNode(I);
   66   auto &RootNode = createRootNode();
   68   for (auto *N : Graph) {
usr/include/c++/7.4.0/bits/move.h
   98     move(_Tp&& __t) noexcept
usr/include/c++/7.4.0/type_traits
  381     : public __is_pointer_helper<typename remove_cv<_Tp>::type>::type
 1554     { typedef _Tp     type; };
 1558     { typedef _Tp     type; };
 1563     { typedef _Tp     type; };
 1574       remove_const<typename remove_volatile<_Tp>::type>::type     type;
 1633     { typedef _Tp   type; };
 1983     { typedef _Up     type; };