| 
    LLVM 22.0.0git
    
   | 
 
Subclass of DDGNode representing a pi-block. More...
#include "llvm/Analysis/DDG.h"
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}
| using llvm::PiBlockDDGNode::PiNodeList = SmallVector<DDGNode *, 4> | 
      
  | 
  delete | 
References llvm::List, N, and PiBlockDDGNode().
Referenced by getNodes(), operator=(), operator=(), PiBlockDDGNode(), PiBlockDDGNode(), and PiBlockDDGNode().
| PiBlockDDGNode::PiBlockDDGNode | ( | const PiNodeList & | List | ) | 
Definition at line 133 of file DDG.cpp.
References assert(), llvm::DDGNode::DDGNode(), llvm::List, and llvm::DDGNode::PiBlock.
| PiBlockDDGNode::PiBlockDDGNode | ( | const PiBlockDDGNode & | N | ) | 
Definition at line 138 of file DDG.cpp.
References assert(), llvm::DDGNode::DDGNode(), llvm::DDGNode::getKind(), N, llvm::DDGNode::PiBlock, and PiBlockDDGNode().
| PiBlockDDGNode::PiBlockDDGNode | ( | PiBlockDDGNode && | N | ) | 
Definition at line 144 of file DDG.cpp.
References assert(), llvm::DDGNode::DDGNode(), llvm::DDGNode::getKind(), llvm::move(), N, llvm::DDGNode::PiBlock, and PiBlockDDGNode().
Define classof to be able to use isa<>, cast<>, dyn_cast<>, etc.
Definition at line 196 of file DDG.h.
References llvm::DDGNode::DDGNode(), N, and llvm::DDGNode::PiBlock.
      
  | 
  inline | 
Definition at line 190 of file DDG.h.
References PiBlockDDGNode().
      
  | 
  inline | 
      
  | 
  default | 
References N, and PiBlockDDGNode().
      
  | 
  inline | 
Definition at line 179 of file DDG.h.
References N, llvm::DDGNode::operator=(), and PiBlockDDGNode().