LLVM 20.0.0git
|
Subclass of DDGNode representing single or multi-instruction nodes. More...
#include "llvm/Analysis/DDG.h"
Public Member Functions | |
SimpleDDGNode ()=delete | |
SimpleDDGNode (Instruction &I) | |
SimpleDDGNode (const SimpleDDGNode &N) | |
SimpleDDGNode (SimpleDDGNode &&N) | |
~SimpleDDGNode () | |
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) |
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< NodeType, EdgeType > | |
DGNode (EdgeType &E) | |
Create a node with a single outgoing edge E . | |
DGNode ()=default | |
DGNode (const DGNode< NodeType, EdgeType > &N) | |
DGNode (DGNode< NodeType, EdgeType > &&N) | |
DGNode< NodeType, EdgeType > & | operator= (const DGNode< NodeType, EdgeType > &N) |
DGNode< NodeType, EdgeType > & | operator= (const DGNode< NodeType, EdgeType > &&N) |
const_iterator | begin () const |
const_iterator | end () const |
iterator | begin () |
iterator | end () |
const EdgeType & | front () const |
EdgeType & | front () |
const EdgeType & | back () const |
EdgeType & | back () |
bool | findEdgesTo (const NodeType &N, SmallVectorImpl< EdgeType * > &EL) const |
Collect in EL , all the edges from this node to N . | |
bool | addEdge (EdgeType &E) |
Add the given edge E to this node, if it doesn't exist already. | |
void | removeEdge (EdgeType &E) |
Remove the given edge E from this node, if it exists. | |
bool | hasEdgeTo (const NodeType &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< NodeType, EdgeType > | |
using | EdgeListTy = SetVector< EdgeType * > |
using | iterator = typename EdgeListTy::iterator |
using | const_iterator = typename EdgeListTy::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< NodeType, EdgeType > | |
bool | isEqualTo (const NodeType &N) const |
NodeType & | getDerived () |
const NodeType & | getDerived () const |
const_iterator | findEdgeTo (const NodeType &N) const |
Find an edge to N . | |
Protected Attributes inherited from llvm::DGNode< NodeType, EdgeType > | |
EdgeListTy | Edges |
Subclass of DDGNode representing single or multi-instruction nodes.
|
delete |
SimpleDDGNode::SimpleDDGNode | ( | Instruction & | I | ) |
SimpleDDGNode::SimpleDDGNode | ( | const SimpleDDGNode & | N | ) |
Definition at line 113 of file DDG.cpp.
References assert(), llvm::DDGNode::getKind(), llvm::DDGNode::MultiInstruction, and llvm::DDGNode::SingleInstruction.
SimpleDDGNode::SimpleDDGNode | ( | SimpleDDGNode && | N | ) |
Definition at line 120 of file DDG.cpp.
References assert(), llvm::DDGNode::getKind(), llvm::DDGNode::MultiInstruction, and llvm::DDGNode::SingleInstruction.
Define classof to be able to use isa<>, cast<>, dyn_cast<>, etc.
Definition at line 141 of file DDG.h.
References llvm::DDGNode::MultiInstruction, N, and llvm::DDGNode::SingleInstruction.
|
inlinestatic |
|
inline |
Get the first/last instruction in the node.
Definition at line 137 of file DDG.h.
References llvm::SmallVectorTemplateCommon< T, typename >::front(), and getInstructions().
|
inline |
Definition at line 131 of file DDG.h.
References getInstructions().
|
inline |
Get the list of instructions in this node.
Definition at line 127 of file DDG.h.
References assert().
Referenced by getFirstInstruction(), getInstructions(), and getLastInstruction().
|
inline |
Definition at line 138 of file DDG.h.
References llvm::SmallVectorTemplateCommon< T, typename >::back(), and getInstructions().
|
default |
|
inline |
Definition at line 120 of file DDG.h.
References N, and llvm::DDGNode::operator=().
|
friend |