14#ifndef CIRCT_DIALECT_ESI_ESITYPES_H
15#define CIRCT_DIALECT_ESI_ESITYPES_H
19#include "mlir/IR/AttrTypeSubElements.h"
20#include "mlir/IR/Dialect.h"
21#include "mlir/IR/Operation.h"
31#define GET_TYPEDEF_CLASSES
32#include "circt/Dialect/ESI/ESITypes.h.inc"
61struct AttrTypeSubElementHandler<
circt::esi::BundledChannel> {
63 AttrTypeImmediateSubElementWalker &walker) {
64 walker.walk(channel.
name);
65 walker.walk(channel.
type);
70 AttrSubElementReplacements &attrRepls,
71 TypeSubElementReplacements &typeRepls) {
72 return {cast<StringAttr>(attrRepls.take_front(1)[0]), channel.
direction,
73 cast<circt::esi::ChannelType>(typeRepls.take_front(1)[0])};
llvm::hash_code hash_value(const BundledChannel channel)
mlir::Type innerType(mlir::Type type)
The InstanceGraph op interface, see InstanceGraphInterface.td for more details.
int operator==(const BundledChannel &that) const
ChannelDirection direction
static circt::esi::BundledChannel replace(const circt::esi::BundledChannel &channel, AttrSubElementReplacements &attrRepls, TypeSubElementReplacements &typeRepls)
static void walk(const circt::esi::BundledChannel &channel, AttrTypeImmediateSubElementWalker &walker)