From 12c2d1d455413633d5102f92640400a873169c8a Mon Sep 17 00:00:00 2001 From: Sameer Rahmani Date: Tue, 5 Apr 2022 00:05:27 +0100 Subject: [PATCH] Fix the slir-opt tool to use slir and few builtin IRs --- devtools/slir-lsp-server.cpp | 6 +++++- devtools/slir-opt.cpp | 7 +++++-- docs/examples/slir/hello_world.mlir | 2 +- libserene/include/serene/slir/dialect.h | 7 +++++++ libserene/lib/CMakeLists.txt | 4 ++-- libserene/lib/slir/dialect.cpp | 4 ++++ 6 files changed, 24 insertions(+), 6 deletions(-) diff --git a/devtools/slir-lsp-server.cpp b/devtools/slir-lsp-server.cpp index d89b938..2cfd848 100644 --- a/devtools/slir-lsp-server.cpp +++ b/devtools/slir-lsp-server.cpp @@ -18,12 +18,16 @@ #include "serene/slir/dialect.h" +#include #include #include int main(int argc, char **argv) { mlir::DialectRegistry registry; - registry.insert(); + + serene::slir::registerTo(registry); + + registry.insert(); // TODO: Register passes here return static_cast( diff --git a/devtools/slir-opt.cpp b/devtools/slir-opt.cpp index f960f92..3638609 100644 --- a/devtools/slir-opt.cpp +++ b/devtools/slir-opt.cpp @@ -18,14 +18,17 @@ #include "serene/slir/dialect.h" +#include +#include #include #include int main(int argc, char **argv) { mlir::DialectRegistry registry; - registry.insert(); + serene::slir::registerTo(registry); + registry.insert(); // TODO: Register passes here return static_cast( - mlir::failed(mlir::MlirOptMain(argc, argv, registry))); + mlir::failed(mlir::MlirOptMain(argc, argv, "slir-opt", registry))); } diff --git a/docs/examples/slir/hello_world.mlir b/docs/examples/slir/hello_world.mlir index a069203..01fca45 100644 --- a/docs/examples/slir/hello_world.mlir +++ b/docs/examples/slir/hello_world.mlir @@ -1,3 +1,3 @@ module @some.ns { - %1 = "serene.define"{}() + %1 = "serene.define" (): () -> i32 } diff --git a/libserene/include/serene/slir/dialect.h b/libserene/include/serene/slir/dialect.h index 5cc3a1f..6ec4e39 100644 --- a/libserene/include/serene/slir/dialect.h +++ b/libserene/include/serene/slir/dialect.h @@ -18,9 +18,12 @@ #ifndef SERENE_SLIR_DIALECT_H #define SERENE_SLIR_DIALECT_H +#include + #include #include #include +#include #include #include @@ -35,4 +38,8 @@ #define GET_OP_CLASSES #include "serene/slir/ops.h.inc" +namespace serene::slir { +SERENE_EXPORT void registerTo(mlir::DialectRegistry ®istry); +} // namespace serene::slir + // #endif // SERENE_SLIR_DIALECT_H diff --git a/libserene/lib/CMakeLists.txt b/libserene/lib/CMakeLists.txt index 0c44b2d..261c3ba 100644 --- a/libserene/lib/CMakeLists.txt +++ b/libserene/lib/CMakeLists.txt @@ -147,10 +147,10 @@ endif() set(serene_lib_dialects_in_use - MLIRStandard) + MLIRFunc) set(serene_lib_transformers_in_use - MLIRStandardToLLVM) + MLIRFuncToLLVM) target_link_libraries(serene PRIVATE MLIRIR diff --git a/libserene/lib/slir/dialect.cpp b/libserene/lib/slir/dialect.cpp index ae17a54..254c21d 100644 --- a/libserene/lib/slir/dialect.cpp +++ b/libserene/lib/slir/dialect.cpp @@ -112,6 +112,10 @@ void SereneDialect::initialize() { // void SereneDialect::printType( // mlir::Type type, mlir::DialectAsmPrinter &printer) const override{}; +void registerTo(mlir::DialectRegistry ®istry) { + registry.insert(); +}; + } // namespace slir } // namespace serene #define GET_TYPEDEF_CLASSES