LLVM  10.0.0svn
Public Types | Public Member Functions | Protected Member Functions | Friends | List of all members
llvm::DataDependenceGraph Class Reference

Data Dependency Graph. More...

#include "llvm/Analysis/DDG.h"

Inheritance diagram for llvm::DataDependenceGraph:
Inheritance graph
Collaboration diagram for llvm::DataDependenceGraph:
Collaboration graph

Public Types

using NodeType = DDGNode
using EdgeType = DDGEdge
- Public Types inherited from llvm::DirectedGraph< NodeType, EdgeType >
using iterator = typename NodeListTy::iterator
using const_iterator = typename NodeListTy::const_iterator
using DGraphType = DirectedGraph< NodeType, EdgeType >
- Public Types inherited from llvm::DependenceGraphInfo< NodeType >
using DependenceList = SmallVector< std::unique_ptr< Dependence >, 1 >

Public Member Functions

 DataDependenceGraph ()=delete
 DataDependenceGraph (const DataDependenceGraph &G)=delete
 DataDependenceGraph (DataDependenceGraph &&G)
 DataDependenceGraph (Function &F, DependenceInfo &DI)
 DataDependenceGraph (const Loop &L, DependenceInfo &DI)
 ~DataDependenceGraph ()
- Public Member Functions inherited from llvm::DirectedGraph< NodeType, EdgeType >
 DirectedGraph ()=default
 DirectedGraph (NodeType &N)
 DirectedGraph (const DGraphType &G)
 DirectedGraph (DGraphType &&RHS)
DGraphTypeoperator= (const DGraphType &G)
DGraphTypeoperator= (const DGraphType &&G)
const_iterator begin () const
const_iterator end () const
iterator begin ()
iterator end ()
const NodeType & front () const
NodeType & front ()
const NodeType & back () const
NodeType & back ()
size_t size () const
const_iterator findNode (const NodeType &N) const
 Find the given node N in the table. More...
iterator findNode (const NodeType &N)
bool addNode (NodeType &N)
 Add the given node N to the graph if it is not already present. More...
bool findIncomingEdgesToNode (const NodeType &N, SmallVectorImpl< EdgeType *> &EL) const
 Collect in EL all edges that are coming into node N. More...
bool removeNode (NodeType &N)
 Remove the given node N from the graph. More...
bool connect (NodeType &Src, NodeType &Dst, EdgeType &E)
 Assuming nodes Src and Dst are already in the graph, connect node Src to node Dst using the provided edge E. More...
- Public Member Functions inherited from llvm::DependenceGraphInfo< NodeType >
 DependenceGraphInfo ()=delete
 DependenceGraphInfo (const DependenceGraphInfo &G)=delete
 DependenceGraphInfo (const std::string &N, const DependenceInfo &DepInfo)
 DependenceGraphInfo (DependenceGraphInfo &&G)
virtual ~DependenceGraphInfo ()
const StringRef getName () const
 Return the label that is used to name this graph. More...
NodeType & getRoot () const
 Return the root node of the graph. More...

Protected Member Functions

bool addNode (NodeType &N)
 Add node N to the graph, if it's not added yet, and keep track of the root node. More...


class DDGBuilder

Additional Inherited Members

- Protected Types inherited from llvm::DirectedGraph< NodeType, EdgeType >
using NodeListTy = SmallVector< NodeType *, 10 >
using EdgeListTy = SmallVector< EdgeType *, 10 >
- Protected Attributes inherited from llvm::DirectedGraph< NodeType, EdgeType >
NodeListTy Nodes
- Protected Attributes inherited from llvm::DependenceGraphInfo< NodeType >
std::string Name
const DependenceInfo DI
NodeType * Root = nullptr

Detailed Description

Data Dependency Graph.

Definition at line 242 of file DDG.h.

Member Typedef Documentation

◆ EdgeType

Definition at line 247 of file DDG.h.

◆ NodeType

Definition at line 246 of file DDG.h.

Constructor & Destructor Documentation

◆ DataDependenceGraph() [1/5]

llvm::DataDependenceGraph::DataDependenceGraph ( )

◆ DataDependenceGraph() [2/5]

llvm::DataDependenceGraph::DataDependenceGraph ( const DataDependenceGraph G)

◆ DataDependenceGraph() [3/5]

llvm::DataDependenceGraph::DataDependenceGraph ( DataDependenceGraph &&  G)

Definition at line 251 of file DDG.h.

References F(), and N.

◆ DataDependenceGraph() [4/5]

DataDependenceGraph::DataDependenceGraph ( Function F,
DependenceInfo DI 

◆ DataDependenceGraph() [5/5]

DataDependenceGraph::DataDependenceGraph ( const Loop L,
DependenceInfo DI 

◆ ~DataDependenceGraph()

DataDependenceGraph::~DataDependenceGraph ( )

Definition at line 154 of file DDG.cpp.

References E, N, and llvm::DirectedGraph< NodeType, EdgeType >::Nodes.

Member Function Documentation

◆ addNode()

bool DataDependenceGraph::addNode ( NodeType N)

Add node N to the graph, if it's not added yet, and keep track of the root node.

Return true if node is successfully added.

Definition at line 162 of file DDG.cpp.

References llvm::DirectedGraph< NodeType, EdgeType >::addNode(), assert(), N, and llvm::DependenceGraphInfo< NodeType >::Root.

Friends And Related Function Documentation

◆ DDGBuilder

friend class DDGBuilder

Definition at line 243 of file DDG.h.

Referenced by DataDependenceGraph().

The documentation for this class was generated from the following files: