LLVM: llvm::DataDependenceGraph Class Reference (original) (raw)
Data Dependency Graph. More...
#include "[llvm/Analysis/DDG.h](DDG%5F8h%5Fsource.html)"
| Public Types | |
|---|---|
| using | NodeType = DDGNode |
| using | EdgeType = DDGEdge |
| Public Types inherited from llvm::DirectedGraph< DDGNode, DDGEdge > | |
| using | iterator |
| using | const_iterator |
| using | DGraphType |
| Public Types inherited from llvm::DependenceGraphInfo< DDGNode > | |
| using | DependenceList |
| Public Member Functions | |
|---|---|
| DataDependenceGraph ()=delete | |
| DataDependenceGraph (const DataDependenceGraph &G)=delete | |
| DataDependenceGraph (DataDependenceGraph &&G) | |
| DataDependenceGraph (Function &F, DependenceInfo &DI) | |
| DataDependenceGraph (Loop &L, LoopInfo &LI, DependenceInfo &DI) | |
| ~DataDependenceGraph () override | |
| const PiBlockDDGNode * | getPiBlock (const NodeType &N) const |
| If node N belongs to a pi-block return a pointer to the pi-block, otherwise return null. | |
| Public Member Functions inherited from llvm::DirectedGraph< DDGNode, DDGEdge > | |
| DirectedGraph ()=default | |
| DirectedGraph (DDGNode &N) | |
| const_iterator | begin () const |
| const_iterator | end () const |
| iterator | begin () |
| iterator | end () |
| const DDGNode & | front () const |
| DDGNode & | front () |
| const DDGNode & | back () const |
| DDGNode & | back () |
| size_t | size () const |
| const_iterator | findNode (const DDGNode &N) const |
| Find the given node N in the table. | |
| iterator | findNode (const DDGNode &N) |
| bool | addNode (DDGNode &N) |
| Add the given node N to the graph if it is not already present. | |
| bool | findIncomingEdgesToNode (const DDGNode &N, SmallVectorImpl< DDGEdge * > &EL) const |
| Collect in EL all edges that are coming into node N. | |
| bool | removeNode (DDGNode &N) |
| Remove the given node N from the graph. | |
| bool | connect (DDGNode &Src, DDGNode &Dst, DDGEdge &E) |
| Assuming nodes Src and Dst are already in the graph, connect node Src to node Dst using the provided edge E. | |
| Public Member Functions inherited from llvm::DependenceGraphInfo< DDGNode > | |
| DependenceGraphInfo ()=delete | |
| DependenceGraphInfo (const DependenceGraphInfo &G)=delete | |
| DependenceGraphInfo (const std::string &N, const DependenceInfo &DepInfo) | |
| DependenceGraphInfo (DependenceGraphInfo &&G) | |
| virtual | ~DependenceGraphInfo ()=default |
| StringRef | getName () const |
| Return the label that is used to name this graph. | |
| DDGNode & | getRoot () const |
| Return the root node of the graph. | |
| bool | getDependencies (const DDGNode &Src, const DDGNode &Dst, DependenceList &Deps) const |
| Collect all the data dependency infos coming from any pair of memory accesses from Src to Dst, and store them into Deps. | |
| std::string | getDependenceString (const DDGNode &Src, const DDGNode &Dst) const |
| Return a string representing the type of dependence that the dependence analysis identified between the two given nodes. |
| 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 as well as pi-blocks and their members. |
| Additional Inherited Members | |
|---|---|
| Protected Types inherited from llvm::DirectedGraph< DDGNode, DDGEdge > | |
| using | NodeListTy |
| using | EdgeListTy |
| Protected Attributes inherited from llvm::DirectedGraph< DDGNode, DDGEdge > | |
| NodeListTy | Nodes |
| Protected Attributes inherited from llvm::DependenceGraphInfo< DDGNode > | |
| std::string | Name |
| const DependenceInfo | DI |
| DDGNode * | Root |
Data Dependency Graph.
Definition at line 303 of file DDG.h.
◆ EdgeType
◆ NodeType
| llvm::DataDependenceGraph::DataDependenceGraph ( ) | delete |
|---|
◆ DataDependenceGraph() [2/5]
References DataDependenceGraph(), and G.
◆ DataDependenceGraph() [3/5]
◆ DataDependenceGraph() [4/5]
Definition at line 186 of file DDG.cpp.
References llvm::append_range(), llvm::SmallVectorTemplateCommon< T, typename >::begin(), D(), DDGBuilder, llvm::DependenceGraphInfo< DDGNode >::DependenceGraphInfo(), llvm::SmallVectorTemplateCommon< T, typename >::end(), F, llvm::DependenceGraphInfo< DDGNode >::getName(), llvm::make_range(), llvm::scc_begin(), and llvm::scc_end().
◆ DataDependenceGraph() [5/5]
◆ ~DataDependenceGraph()
| DataDependenceGraph::~DataDependenceGraph ( ) | override |
|---|
◆ addNode()
| bool DataDependenceGraph::addNode ( NodeType & N) | protected |
|---|
◆ getPiBlock()
If node N belongs to a pi-block return a pointer to the pi-block, otherwise return null.
Definition at line 243 of file DDG.cpp.
◆ DDGBuilder
The documentation for this class was generated from the following files: