LLVM 22.0.0git
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 >:
[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 256 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 258 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 262 of file DDG.h.

◆ DependenceGraphInfo() [4/4]

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

Definition at line 264 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 468 of file DDG.h.

References D(), getDependenceString(), getDependencies(), and llvm::interleaveComma().

Referenced by getDependenceString().

◆ 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(), DI, llvm::SmallVectorTemplateCommon< T, typename >::empty(), getDependencies(), I, and llvm::SmallVectorTemplateBase< T, bool >::push_back().

Referenced by getDependenceString(), and getDependencies().

◆ getName()

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

Return the label that is used to name this graph.

Definition at line 269 of file DDG.h.

◆ getRoot()

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

Return the root node of the graph.

Definition at line 272 of file DDG.h.

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

Member Data Documentation

◆ DI

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

Definition at line 297 of file DDG.h.

Referenced by getDependencies().

◆ Name

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

Definition at line 292 of file DDG.h.

◆ Root

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

Definition at line 301 of file DDG.h.


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