LLVM 22.0.0git
llvm::SimpleDDGNode Class Reference

Subclass of DDGNode representing single or multi-instruction nodes. More...

#include "llvm/Analysis/DDG.h"

Inheritance diagram for llvm::SimpleDDGNode:
[legend]

Public Member Functions

 SimpleDDGNode ()=delete
 SimpleDDGNode (Instruction &I)
 SimpleDDGNode (const SimpleDDGNode &N)
 SimpleDDGNode (SimpleDDGNode &&N)
 ~SimpleDDGNode ()
SimpleDDGNodeoperator= (const SimpleDDGNode &N)=default
SimpleDDGNodeoperator= (SimpleDDGNode &&N)
const InstructionListTypegetInstructions () const
 Get the list of instructions in this node.
InstructionListTypegetInstructions ()
InstructiongetFirstInstruction () const
 Get the first/last instruction in the node.
InstructiongetLastInstruction () const
Public Member Functions inherited from llvm::DDGNode
 DDGNode ()=delete
 DDGNode (const NodeKind K)
 DDGNode (const DDGNode &N)=default
 DDGNode (DDGNode &&N)
virtual ~DDGNode ()=0
DDGNodeoperator= (const DDGNode &N)
DDGNodeoperator= (DDGNode &&N)
NodeKind getKind () const
 Getter for the kind of this node.
bool collectInstructions (llvm::function_ref< bool(Instruction *)> const &Pred, InstructionListType &IList) const
 Collect a list of instructions, in IList, for which predicate Pred evaluates to true when iterating over instructions of this node.
Public Member Functions inherited from llvm::DGNode< DDGNode, DDGEdge >
 DGNode (DDGEdge &E)
 Create a node with a single outgoing edge E.
 DGNode ()=default
 DGNode (const DGNode< DDGNode, DDGEdge > &N)
 DGNode (DGNode< DDGNode, DDGEdge > &&N)
DGNode< DDGNode, DDGEdge > & operator= (const DGNode< DDGNode, DDGEdge > &N)
DGNode< DDGNode, DDGEdge > & operator= (const DGNode< DDGNode, DDGEdge > &&N)
const_iterator begin () const
const_iterator end () const
iterator begin ()
iterator end ()
const DDGEdgefront () const
DDGEdgefront ()
const DDGEdgeback () const
DDGEdgeback ()
bool findEdgesTo (const DDGNode &N, SmallVectorImpl< DDGEdge * > &EL) const
 Collect in EL, all the edges from this node to N.
bool addEdge (DDGEdge &E)
 Add the given edge E to this node, if it doesn't exist already.
void removeEdge (DDGEdge &E)
 Remove the given edge E from this node, if it exists.
bool hasEdgeTo (const DDGNode &N) const
 Test whether there is an edge that goes from this node to N.
const EdgeListTygetEdges () const
 Retrieve the outgoing edges for the node.
EdgeListTygetEdges ()
void clear ()
 Clear the outgoing edges.

Static Public Member Functions

static bool classof (const DDGNode *N)
 Define classof to be able to use isa<>, cast<>, dyn_cast<>, etc.
static bool classof (const SimpleDDGNode *N)

Friends

class DDGBuilder

Additional Inherited Members

Public Types inherited from llvm::DDGNode
enum class  NodeKind {
  Unknown , SingleInstruction , MultiInstruction , PiBlock ,
  Root
}
using InstructionListType = SmallVectorImpl<Instruction *>
Public Types inherited from llvm::DGNode< DDGNode, DDGEdge >
using EdgeListTy
using iterator
using const_iterator
Protected Member Functions inherited from llvm::DDGNode
void setKind (NodeKind K)
 Setter for the kind of this node.
Protected Member Functions inherited from llvm::DGNode< DDGNode, DDGEdge >
bool isEqualTo (const DDGNode &N) const
DDGNodegetDerived ()
const DDGNodegetDerived () const
const_iterator findEdgeTo (const DDGNode &N) const
 Find an edge to N.
Protected Attributes inherited from llvm::DGNode< DDGNode, DDGEdge >
EdgeListTy Edges

Detailed Description

Subclass of DDGNode representing single or multi-instruction nodes.

Definition at line 109 of file DDG.h.

Constructor & Destructor Documentation

◆ SimpleDDGNode() [1/4]

llvm::SimpleDDGNode::SimpleDDGNode ( )
delete

◆ SimpleDDGNode() [2/4]

SimpleDDGNode::SimpleDDGNode ( Instruction & I)

Definition at line 107 of file DDG.cpp.

References assert(), llvm::DDGNode::DDGNode(), I, and llvm::DDGNode::SingleInstruction.

◆ SimpleDDGNode() [3/4]

◆ SimpleDDGNode() [4/4]

◆ ~SimpleDDGNode()

SimpleDDGNode::~SimpleDDGNode ( )

Definition at line 127 of file DDG.cpp.

Member Function Documentation

◆ classof() [1/2]

bool llvm::SimpleDDGNode::classof ( const DDGNode * N)
inlinestatic

Define classof to be able to use isa<>, cast<>, dyn_cast<>, etc.

Definition at line 142 of file DDG.h.

References llvm::DDGNode::DDGNode(), llvm::DDGNode::MultiInstruction, N, and llvm::DDGNode::SingleInstruction.

◆ classof() [2/2]

bool llvm::SimpleDDGNode::classof ( const SimpleDDGNode * N)
inlinestatic

Definition at line 146 of file DDG.h.

References N, and SimpleDDGNode().

◆ getFirstInstruction()

Instruction * llvm::SimpleDDGNode::getFirstInstruction ( ) const
inline

Get the first/last instruction in the node.

Definition at line 138 of file DDG.h.

References getInstructions().

◆ getInstructions() [1/2]

InstructionListType & llvm::SimpleDDGNode::getInstructions ( )
inline

Definition at line 132 of file DDG.h.

References SimpleDDGNode().

◆ getInstructions() [2/2]

const InstructionListType & llvm::SimpleDDGNode::getInstructions ( ) const
inline

Get the list of instructions in this node.

Definition at line 128 of file DDG.h.

References assert().

Referenced by getFirstInstruction(), and getLastInstruction().

◆ getLastInstruction()

Instruction * llvm::SimpleDDGNode::getLastInstruction ( ) const
inline

Definition at line 139 of file DDG.h.

References getInstructions().

◆ operator=() [1/2]

SimpleDDGNode & llvm::SimpleDDGNode::operator= ( const SimpleDDGNode & N)
default

References N, and SimpleDDGNode().

◆ operator=() [2/2]

SimpleDDGNode & llvm::SimpleDDGNode::operator= ( SimpleDDGNode && N)
inline

Definition at line 121 of file DDG.h.

References N, llvm::DDGNode::operator=(), and SimpleDDGNode().

◆ DDGBuilder

friend class DDGBuilder
friend

Definition at line 110 of file DDG.h.

References DDGBuilder.

Referenced by DDGBuilder.


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