LLVM 19.0.0git
Public Types | Public Member Functions | List of all members
llvm::DDGEdge Class Reference

Data Dependency Graph Edge. More...

#include "llvm/Analysis/DDG.h"

Inheritance diagram for llvm::DDGEdge:
Inheritance graph
[legend]

Public Types

enum class  EdgeKind {
  Unknown , RegisterDefUse , MemoryDependence , Rooted ,
  Last = Rooted
}
 The kind of edge in the DDG. More...
 

Public Member Functions

 DDGEdge (DDGNode &N)=delete
 
 DDGEdge (DDGNode &N, EdgeKind K)
 
 DDGEdge (const DDGEdge &E)
 
 DDGEdge (DDGEdge &&E)
 
DDGEdgeoperator= (const DDGEdge &E)=default
 
DDGEdgeoperator= (DDGEdge &&E)
 
EdgeKind getKind () const
 Get the edge kind.
 
bool isDefUse () const
 Return true if this is a def-use edge, and false otherwise.
 
bool isMemoryDependence () const
 Return true if this is a memory dependence edge, and false otherwise.
 
bool isRooted () const
 Return true if this is an edge stemming from the root node, and false otherwise.
 
- Public Member Functions inherited from llvm::DGEdge< NodeType, EdgeType >
 DGEdge ()=delete
 
 DGEdge (NodeType &N)
 Create an edge pointing to the given node N.
 
 DGEdge (const DGEdge< NodeType, EdgeType > &E)
 
DGEdge< NodeType, EdgeType > & operator= (const DGEdge< NodeType, EdgeType > &E)
 
bool operator== (const DGEdge &E) const
 Static polymorphism: delegate implementation (via isEqualTo) to the derived class.
 
bool operator!= (const DGEdge &E) const
 
const NodeType & getTargetNode () const
 Retrieve the target node this edge connects to.
 
NodeType & getTargetNode ()
 
void setTargetNode (const NodeType &N)
 Set the target node this edge connects to.
 

Additional Inherited Members

- Protected Member Functions inherited from llvm::DGEdge< NodeType, EdgeType >
bool isEqualTo (const EdgeType &E) const
 
EdgeType & getDerived ()
 
const EdgeType & getDerived () const
 
- Protected Attributes inherited from llvm::DGEdge< NodeType, EdgeType >
NodeType & TargetNode
 

Detailed Description

Data Dependency Graph Edge.

An edge in the DDG can represent a def-use relationship or a memory dependence based on the result of DependenceAnalysis. A rooted edge connects the root node to one of the components of the graph.

Definition at line 213 of file DDG.h.

Member Enumeration Documentation

◆ EdgeKind

enum class llvm::DDGEdge::EdgeKind
strong

The kind of edge in the DDG.

Enumerator
Unknown 
RegisterDefUse 
MemoryDependence 
Rooted 
Last 

Definition at line 216 of file DDG.h.

Constructor & Destructor Documentation

◆ DDGEdge() [1/4]

llvm::DDGEdge::DDGEdge ( DDGNode N)
explicitdelete

◆ DDGEdge() [2/4]

llvm::DDGEdge::DDGEdge ( DDGNode N,
EdgeKind  K 
)
inline

Definition at line 225 of file DDG.h.

◆ DDGEdge() [3/4]

llvm::DDGEdge::DDGEdge ( const DDGEdge E)
inline

Definition at line 226 of file DDG.h.

◆ DDGEdge() [4/4]

llvm::DDGEdge::DDGEdge ( DDGEdge &&  E)
inline

Definition at line 227 of file DDG.h.

Member Function Documentation

◆ getKind()

EdgeKind llvm::DDGEdge::getKind ( ) const
inline

Get the edge kind.

Definition at line 237 of file DDG.h.

◆ isDefUse()

bool llvm::DDGEdge::isDefUse ( ) const
inline

Return true if this is a def-use edge, and false otherwise.

Definition at line 240 of file DDG.h.

References RegisterDefUse.

◆ isMemoryDependence()

bool llvm::DDGEdge::isMemoryDependence ( ) const
inline

Return true if this is a memory dependence edge, and false otherwise.

Definition at line 243 of file DDG.h.

References MemoryDependence.

◆ isRooted()

bool llvm::DDGEdge::isRooted ( ) const
inline

Return true if this is an edge stemming from the root node, and false otherwise.

Definition at line 247 of file DDG.h.

References Rooted.

◆ operator=() [1/2]

DDGEdge & llvm::DDGEdge::operator= ( const DDGEdge E)
default

◆ operator=() [2/2]

DDGEdge & llvm::DDGEdge::operator= ( DDGEdge &&  E)
inline

Definition at line 230 of file DDG.h.

References E, and llvm::DGEdge< NodeType, EdgeType >::operator=().


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