13#ifndef CIRCT_DIALECT_HW_HWINSTANCEGRAPH_H
14#define CIRCT_DIALECT_HW_HWINSTANCEGRAPH_H
47struct llvm::GraphTraits<
circt::hw::InstanceGraph *>
48 :
public llvm::GraphTraits<circt::igraph::InstanceGraph *> {};
51struct llvm::DOTGraphTraits<
circt::hw::InstanceGraph *>
52 :
public llvm::DOTGraphTraits<circt::igraph::InstanceGraph *> {
HW-specific instance graph with a virtual entry node linking to all publicly visible modules.
igraph::InstanceGraphNode * getTopLevelNode() override
Return the entry node linking to all public modules.
igraph::InstanceGraphNode * addHWModule(HWModuleLike module)
Adds a module, updating links to entry.
void erase(igraph::InstanceGraphNode *node) override
Erases a module, updating links to entry.
igraph::InstanceGraphNode entry
This is a Node in the InstanceGraph.
This graph tracks modules and where they are instantiated.
virtual InstanceGraphNode * addModule(ModuleOpInterface module)
Add a newly created module to the instance graph.
The InstanceGraph op interface, see InstanceGraphInterface.td for more details.