[MLIR] Register all extensions in CAPI's RegisterEverything
authorAshay Rane <ashay@users.noreply.github.com>
Fri, 16 Jun 2023 22:11:43 +0000 (17:11 -0500)
committerAshay Rane <ashay@users.noreply.github.com>
Sat, 17 Jun 2023 02:31:42 +0000 (21:31 -0500)
The patch for promised interfaces (a5ef51d7) doesn't register all
extensions in the CAPI's `mlirRegisterAllDialects()` function.  This is
used by the MLIR Python bindings, causing downstream users of the Python
bindings to terminate abruptly.  This patch adds the call to register
all extensions.

Reviewed By: rriddle

Differential Revision: https://reviews.llvm.org/D153174

mlir/lib/CAPI/RegisterEverything/CMakeLists.txt
mlir/lib/CAPI/RegisterEverything/RegisterEverything.cpp

index 55fe49b..8b9a395 100644 (file)
@@ -2,6 +2,7 @@
 get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS)
 get_property(translation_libs GLOBAL PROPERTY MLIR_TRANSLATION_LIBS)
 get_property(conversion_libs GLOBAL PROPERTY MLIR_CONVERSION_LIBS)
+get_property(extension_libs GLOBAL PROPERTY MLIR_EXTENSION_LIBS)
 add_mlir_upstream_c_api_library(MLIRCAPIRegisterEverything
   RegisterEverything.cpp
 
@@ -9,6 +10,7 @@ add_mlir_upstream_c_api_library(MLIRCAPIRegisterEverything
   ${dialect_libs}
   ${translation_libs}
   ${conversion_libs}
+  ${extension_libs}
 
   MLIRBuiltinToLLVMIRTranslation
   MLIRCAPIIR
index e4a7516..b63899b 100644 (file)
 
 #include "mlir/CAPI/IR.h"
 #include "mlir/InitAllDialects.h"
+#include "mlir/InitAllExtensions.h"
 #include "mlir/InitAllPasses.h"
 #include "mlir/Target/LLVMIR/Dialect/Builtin/BuiltinToLLVMIRTranslation.h"
 #include "mlir/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.h"
 
 void mlirRegisterAllDialects(MlirDialectRegistry registry) {
   mlir::registerAllDialects(*unwrap(registry));
+  mlir::registerAllExtensions(*unwrap(registry));
 }
 
 void mlirRegisterAllLLVMTranslations(MlirContext context) {