LLVM: llvm::PiBlockDDGNode Class Reference (original) (raw)
Subclass of DDGNode representing a pi-block. More...
#include "[llvm/Analysis/DDG.h](DDG%5F8h%5Fsource.html)"
| Public Types | |
|---|---|
| using | PiNodeList = SmallVector<DDGNode *, 4> |
| 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 |
| Public Member Functions | |
|---|---|
| PiBlockDDGNode ()=delete | |
| PiBlockDDGNode (const PiNodeList &List) | |
| PiBlockDDGNode (const PiBlockDDGNode &N) | |
| PiBlockDDGNode (PiBlockDDGNode &&N) | |
| ~PiBlockDDGNode () override | |
| PiBlockDDGNode & | operator= (const PiBlockDDGNode &N)=default |
| PiBlockDDGNode & | operator= (PiBlockDDGNode &&N) |
| const PiNodeList & | getNodes () const |
| Get the list of nodes in this pi-block. | |
| PiNodeList & | getNodes () |
| 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. |
| Additional Inherited Members | |
|---|---|
| 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 |
Subclass of DDGNode representing a pi-block.
A pi-block represents a group of DDG nodes that are part of a strongly-connected component of the graph. Replacing all the SCCs with pi-blocks results in an acyclic representation of the DDG. For example if we have: {a -> b}, {b -> c, d}, {c -> a} the cycle a -> b -> c -> a is abstracted into a pi-block "p" as follows: {p -> d} with "p" containing: {a -> b}, {b -> c}, {c -> a}
Definition at line 167 of file DDG.h.
◆ PiNodeList
| llvm::PiBlockDDGNode::PiBlockDDGNode ( ) | delete |
|---|
◆ PiBlockDDGNode() [2/4]
| PiBlockDDGNode::PiBlockDDGNode | ( | const PiNodeList & | List | ) |
|---|
◆ PiBlockDDGNode() [3/4]
◆ PiBlockDDGNode() [4/4]
◆ ~PiBlockDDGNode()
| PiBlockDDGNode::~PiBlockDDGNode ( ) | override |
|---|
◆ classof()
◆ getNodes() [1/2]
| PiNodeList & llvm::PiBlockDDGNode::getNodes ( ) | inline |
|---|
Definition at line 190 of file DDG.h.
References PiBlockDDGNode().
◆ getNodes() [2/2]
| const PiNodeList & llvm::PiBlockDDGNode::getNodes ( ) const | inline |
|---|
Get the list of nodes in this pi-block.
Definition at line 186 of file DDG.h.
References assert().
◆ operator=() [1/2]
References N, and PiBlockDDGNode().
◆ operator=() [2/2]
The documentation for this class was generated from the following files: