LLVM 22.0.0git
llvm::DDGEdge Class Reference

Data Dependency Graph Edge. More...

#include "llvm/Analysis/DDG.h"

Inheritance diagram for llvm::DDGEdge:
[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< DDGNode, DDGEdge >
 DGEdge ()=delete
 DGEdge (DDGNode &N)
 Create an edge pointing to the given node N.
 DGEdge (const DGEdge< DDGNode, DDGEdge > &E)
DGEdge< DDGNode, DDGEdge > & operator= (const DGEdge< DDGNode, DDGEdge > &E)
bool operator== (const DGEdge &E) const
 Static polymorphism: delegate implementation (via isEqualTo) to the derived class.
bool operator!= (const DGEdge &E) const
const DDGNodegetTargetNode () const
 Retrieve the target node this edge connects to.
DDGNodegetTargetNode ()
void setTargetNode (const DDGNode &N)
 Set the target node this edge connects to.

Additional Inherited Members

Protected Member Functions inherited from llvm::DGEdge< DDGNode, DDGEdge >
bool isEqualTo (const DDGEdge &E) const
DDGEdgegetDerived ()
const DDGEdgegetDerived () const
Protected Attributes inherited from llvm::DGEdge< DDGNode, DDGEdge >
DDGNodeTargetNode

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 214 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 217 of file DDG.h.

Constructor & Destructor Documentation

◆ DDGEdge() [1/4]

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

References N.

Referenced by DDGEdge(), DDGEdge(), operator=(), and operator=().

◆ DDGEdge() [2/4]

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

Definition at line 226 of file DDG.h.

References N.

◆ DDGEdge() [3/4]

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

Definition at line 227 of file DDG.h.

References DDGEdge(), E(), and getKind().

◆ DDGEdge() [4/4]

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

Definition at line 228 of file DDG.h.

References DDGEdge(), E(), and llvm::move().

Member Function Documentation

◆ getKind()

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

Get the edge kind.

Definition at line 238 of file DDG.h.

Referenced by DDGEdge().

◆ isDefUse()

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

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

Definition at line 241 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 244 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 248 of file DDG.h.

References Rooted.

◆ operator=() [1/2]

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

References DDGEdge(), and E().

◆ operator=() [2/2]

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

Definition at line 231 of file DDG.h.

References DDGEdge(), E(), and llvm::DGEdge< DDGNode, DDGEdge >::operator=().


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