20#ifndef CIRCT_DIALECT_HW_HIERPATHCACHE_H
21#define CIRCT_DIALECT_HW_HIERPATHCACHE_H
25#include <mlir/IR/Attributes.h>
37 StringRef nameHint =
"xmrPath");
43 OpBuilder::InsertPoint &insertPoint,
44 StringRef nameHint =
"xmrPath");
52 DenseMap<mlir::Attribute, hw::HierPathOp>
pathCache;
A namespace that is used to store existing names and generate new names in some scope within the IR.
HierPathCache(Namespace *ns, OpBuilder::InsertPoint insertionPoint)
OpBuilder::InsertPoint pathInsertPoint
The insertion point where the pass inserts HierPathOps.
DenseMap< mlir::Attribute, hw::HierPathOp > pathCache
A cache of already created HierPathOps.
Namespace * ns
A namespace in which symbols for hierarchical path ops will be created.
HierPathOp getOrCreatePath(ArrayAttr pathArray, Location loc, StringRef nameHint="xmrPath")
Get an existing hw::HierPathOp at the default location in the circuit.
The InstanceGraph op interface, see InstanceGraphInterface.td for more details.