13#ifndef CIRCT_DIALECT_FIRRTL_FIRRTLINSTANCEGRAPH_H
14#define CIRCT_DIALECT_FIRRTL_FIRRTLINSTANCEGRAPH_H
19#include "llvm/ADT/GraphTraits.h"
20#include "llvm/ADT/STLExtras.h"
21#include "llvm/ADT/iterator.h"
57struct llvm::GraphTraits<
circt::firrtl::InstanceGraph *>
58 :
public llvm::GraphTraits<circt::igraph::InstanceGraph *> {};
61struct llvm::DOTGraphTraits<
circt::firrtl::InstanceGraph *>
62 :
public llvm::DOTGraphTraits<circt::igraph::InstanceGraph *> {
This graph tracks modules and where they are instantiated.
InstanceGraphNode * topLevelNode
FModuleLike getTopLevelModule()
Get the module corresponding to the top-level module of a circuit.
igraph::InstanceGraphNode * getTopLevelNode() override
Get the node corresponding to the top-level module of a circuit.
This is a Node in the InstanceGraph.
This graph tracks modules and where they are instantiated.
This is an edge in the InstanceGraph.
The InstanceGraph op interface, see InstanceGraphInterface.td for more details.
A data structure that caches and provides absolute paths to module instances in the IR.