LLVM 24.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 () override
SimpleDDGNode & operator= (const SimpleDDGNode &N)=default
SimpleDDGNode & operator= (SimpleDDGNode &&N)
const InstructionListType & getInstructions () const
 Get the list of instructions in this node.
InstructionListType & getInstructions ()
Instruction * getFirstInstruction () const
 Get the first/last instruction in the node.
Instruction * getLastInstruction () 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
DDGNode & operator= (const DDGNode &N)=default
DDGNode & operator= (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
const_iterator begin () const
const_iterator end () const
iterator begin ()
iterator end ()
const DDGEdge & front () const
DDGEdge & front ()
const DDGEdge & back () const
DDGEdge & back ()
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 EdgeListTy & getEdges () const
 Retrieve the outgoing edges for the node.
EdgeListTy & getEdges ()
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
DDGNode & getDerived ()
const DDGNode & getDerived () 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 105 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 ( )
override

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 138 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 142 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 134 of file DDG.h.

References getInstructions().

◆ getInstructions() [1/2]

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

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

References assert().

Referenced by getFirstInstruction(), and getLastInstruction().

◆ getLastInstruction()

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

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

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

◆ DDGBuilder

friend class DDGBuilder
friend

Definition at line 106 of file DDG.h.

References DDGBuilder.

Referenced by DDGBuilder.


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