LLVM  11.0.0git
Public Types | Public Member Functions | Protected Attributes | List of all members
llvm::DependenceGraphInfo< NodeType > Class Template Reference

Encapsulate some common data and functionality needed for different variations of data dependence graphs. More...

#include "llvm/Analysis/DDG.h"

Inheritance diagram for llvm::DependenceGraphInfo< NodeType >:
Inheritance graph
[legend]
Collaboration diagram for llvm::DependenceGraphInfo< NodeType >:
Collaboration graph
[legend]

Public Types

using DependenceList = SmallVector< std::unique_ptr< Dependence >, 1 >
 

Public Member Functions

 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...
 
bool getDependencies (const NodeType &Src, const NodeType &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. More...
 

Protected Attributes

std::string Name
 
const DependenceInfo DI
 
NodeType * Root = nullptr
 

Detailed Description

template<typename NodeType>
class llvm::DependenceGraphInfo< NodeType >

Encapsulate some common data and functionality needed for different variations of data dependence graphs.

Definition at line 265 of file DDG.h.

Member Typedef Documentation

◆ DependenceList

template<typename NodeType >
using llvm::DependenceGraphInfo< NodeType >::DependenceList = SmallVector<std::unique_ptr<Dependence>, 1>

Definition at line 267 of file DDG.h.

Constructor & Destructor Documentation

◆ DependenceGraphInfo() [1/4]

template<typename NodeType >
llvm::DependenceGraphInfo< NodeType >::DependenceGraphInfo ( )
delete

◆ DependenceGraphInfo() [2/4]

template<typename NodeType >
llvm::DependenceGraphInfo< NodeType >::DependenceGraphInfo ( const DependenceGraphInfo< NodeType > &  G)
delete

◆ DependenceGraphInfo() [3/4]

template<typename NodeType >
llvm::DependenceGraphInfo< NodeType >::DependenceGraphInfo ( const std::string &  N,
const DependenceInfo DepInfo 
)
inline

Definition at line 271 of file DDG.h.

◆ DependenceGraphInfo() [4/4]

template<typename NodeType >
llvm::DependenceGraphInfo< NodeType >::DependenceGraphInfo ( DependenceGraphInfo< NodeType > &&  G)
inline

Definition at line 273 of file DDG.h.

◆ ~DependenceGraphInfo()

template<typename NodeType >
virtual llvm::DependenceGraphInfo< NodeType >::~DependenceGraphInfo ( )
inlinevirtual

Definition at line 275 of file DDG.h.

Member Function Documentation

◆ getDependencies()

template<typename NodeType >
bool llvm::DependenceGraphInfo< NodeType >::getDependencies ( const NodeType &  Src,
const NodeType &  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.

Return true if a dependence exists, and false otherwise.

Definition at line 445 of file DDG.h.

References assert(), llvm::SmallVectorBase< Size_T >::empty(), I, and llvm::SmallVectorTemplateBase< T, bool >::push_back().

◆ getName()

template<typename NodeType >
const StringRef llvm::DependenceGraphInfo< NodeType >::getName ( ) const
inline

Return the label that is used to name this graph.

Definition at line 278 of file DDG.h.

References Name.

◆ getRoot()

template<typename NodeType >
NodeType& llvm::DependenceGraphInfo< NodeType >::getRoot ( ) const
inline

Return the root node of the graph.

Definition at line 281 of file DDG.h.

References assert(), and llvm::DDGNode::Root.

Referenced by llvm::GraphTraits< DataDependenceGraph * >::getEntryNode(), and llvm::GraphTraits< const DataDependenceGraph * >::getEntryNode().

Member Data Documentation

◆ DI

template<typename NodeType >
const DependenceInfo llvm::DependenceGraphInfo< NodeType >::DI
protected

Definition at line 300 of file DDG.h.

Referenced by llvm::DDGAnalysis::run().

◆ Name

template<typename NodeType >
std::string llvm::DependenceGraphInfo< NodeType >::Name
protected

Definition at line 295 of file DDG.h.

◆ Root

template<typename NodeType >
NodeType* llvm::DependenceGraphInfo< NodeType >::Root = nullptr
protected

Definition at line 304 of file DDG.h.

Referenced by llvm::DataDependenceGraph::addNode().


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