14 #ifndef CIRCT_DIALECT_HW_INNERSYMBOLNAMESPACE_H
15 #define CIRCT_DIALECT_HW_INNERSYMBOLNAMESPACE_H
29 void add(Operation *module) {
40 return collection.try_emplace(op, op).first->second;
A namespace that is used to store existing names and generate new names in some scope within the IR.
llvm::StringMap< size_t > nextIndex
The target of an inner symbol, the entity the symbol is a handle for.
static RetTy walkSymbols(Operation *op, FuncTy &&callback)
Walk the given IST operation and invoke the callback for all encountered inner symbols.
The InstanceGraph op interface, see InstanceGraphInterface.td for more details.
InnerSymbolNamespace & get(Operation *op)
DenseMap< Operation *, InnerSymbolNamespace > collection
InnerSymbolNamespace & operator[](Operation *op)
InnerSymbolNamespace()=default
void add(Operation *module)
Populate the namespace from a module-like operation.
InnerSymbolNamespace(Operation *module)