|
LLVM 22.0.0git
|
Data Dependency Graph. More...
#include "llvm/Analysis/DDG.h"
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 () | |
| 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. | |
Friends | |
| class | DDGBuilder |
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 |
|
delete |
Referenced by DataDependenceGraph(), and DataDependenceGraph().
|
delete |
References DataDependenceGraph(), and G.
|
inline |
Definition at line 317 of file DDG.h.
References DataDependenceGraph(), G, and llvm::move().
| DataDependenceGraph::DataDependenceGraph | ( | Function & | F, |
| DependenceInfo & | DI ) |
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::DataDependenceGraph | ( | Loop & | L, |
| LoopInfo & | LI, | ||
| DependenceInfo & | DI ) |
Definition at line 197 of file DDG.cpp.
References llvm::append_range(), llvm::LoopBlocksDFS::beginRPO(), D(), DDGBuilder, llvm::DependenceGraphInfo< DDGNode >::DependenceGraphInfo(), llvm::LoopBlocksDFS::endRPO(), llvm::DependenceGraphInfo< DDGNode >::getName(), getParent(), llvm::make_range(), and llvm::LoopBlocksDFS::perform().
| DataDependenceGraph::~DataDependenceGraph | ( | ) |
Definition at line 212 of file DDG.cpp.
References N, and llvm::DirectedGraph< DDGNode, DDGEdge >::Nodes.
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.
Return true if node is successfully added.
Definition at line 220 of file DDG.cpp.
References llvm::DirectedGraph< DDGNode, DDGEdge >::addNode(), assert(), llvm::dyn_cast(), llvm::isa(), N, and llvm::DependenceGraphInfo< DDGNode >::Root.
| const PiBlockDDGNode * DataDependenceGraph::getPiBlock | ( | const NodeType & | N | ) | const |
|
friend |
Definition at line 309 of file DDG.h.
References DDGBuilder.
Referenced by DataDependenceGraph(), DataDependenceGraph(), and DDGBuilder.