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
[legend]
Collaboration diagram for llvm::DataDependenceGraph:
Collaboration graph
[legend]

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...
 

Friends

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 ( )
delete

◆ DataDependenceGraph() [2/5]

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

◆ DataDependenceGraph() [3/5]

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

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)
protected

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
friend

Definition at line 243 of file DDG.h.

Referenced by DataDependenceGraph().


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