CIRCT 22.0.0git
Loading...
Searching...
No Matches
Public Types | Static Public Member Functions | List of all members
llvm::GraphTraits< circt::igraph::InstanceGraph * > Struct Reference

Graph traits for the instance graph. More...

#include <InstanceGraph.h>

Inheritance diagram for llvm::GraphTraits< circt::igraph::InstanceGraph * >:
Inheritance graph
[legend]
Collaboration diagram for llvm::GraphTraits< circt::igraph::InstanceGraph * >:
Collaboration graph
[legend]

Public Types

using nodes_iterator = circt::igraph::InstanceGraph::iterator
 
- Public Types inherited from llvm::GraphTraits< circt::igraph::InstanceGraphNode * >
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 Public Member Functions inherited from llvm::GraphTraits< circt::igraph::InstanceGraphNode * >
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)
 

Detailed Description

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.

Member Typedef Documentation

◆ nodes_iterator

using llvm::GraphTraits< circt::igraph::InstanceGraph * >::nodes_iterator = circt::igraph::InstanceGraph::iterator

Definition at line 491 of file InstanceGraph.h.

Member Function Documentation

◆ getEntryNode()

static NodeRef llvm::GraphTraits< circt::igraph::InstanceGraph * >::getEntryNode ( circt::igraph::InstanceGraph graph)
inlinestatic

Definition at line 493 of file InstanceGraph.h.

References circt::igraph::InstanceGraph::getTopLevelNode().

◆ nodes_begin()

static nodes_iterator llvm::GraphTraits< circt::igraph::InstanceGraph * >::nodes_begin ( circt::igraph::InstanceGraph graph)
inlinestatic

Definition at line 497 of file InstanceGraph.h.

References circt::igraph::InstanceGraph::begin().

◆ nodes_end()

static nodes_iterator llvm::GraphTraits< circt::igraph::InstanceGraph * >::nodes_end ( circt::igraph::InstanceGraph graph)
inlinestatic

Definition at line 501 of file InstanceGraph.h.

References circt::igraph::InstanceGraph::end().


The documentation for this struct was generated from the following file: