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() {