17#include "mlir/IR/Builders.h"
18#include "mlir/IR/BuiltinTypes.h"
19#include "mlir/IR/DialectImplementation.h"
20#include "llvm/ADT/TypeSwitch.h"
29void RTGTestDialect::initialize() {
35#include "circt/Dialect/RTGTest/IR/RTGTest.cpp.inc"
46Operation *RTGTestDialect::materializeConstant(OpBuilder &builder,
47 Attribute value, Type type,
49 return TypeSwitch<Attribute, Operation *>(value)
50 .Case<CPUAttr>([&](
auto attr) -> Operation * {
51 if (isa<CPUType>(type))
52 return builder.create<CPUDeclOp>(loc, type, attr);
55 .Case<rtg::RegisterAttrInterface>([&](
auto attr) -> Operation * {
56 if (isa<rtg::RegisterTypeInterface>(type))
57 return builder.create<rtg::FixedRegisterOp>(loc, attr);
60 .Case<Imm12Attr, Imm21Attr, Imm32Attr>(
61 [&](
auto attr) {
return builder.create<ImmediateOp>(loc, attr); })
62 .Default([](
auto attr) {
return nullptr; });
65#include "circt/Dialect/RTGTest/IR/RTGTestEnums.cpp.inc"
67#include "circt/Dialect/RTGTest/IR/RTGTestDialect.cpp.inc"
The InstanceGraph op interface, see InstanceGraphInterface.td for more details.