LLVM 20.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]

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 ()=default
 
StringRef getName () const
 Return the label that is used to name this graph.
 
NodeType & getRoot () const
 Return the root node of the graph.
 
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.
 
std::string getDependenceString (const NodeType &Src, const NodeType &Dst) const
 Return a string representing the type of dependence that the dependence analysis identified between the two given nodes.
 

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 255 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 257 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 261 of file DDG.h.

◆ DependenceGraphInfo() [4/4]

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

Definition at line 263 of file DDG.h.

◆ ~DependenceGraphInfo()

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

Member Function Documentation

◆ getDependenceString()

template<typename NodeType >
std::string llvm::DependenceGraphInfo< NodeType >::getDependenceString ( const NodeType &  Src,
const NodeType &  Dst 
) const

Return a string representing the type of dependence that the dependence analysis identified between the two given nodes.

This function assumes that there is a memory dependence between the given two nodes.

Definition at line 464 of file DDG.h.

References D, llvm::interleaveComma(), and OS.

◆ 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 441 of file DDG.h.

References assert(), llvm::DependenceInfo::depends(), llvm::AbstractDependenceGraphBuilder< DataDependenceGraph >::DI, llvm::SmallVectorBase< Size_T >::empty(), I, and llvm::SmallVectorTemplateBase< T, bool >::push_back().

◆ getName()

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

Return the label that is used to name this graph.

Definition at line 268 of file DDG.h.

References llvm::DependenceGraphInfo< NodeType >::Name.

◆ getRoot()

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

Member Data Documentation

◆ DI

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

Definition at line 296 of file DDG.h.

◆ Name

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

Definition at line 291 of file DDG.h.

Referenced by llvm::DependenceGraphInfo< NodeType >::getName().

◆ Root

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

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