14 #include "llvm/ADT/TypeSwitch.h"
15 #include "llvm/Support/Casting.h"
27 "irdl-to-cpp",
"translate IRDL dialect definitions to C++ definitions",
30 .Case<irdl::DialectOp>([&](irdl::DialectOp dialectOp) {
33 .Case<ModuleOp>([&](ModuleOp moduleOp) {
34 for (
Operation &op : moduleOp.getBody()->getOperations())
35 if (
auto dialectOp = llvm::dyn_cast<irdl::DialectOp>(op))
43 "unsupported operation for IRDL to C++ translation");
46 [](
DialectRegistry ®istry) { registry.insert<irdl::IRDLDialect>(); });
The DialectRegistry maps a dialect namespace to a constructor for the matching dialect.
Operation is the basic unit of execution within MLIR.
InFlightDiagnostic emitError(const Twine &message={})
Emit an error about fatal conditions with this operation, reporting up to any diagnostic handlers tha...
LogicalResult translateIRDLDialectToCpp(llvm::ArrayRef< irdl::DialectOp > dialects, raw_ostream &output)
Translates an IRDL dialect definition to a C++ definition that can be used with MLIR.
Include the generated interface declarations.
void registerIRDLToCppTranslation()