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

Declarations

include/llvm/Analysis/DDG.h
   25 class DDGEdge;

References

include/llvm/ADT/DenseMapInfo.h
   39   static inline T* getEmptyKey() {
   41     Val <<= PointerLikeTypeTraits<T*>::NumLowBitsAvailable;
   45   static inline T* getTombstoneKey() {
   47     Val <<= PointerLikeTypeTraits<T*>::NumLowBitsAvailable;
   51   static unsigned getHashValue(const T *PtrVal) {
   56   static bool isEqual(const T *LHS, const T *RHS) { return LHS == RHS; }
   56   static bool isEqual(const T *LHS, const T *RHS) { return LHS == RHS; }
include/llvm/ADT/DirectedGraph.h
   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) {
   41   bool operator==(const EdgeType &E) const { return getDerived().isEqualTo(E); }
   42   bool operator!=(const EdgeType &E) const { return !operator==(E); }
   53   bool isEqualTo(const EdgeType &E) const { return this == &E; }
   56   EdgeType &getDerived() { return *static_cast<EdgeType *>(this); }
   57   const EdgeType &getDerived() const {
   69   using EdgeListTy = SetVector<EdgeType *>;
   74   explicit DGNode(EdgeType &E) : Edges() { Edges.insert(&E); }
   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) {
   98   const EdgeType &front() const { return *Edges.front(); }
   99   EdgeType &front() { return *Edges.front(); }
  100   const EdgeType &back() const { return *Edges.back(); }
  101   EdgeType &back() { return *Edges.back(); }
  107   bool findEdgesTo(const NodeType &N, SmallVectorImpl<EdgeType *> &EL) const {
  109     for (auto *E : Edges)
  117   bool addEdge(EdgeType &E) { return Edges.insert(&E); }
  120   void removeEdge(EdgeType &E) { Edges.remove(&E); }
  166   using EdgeListTy = SmallVector<EdgeType *, 10>;
  170   using DGraphType = DirectedGraph<NodeType, EdgeType>;
  216   bool findIncomingEdgesToNode(const NodeType &N, SmallVectorImpl<EdgeType*> &EL) const {
  243       for (auto *E : EL)
  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>;
  170   DDGEdge(const DDGEdge &E) : DDGEdgeBase(E), Kind(E.getKind()) {}
  171   DDGEdge(DDGEdge &&E) : DDGEdgeBase(std::move(E)), Kind(E.Kind) {}
  172   DDGEdge &operator=(const DDGEdge &E) {
  172   DDGEdge &operator=(const DDGEdge &E) {
  178   DDGEdge &operator=(DDGEdge &&E) {
  178   DDGEdge &operator=(DDGEdge &&E) {
  247   using EdgeType = DDGEdge;
  287   DDGEdge &createDefUseEdge(DDGNode &Src, DDGNode &Tgt) final override {
  288     auto *E = new DDGEdge(Tgt, DDGEdge::EdgeKind::RegisterDefUse);
  288     auto *E = new DDGEdge(Tgt, DDGEdge::EdgeKind::RegisterDefUse);
  288     auto *E = new DDGEdge(Tgt, DDGEdge::EdgeKind::RegisterDefUse);
  293   DDGEdge &createMemoryEdge(DDGNode &Src, DDGNode &Tgt) final override {
  294     auto *E = new DDGEdge(Tgt, DDGEdge::EdgeKind::MemoryDependence);
  294     auto *E = new DDGEdge(Tgt, DDGEdge::EdgeKind::MemoryDependence);
  294     auto *E = new DDGEdge(Tgt, DDGEdge::EdgeKind::MemoryDependence);
  299   DDGEdge &createRootedEdge(DDGNode &Src, DDGNode &Tgt) final override {
  300     auto *E = new DDGEdge(Tgt, DDGEdge::EdgeKind::Rooted);
  300     auto *E = new DDGEdge(Tgt, DDGEdge::EdgeKind::Rooted);
  300     auto *E = new DDGEdge(Tgt, DDGEdge::EdgeKind::Rooted);
  311 raw_ostream &operator<<(raw_ostream &OS, const DDGEdge &E);
  312 raw_ostream &operator<<(raw_ostream &OS, const DDGEdge::EdgeKind K);
  349   static DDGNode *DDGGetTargetNode(DGEdge<DDGNode, DDGEdge> *P) {
  389   static const DDGNode *DDGGetTargetNode(const DGEdge<DDGNode, DDGEdge> *P) {
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 };
lib/Analysis/DDG.cpp
  105 raw_ostream &llvm::operator<<(raw_ostream &OS, const DDGEdge::EdgeKind K) {
  108   case DDGEdge::EdgeKind::RegisterDefUse:
  111   case DDGEdge::EdgeKind::MemoryDependence:
  114   case DDGEdge::EdgeKind::Rooted:
  117   case DDGEdge::EdgeKind::Unknown:
  125 raw_ostream &llvm::operator<<(raw_ostream &OS, const DDGEdge &E) {
  156     for (auto *E : *N)
usr/include/c++/7.4.0/bits/move.h
   98     move(_Tp&& __t) noexcept
usr/include/c++/7.4.0/type_traits
 1633     { typedef _Tp   type; };
 1983     { typedef _Up     type; };