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
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
${dialect_libs}
${translation_libs}
${conversion_libs}
+ ${extension_libs}
MLIRBuiltinToLLVMIRTranslation
MLIRCAPIIR
#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) {