LLVM 20.0.0git
|
Data Dependence Graph Node The graph can represent the following types of nodes: More...
#include "llvm/Analysis/DDG.h"
Public Types | |
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 |
Public Member Functions | |
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. | |
Protected Member Functions | |
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 . | |
Additional Inherited Members | |
Protected Attributes inherited from llvm::DGNode< NodeType, EdgeType > | |
EdgeListTy | Edges |
Data Dependence Graph Node The graph can represent the following types of nodes:
|
strong |
|
delete |
|
pure virtualdefault |
bool DDGNode::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.
Return true if at least one instruction was collected, and false otherwise.
Definition at line 38 of file DDG.cpp.
References llvm::append_range(), assert(), llvm::SmallVectorBase< Size_T >::empty(), I, llvm_unreachable, and llvm::SmallVectorTemplateBase< T, bool >::push_back().
|
inline |
Getter for the kind of this node.
Definition at line 75 of file DDG.h.
Referenced by llvm::PiBlockDDGNode::PiBlockDDGNode(), and llvm::SimpleDDGNode::SimpleDDGNode().
Definition at line 62 of file DDG.h.
References N, and llvm::DGNode< NodeType, EdgeType >::operator=().
Referenced by llvm::PiBlockDDGNode::operator=(), and llvm::SimpleDDGNode::operator=().
Definition at line 68 of file DDG.h.
References N, and llvm::DGNode< NodeType, EdgeType >::operator=().
|
inlineprotected |