CIRCT 22.0.0git
|
Graph traits for the instance graph. More...
#include <InstanceGraph.h>
Public Types | |
using | nodes_iterator = circt::igraph::InstanceGraph::iterator |
![]() | |
using | NodeType = circt::igraph::InstanceGraphNode |
using | NodeRef = NodeType * |
using | ChildIteratorType = llvm::mapped_iterator< NodeType::iterator, decltype(&getChild)> |
Static Public Member Functions | |
static NodeRef | getEntryNode (circt::igraph::InstanceGraph *graph) |
static nodes_iterator | nodes_begin (circt::igraph::InstanceGraph *graph) |
static nodes_iterator | nodes_end (circt::igraph::InstanceGraph *graph) |
![]() | |
static NodeRef | getChild (const circt::igraph::InstanceRecord *record) |
static NodeRef | getEntryNode (NodeRef node) |
static ChildIteratorType | child_begin (NodeRef node) |
static ChildIteratorType | child_end (NodeRef node) |
Graph traits for the instance graph.
Deprecated: This uses getTopLevelNode()
as the root node of the graph, which does not contain all modules in the instance graph. Instead, the behaviour is dependent on concrete subclasses of the instance graph. The HW and FIRRTL dialects define this to be variants of "the top module" and "all
public modules", which is usually not what you want in a pass. You are more likely to want to visit all modules in the IR in post order (children before parents), not just a subset of the modules depending on whether things are transitively instantiated. Use walkPostOrder
or walkInversePostOrder
on InstanceGraph
instead.
Definition at line 489 of file InstanceGraph.h.
using llvm::GraphTraits< circt::igraph::InstanceGraph * >::nodes_iterator = circt::igraph::InstanceGraph::iterator |
Definition at line 491 of file InstanceGraph.h.
|
inlinestatic |
Definition at line 493 of file InstanceGraph.h.
References circt::igraph::InstanceGraph::getTopLevelNode().
|
inlinestatic |
Definition at line 497 of file InstanceGraph.h.
References circt::igraph::InstanceGraph::begin().
|
inlinestatic |
Definition at line 501 of file InstanceGraph.h.
References circt::igraph::InstanceGraph::end().