Expose missing register functions in compiler CAPI (#8582)
* Expose missing register functions in compiler CAPI
* Add needed build depends and remove suspected unnecessary registrations.
* Run clang-format
Co-authored-by: Stella Laurenzo <stellaraccident@gmail.com>
diff --git a/llvm-external-projects/iree-compiler-api/BUILD.bazel b/llvm-external-projects/iree-compiler-api/BUILD.bazel
index 98ff213..02cd3b5 100644
--- a/llvm-external-projects/iree-compiler-api/BUILD.bazel
+++ b/llvm-external-projects/iree-compiler-api/BUILD.bazel
@@ -71,6 +71,7 @@
"//iree/compiler/InputConversion/TOSA",
"//iree/compiler/Pipelines",
"//iree/compiler/Utils",
+ "//iree/tools:init_passes_and_dialects",
"//iree/tools:init_targets",
"//iree/tools:iree_translate_lib",
"@llvm-project//lld:COFF",
diff --git a/llvm-external-projects/iree-compiler-api/include/iree-compiler-c/Compiler.h b/llvm-external-projects/iree-compiler-api/include/iree-compiler-c/Compiler.h
index e4c0d3d..54179ac 100644
--- a/llvm-external-projects/iree-compiler-api/include/iree-compiler-c/Compiler.h
+++ b/llvm-external-projects/iree-compiler-api/include/iree-compiler-c/Compiler.h
@@ -27,6 +27,8 @@
// Registration.
//===----------------------------------------------------------------------===//
+MLIR_CAPI_EXPORTED void ireeCompilerRegisterAllDialects(MlirContext context);
+MLIR_CAPI_EXPORTED void ireeCompilerRegisterAllPasses();
MLIR_CAPI_EXPORTED void ireeCompilerRegisterTargetBackends();
//===----------------------------------------------------------------------===//
diff --git a/llvm-external-projects/iree-compiler-api/lib/CAPI/CMakeLists.txt b/llvm-external-projects/iree-compiler-api/lib/CAPI/CMakeLists.txt
index 1b4d785..997cffb 100644
--- a/llvm-external-projects/iree-compiler-api/lib/CAPI/CMakeLists.txt
+++ b/llvm-external-projects/iree-compiler-api/lib/CAPI/CMakeLists.txt
@@ -32,6 +32,9 @@
iree::compiler::Dialect::VM::Target::Bytecode::Bytecode
iree::compiler::Pipelines
+ # Passes and dialects.
+ iree::tools::init_passes_and_dialects
+
# All HAL Targets.
iree::tools::init_targets
diff --git a/llvm-external-projects/iree-compiler-api/lib/CAPI/Compiler.cpp b/llvm-external-projects/iree-compiler-api/lib/CAPI/Compiler.cpp
index b783580..6bf07fc 100644
--- a/llvm-external-projects/iree-compiler-api/lib/CAPI/Compiler.cpp
+++ b/llvm-external-projects/iree-compiler-api/lib/CAPI/Compiler.cpp
@@ -13,6 +13,8 @@
#include "iree/compiler/InputConversion/TOSA/Passes.h"
#include "iree/compiler/Pipelines/Pipelines.h"
#include "iree/compiler/Utils/OptionUtils.h"
+#include "iree/tools/init_dialects.h"
+#include "iree/tools/init_passes.h"
#include "iree/tools/init_targets.h"
#include "mlir/CAPI/IR.h"
#include "mlir/CAPI/Pass.h"
@@ -59,6 +61,14 @@
DEFINE_C_API_PTR_METHODS(IreeCompilerOptions, CompilerOptions)
+void ireeCompilerRegisterAllDialects(MlirContext context) {
+ DialectRegistry registry;
+ registerAllDialects(registry);
+ unwrap(context)->appendDialectRegistry(registry);
+}
+
+void ireeCompilerRegisterAllPasses() { registerAllPasses(); }
+
void ireeCompilerRegisterTargetBackends() { registerHALTargetBackends(); }
IreeCompilerOptions ireeCompilerOptionsCreate() {