[llvm] [mlir] [MLIR] Add missing dialects to C API (PR #82190)

Sergio Sánchez Ramírez via llvm-commits llvm-commits at lists.llvm.org
Mon Dec 22 16:29:25 PST 2025


https://github.com/mofeing updated https://github.com/llvm/llvm-project/pull/82190

>From 463c5bc8a262fc1b737c650bcdfb9f5097664a1f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sergio=20S=C3=A1nchez=20Ram=C3=ADrez?=
 <sergio.sanchez.ramirez+git at bsc.es>
Date: Sun, 18 Feb 2024 22:49:24 +0100
Subject: [PATCH 01/16] Add missing dialects to C API

---
 mlir/include/mlir-c/Dialect/AMX.h           | 25 ++++++++++++++++++++
 mlir/include/mlir-c/Dialect/Affine.h        | 25 ++++++++++++++++++++
 mlir/include/mlir-c/Dialect/ArmNeon.h       | 26 +++++++++++++++++++++
 mlir/include/mlir-c/Dialect/ArmSME.h        | 25 ++++++++++++++++++++
 mlir/include/mlir-c/Dialect/ArmSVE.h        | 25 ++++++++++++++++++++
 mlir/include/mlir-c/Dialect/Bufferization.h | 25 ++++++++++++++++++++
 mlir/include/mlir-c/Dialect/DLTI.h          | 25 ++++++++++++++++++++
 mlir/include/mlir-c/Dialect/MPI.h           | 25 ++++++++++++++++++++
 mlir/include/mlir-c/Dialect/OpenACC.h       | 25 ++++++++++++++++++++
 mlir/include/mlir-c/Dialect/PDLInterp.h     | 25 ++++++++++++++++++++
 mlir/include/mlir-c/Dialect/Ptr.h           | 25 ++++++++++++++++++++
 mlir/include/mlir-c/Dialect/Shard.h         | 25 ++++++++++++++++++++
 mlir/include/mlir-c/Dialect/Tosa.h          | 25 ++++++++++++++++++++
 mlir/include/mlir-c/Dialect/UB.h            | 25 ++++++++++++++++++++
 mlir/include/mlir-c/Dialect/WasmSSA.h       | 25 ++++++++++++++++++++
 mlir/include/mlir-c/Dialect/XeGPU.h         | 25 ++++++++++++++++++++
 mlir/include/mlir-c/X86Vector.h             | 25 ++++++++++++++++++++
 17 files changed, 426 insertions(+)
 create mode 100644 mlir/include/mlir-c/Dialect/AMX.h
 create mode 100644 mlir/include/mlir-c/Dialect/Affine.h
 create mode 100644 mlir/include/mlir-c/Dialect/ArmNeon.h
 create mode 100644 mlir/include/mlir-c/Dialect/ArmSME.h
 create mode 100644 mlir/include/mlir-c/Dialect/ArmSVE.h
 create mode 100644 mlir/include/mlir-c/Dialect/Bufferization.h
 create mode 100644 mlir/include/mlir-c/Dialect/DLTI.h
 create mode 100644 mlir/include/mlir-c/Dialect/MPI.h
 create mode 100644 mlir/include/mlir-c/Dialect/OpenACC.h
 create mode 100644 mlir/include/mlir-c/Dialect/PDLInterp.h
 create mode 100644 mlir/include/mlir-c/Dialect/Ptr.h
 create mode 100644 mlir/include/mlir-c/Dialect/Shard.h
 create mode 100644 mlir/include/mlir-c/Dialect/Tosa.h
 create mode 100644 mlir/include/mlir-c/Dialect/UB.h
 create mode 100644 mlir/include/mlir-c/Dialect/WasmSSA.h
 create mode 100644 mlir/include/mlir-c/Dialect/XeGPU.h
 create mode 100644 mlir/include/mlir-c/X86Vector.h

diff --git a/mlir/include/mlir-c/Dialect/AMX.h b/mlir/include/mlir-c/Dialect/AMX.h
new file mode 100644
index 0000000000000..ac4695a107ae6
--- /dev/null
+++ b/mlir/include/mlir-c/Dialect/AMX.h
@@ -0,0 +1,25 @@
+//===-- mlir-c/Dialect/AMX.h - C API for AMX Dialect --------*- C -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM
+// Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef MLIR_C_DIALECT_AMX_H
+#define MLIR_C_DIALECT_AMX_H
+
+#include "mlir-c/IR.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+MLIR_DECLARE_CAPI_DIALECT_REGISTRATION(AMX, amx);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // MLIR_C_DIALECT_AMX_H
diff --git a/mlir/include/mlir-c/Dialect/Affine.h b/mlir/include/mlir-c/Dialect/Affine.h
new file mode 100644
index 0000000000000..0f4e010f91255
--- /dev/null
+++ b/mlir/include/mlir-c/Dialect/Affine.h
@@ -0,0 +1,25 @@
+//===-- mlir-c/Dialect/Affine.h - C API for Affine Dialect --------*- C -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM
+// Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef MLIR_C_DIALECT_AFFINE_H
+#define MLIR_C_DIALECT_AFFINE_H
+
+#include "mlir-c/IR.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+MLIR_DECLARE_CAPI_DIALECT_REGISTRATION(Affine, affine);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // MLIR_C_DIALECT_AFFINE_H
diff --git a/mlir/include/mlir-c/Dialect/ArmNeon.h b/mlir/include/mlir-c/Dialect/ArmNeon.h
new file mode 100644
index 0000000000000..fdc859d9ff631
--- /dev/null
+++ b/mlir/include/mlir-c/Dialect/ArmNeon.h
@@ -0,0 +1,26 @@
+//===-- mlir-c/Dialect/ArmNeon.h - C API for ArmNeon Dialect --------*- C
+//-*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM
+// Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef MLIR_C_DIALECT_ARMNEON_H
+#define MLIR_C_DIALECT_ARMNEON_H
+
+#include "mlir-c/IR.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+MLIR_DECLARE_CAPI_DIALECT_REGISTRATION(ArmNeon, arm_neon);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // MLIR_C_DIALECT_ARMNEON_H
diff --git a/mlir/include/mlir-c/Dialect/ArmSME.h b/mlir/include/mlir-c/Dialect/ArmSME.h
new file mode 100644
index 0000000000000..a27f38e5b65f4
--- /dev/null
+++ b/mlir/include/mlir-c/Dialect/ArmSME.h
@@ -0,0 +1,25 @@
+//===-- mlir-c/Dialect/ArmSME.h - C API for ArmSME Dialect --------*- C -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM
+// Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef MLIR_C_DIALECT_ARMSME_H
+#define MLIR_C_DIALECT_ARMSME_H
+
+#include "mlir-c/IR.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+MLIR_DECLARE_CAPI_DIALECT_REGISTRATION(ArmSME, arm_sme);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // MLIR_C_DIALECT_ARMSME_H
diff --git a/mlir/include/mlir-c/Dialect/ArmSVE.h b/mlir/include/mlir-c/Dialect/ArmSVE.h
new file mode 100644
index 0000000000000..8f5838c630446
--- /dev/null
+++ b/mlir/include/mlir-c/Dialect/ArmSVE.h
@@ -0,0 +1,25 @@
+//===-- mlir-c/Dialect/ArmSVE.h - C API for ArmSVE Dialect --------*- C -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM
+// Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef MLIR_C_DIALECT_ARMSME_H
+#define MLIR_C_DIALECT_ARMSME_H
+
+#include "mlir-c/IR.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+MLIR_DECLARE_CAPI_DIALECT_REGISTRATION(ArmSVE, arm_sve);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // MLIR_C_DIALECT_ARMSME_H
diff --git a/mlir/include/mlir-c/Dialect/Bufferization.h b/mlir/include/mlir-c/Dialect/Bufferization.h
new file mode 100644
index 0000000000000..76c2c16be53b2
--- /dev/null
+++ b/mlir/include/mlir-c/Dialect/Bufferization.h
@@ -0,0 +1,25 @@
+//===-- mlir-c/Dialect/Bufferization.h - C API for Bufferization Dialect --------*- C -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM
+// Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef MLIR_C_DIALECT_BUFFERIZATION_H
+#define MLIR_C_DIALECT_BUFFERIZATION_H
+
+#include "mlir-c/IR.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+MLIR_DECLARE_CAPI_DIALECT_REGISTRATION(Bufferization, bufferization);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // MLIR_C_DIALECT_BUFFERIZATION_H
diff --git a/mlir/include/mlir-c/Dialect/DLTI.h b/mlir/include/mlir-c/Dialect/DLTI.h
new file mode 100644
index 0000000000000..d0f79d9c4bc6a
--- /dev/null
+++ b/mlir/include/mlir-c/Dialect/DLTI.h
@@ -0,0 +1,25 @@
+//===-- mlir-c/Dialect/DLTI.h - C API for DLTI Dialect --------*- C -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM
+// Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef MLIR_C_DIALECT_DLTI_H
+#define MLIR_C_DIALECT_DLTI_H
+
+#include "mlir-c/IR.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+MLIR_DECLARE_CAPI_DIALECT_REGISTRATION(DLTI, dlti);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // MLIR_C_DIALECT_DLTI_H
diff --git a/mlir/include/mlir-c/Dialect/MPI.h b/mlir/include/mlir-c/Dialect/MPI.h
new file mode 100644
index 0000000000000..c90c3db7bdcc6
--- /dev/null
+++ b/mlir/include/mlir-c/Dialect/MPI.h
@@ -0,0 +1,25 @@
+//===-- mlir-c/Dialect/MPI.h - C API for MPI Dialect --------*- C -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM
+// Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef MLIR_C_DIALECT_MPI_H
+#define MLIR_C_DIALECT_MPI_H
+
+#include "mlir-c/IR.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+MLIR_DECLARE_CAPI_DIALECT_REGISTRATION(MPI, mpi);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // MLIR_C_DIALECT_MPI_H
diff --git a/mlir/include/mlir-c/Dialect/OpenACC.h b/mlir/include/mlir-c/Dialect/OpenACC.h
new file mode 100644
index 0000000000000..c37e75d2a23da
--- /dev/null
+++ b/mlir/include/mlir-c/Dialect/OpenACC.h
@@ -0,0 +1,25 @@
+//===-- mlir-c/Dialect/OpenACC.h - C API for OpenACC Dialect --------*- C -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM
+// Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef MLIR_C_DIALECT_OPENACC_H
+#define MLIR_C_DIALECT_OPENACC_H
+
+#include "mlir-c/IR.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+MLIR_DECLARE_CAPI_DIALECT_REGISTRATION(OpenACC, acc);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // MLIR_C_DIALECT_OPENACC_H
diff --git a/mlir/include/mlir-c/Dialect/PDLInterp.h b/mlir/include/mlir-c/Dialect/PDLInterp.h
new file mode 100644
index 0000000000000..49a5a7a934a98
--- /dev/null
+++ b/mlir/include/mlir-c/Dialect/PDLInterp.h
@@ -0,0 +1,25 @@
+//===-- mlir-c/Dialect/PDLInterp.h - C API for PDLInterp Dialect --------*- C -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM
+// Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef MLIR_C_DIALECT_PDLINTERP_H
+#define MLIR_C_DIALECT_PDLINTERP_H
+
+#include "mlir-c/IR.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+MLIR_DECLARE_CAPI_DIALECT_REGISTRATION(PDLInterp, pdl_interp);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // MLIR_C_DIALECT_PDLINTERP_H
diff --git a/mlir/include/mlir-c/Dialect/Ptr.h b/mlir/include/mlir-c/Dialect/Ptr.h
new file mode 100644
index 0000000000000..ef3cf35fb1456
--- /dev/null
+++ b/mlir/include/mlir-c/Dialect/Ptr.h
@@ -0,0 +1,25 @@
+//===-- mlir-c/Dialect/Ptr.h - C API for Ptr Dialect --------------*- C -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM
+// Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef MLIR_C_DIALECT_PTR_H
+#define MLIR_C_DIALECT_PTR_H
+
+#include "mlir-c/IR.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+MLIR_DECLARE_CAPI_DIALECT_REGISTRATION(Ptr, ptr);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // MLIR_C_DIALECT_PTR_H
diff --git a/mlir/include/mlir-c/Dialect/Shard.h b/mlir/include/mlir-c/Dialect/Shard.h
new file mode 100644
index 0000000000000..39fe2d59b44d3
--- /dev/null
+++ b/mlir/include/mlir-c/Dialect/Shard.h
@@ -0,0 +1,25 @@
+//===-- mlir-c/Dialect/Shard.h - C API for Shard Dialect ----------*- C -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM
+// Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef MLIR_C_DIALECT_SHARD_H
+#define MLIR_C_DIALECT_SHARD_H
+
+#include "mlir-c/IR.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+MLIR_DECLARE_CAPI_DIALECT_REGISTRATION(Shard, shard);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // MLIR_C_DIALECT_SHARD_H
diff --git a/mlir/include/mlir-c/Dialect/Tosa.h b/mlir/include/mlir-c/Dialect/Tosa.h
new file mode 100644
index 0000000000000..b16a1d86c258a
--- /dev/null
+++ b/mlir/include/mlir-c/Dialect/Tosa.h
@@ -0,0 +1,25 @@
+//===-- mlir-c/Dialect/Tosa.h - C API for Tosa Dialect --------*- C -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM
+// Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef MLIR_C_DIALECT_TOSA_H
+#define MLIR_C_DIALECT_TOSA_H
+
+#include "mlir-c/IR.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+MLIR_DECLARE_CAPI_DIALECT_REGISTRATION(Tosa, tosa);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // MLIR_C_DIALECT_TOSA_H
diff --git a/mlir/include/mlir-c/Dialect/UB.h b/mlir/include/mlir-c/Dialect/UB.h
new file mode 100644
index 0000000000000..e9d64348a1727
--- /dev/null
+++ b/mlir/include/mlir-c/Dialect/UB.h
@@ -0,0 +1,25 @@
+//===-- mlir-c/Dialect/UB.h - C API for UB Dialect --------*- C -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM
+// Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef MLIR_C_DIALECT_UB_H
+#define MLIR_C_DIALECT_UB_H
+
+#include "mlir-c/IR.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+MLIR_DECLARE_CAPI_DIALECT_REGISTRATION(UB, ub);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // MLIR_C_DIALECT_UB_H
diff --git a/mlir/include/mlir-c/Dialect/WasmSSA.h b/mlir/include/mlir-c/Dialect/WasmSSA.h
new file mode 100644
index 0000000000000..76ddb90469478
--- /dev/null
+++ b/mlir/include/mlir-c/Dialect/WasmSSA.h
@@ -0,0 +1,25 @@
+//===-- mlir-c/Dialect/WasmSSA.h - C API for WasmSSA Dialect ------*- C -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM
+// Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef MLIR_C_DIALECT_WASMSSA_H
+#define MLIR_C_DIALECT_WASMSSA_H
+
+#include "mlir-c/IR.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+MLIR_DECLARE_CAPI_DIALECT_REGISTRATION(WasmSSA, wasmssa);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // MLIR_C_DIALECT_WASMSSA_H
diff --git a/mlir/include/mlir-c/Dialect/XeGPU.h b/mlir/include/mlir-c/Dialect/XeGPU.h
new file mode 100644
index 0000000000000..7faf7297a141f
--- /dev/null
+++ b/mlir/include/mlir-c/Dialect/XeGPU.h
@@ -0,0 +1,25 @@
+//===-- mlir-c/Dialect/XeGPU.h - C API for XeGPU Dialect ----------*- C -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM
+// Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef MLIR_C_DIALECT_XEGPU_H
+#define MLIR_C_DIALECT_XEGPU_H
+
+#include "mlir-c/IR.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+MLIR_DECLARE_CAPI_DIALECT_REGISTRATION(XeGPU, xegpu);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // MLIR_C_DIALECT_XEGPU_H
diff --git a/mlir/include/mlir-c/X86Vector.h b/mlir/include/mlir-c/X86Vector.h
new file mode 100644
index 0000000000000..673870e32162d
--- /dev/null
+++ b/mlir/include/mlir-c/X86Vector.h
@@ -0,0 +1,25 @@
+//===-- mlir-c/Dialect/x86Vector.h - C API for x86Vector Dialect --*- C -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM
+// Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef MLIR_C_DIALECT_X86VECTOR_H
+#define MLIR_C_DIALECT_X86VECTOR_H
+
+#include "mlir-c/IR.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+MLIR_DECLARE_CAPI_DIALECT_REGISTRATION(X86Vector, x86vector);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // MLIR_C_DIALECT_X86VECTOR_H

>From 2692a58cc073c950c054f7f0037a61d5daee5932 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sergio=20S=C3=A1nchez=20Ram=C3=ADrez?=
 <sergio.sanchez.ramirez+git at bsc.es>
Date: Sun, 18 Feb 2024 23:14:40 +0100
Subject: [PATCH 02/16] Format code

---
 mlir/include/mlir-c/Dialect/Bufferization.h | 3 ++-
 mlir/include/mlir-c/Dialect/OpenACC.h       | 3 ++-
 mlir/include/mlir-c/Dialect/PDLInterp.h     | 3 ++-
 3 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/mlir/include/mlir-c/Dialect/Bufferization.h b/mlir/include/mlir-c/Dialect/Bufferization.h
index 76c2c16be53b2..9c4ef19e5493d 100644
--- a/mlir/include/mlir-c/Dialect/Bufferization.h
+++ b/mlir/include/mlir-c/Dialect/Bufferization.h
@@ -1,4 +1,5 @@
-//===-- mlir-c/Dialect/Bufferization.h - C API for Bufferization Dialect --------*- C -*-===//
+//===-- mlir-c/Dialect/Bufferization.h - C API for Bufferization Dialect
+//--------*- C -*-===//
 //
 // Part of the LLVM Project, under the Apache License v2.0 with LLVM
 // Exceptions.
diff --git a/mlir/include/mlir-c/Dialect/OpenACC.h b/mlir/include/mlir-c/Dialect/OpenACC.h
index c37e75d2a23da..8ceb004b0f653 100644
--- a/mlir/include/mlir-c/Dialect/OpenACC.h
+++ b/mlir/include/mlir-c/Dialect/OpenACC.h
@@ -1,4 +1,5 @@
-//===-- mlir-c/Dialect/OpenACC.h - C API for OpenACC Dialect --------*- C -*-===//
+//===-- mlir-c/Dialect/OpenACC.h - C API for OpenACC Dialect --------*- C
+//-*-===//
 //
 // Part of the LLVM Project, under the Apache License v2.0 with LLVM
 // Exceptions.
diff --git a/mlir/include/mlir-c/Dialect/PDLInterp.h b/mlir/include/mlir-c/Dialect/PDLInterp.h
index 49a5a7a934a98..7212196f0168b 100644
--- a/mlir/include/mlir-c/Dialect/PDLInterp.h
+++ b/mlir/include/mlir-c/Dialect/PDLInterp.h
@@ -1,4 +1,5 @@
-//===-- mlir-c/Dialect/PDLInterp.h - C API for PDLInterp Dialect --------*- C -*-===//
+//===-- mlir-c/Dialect/PDLInterp.h - C API for PDLInterp Dialect --------*- C
+//-*-===//
 //
 // Part of the LLVM Project, under the Apache License v2.0 with LLVM
 // Exceptions.

>From 0acad78720436abb2ced0c5aaeab1a7c3603e836 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sergio=20S=C3=A1nchez=20Ram=C3=ADrez?=
 <sergio.sanchez.ramirez+git at bsc.es>
Date: Sun, 18 Feb 2024 23:40:18 +0100
Subject: [PATCH 03/16] Add pass support to C API

---
 mlir/include/mlir-c/Dialect/AMDGPU.h                          | 2 ++
 mlir/include/mlir-c/Dialect/Affine.h                          | 2 ++
 mlir/include/mlir-c/Dialect/Arith.h                           | 2 ++
 mlir/include/mlir-c/Dialect/ArmSME.h                          | 2 ++
 mlir/include/mlir-c/Dialect/ArmSVE.h                          | 2 ++
 mlir/include/mlir-c/Dialect/Bufferization.h                   | 2 ++
 mlir/include/mlir-c/Dialect/EmitC.h                           | 2 ++
 mlir/include/mlir-c/Dialect/Func.h                            | 2 ++
 mlir/include/mlir-c/Dialect/LLVM.h                            | 2 ++
 mlir/include/mlir-c/Dialect/MLProgram.h                       | 2 ++
 mlir/include/mlir-c/Dialect/Math.h                            | 2 ++
 mlir/include/mlir-c/Dialect/MemRef.h                          | 2 ++
 mlir/include/mlir-c/Dialect/NVGPU.h                           | 2 ++
 mlir/include/mlir-c/Dialect/OpenACC.h                         | 2 ++
 mlir/include/mlir-c/Dialect/SCF.h                             | 2 ++
 mlir/include/mlir-c/Dialect/SPIRV.h                           | 2 ++
 mlir/include/mlir-c/Dialect/Shape.h                           | 2 ++
 mlir/include/mlir-c/Dialect/Tensor.h                          | 2 ++
 mlir/include/mlir-c/Dialect/Tosa.h                            | 2 ++
 mlir/include/mlir-c/Dialect/Transform.h                       | 2 ++
 mlir/include/mlir-c/Dialect/Vector.h                          | 2 ++
 mlir/include/mlir/Dialect/AMDGPU/Transforms/CMakeLists.txt    | 2 ++
 mlir/include/mlir/Dialect/Affine/CMakeLists.txt               | 2 ++
 mlir/include/mlir/Dialect/Arith/Transforms/CMakeLists.txt     | 2 ++
 mlir/include/mlir/Dialect/ArmSME/Transforms/CMakeLists.txt    | 2 ++
 mlir/include/mlir/Dialect/ArmSVE/Transforms/CMakeLists.txt    | 2 ++
 .../mlir/Dialect/Bufferization/Transforms/CMakeLists.txt      | 2 ++
 mlir/include/mlir/Dialect/EmitC/Transforms/CMakeLists.txt     | 2 ++
 mlir/include/mlir/Dialect/Func/Transforms/CMakeLists.txt      | 2 ++
 mlir/include/mlir/Dialect/LLVMIR/Transforms/CMakeLists.txt    | 2 ++
 mlir/include/mlir/Dialect/MLProgram/Transforms/CMakeLists.txt | 2 ++
 mlir/include/mlir/Dialect/Math/Transforms/CMakeLists.txt      | 2 ++
 mlir/include/mlir/Dialect/MemRef/Transforms/CMakeLists.txt    | 2 ++
 mlir/include/mlir/Dialect/OpenACC/Transforms/CMakeLists.txt   | 2 ++
 mlir/include/mlir/Dialect/OpenMP/Transforms/CMakeLists.txt    | 4 +++-
 mlir/include/mlir/Dialect/Quant/Transforms/CMakeLists.txt     | 2 ++
 mlir/include/mlir/Dialect/SCF/Transforms/CMakeLists.txt       | 2 ++
 mlir/include/mlir/Dialect/SPIRV/Transforms/CMakeLists.txt     | 3 ++-
 mlir/include/mlir/Dialect/Shape/Transforms/CMakeLists.txt     | 2 ++
 mlir/include/mlir/Dialect/Shard/Transforms/CMakeLists.txt     | 2 ++
 mlir/include/mlir/Dialect/Tensor/Transforms/CMakeLists.txt    | 2 ++
 mlir/include/mlir/Dialect/Tosa/Transforms/CMakeLists.txt      | 4 ++++
 mlir/include/mlir/Dialect/Transform/Transforms/CMakeLists.txt | 2 ++
 mlir/include/mlir/Dialect/Vector/Transforms/CMakeLists.txt    | 2 ++
 mlir/include/mlir/Dialect/XeGPU/Transforms/CMakeLists.txt     | 2 ++
 45 files changed, 93 insertions(+), 2 deletions(-)

diff --git a/mlir/include/mlir-c/Dialect/AMDGPU.h b/mlir/include/mlir-c/Dialect/AMDGPU.h
index 83cfe8f5dd65e..acfdb1e1b5008 100644
--- a/mlir/include/mlir-c/Dialect/AMDGPU.h
+++ b/mlir/include/mlir-c/Dialect/AMDGPU.h
@@ -55,4 +55,6 @@ MLIR_CAPI_EXPORTED MlirType mlirAMDGPUTDMGatherBaseTypeGet(MlirContext ctx,
 }
 #endif
 
+#include "mlir/Dialect/AMDGPU/Transforms/Passes.capi.h.inc"
+
 #endif // MLIR_C_DIALECT_AMDGPU_H
diff --git a/mlir/include/mlir-c/Dialect/Affine.h b/mlir/include/mlir-c/Dialect/Affine.h
index 0f4e010f91255..a5359c7ffc157 100644
--- a/mlir/include/mlir-c/Dialect/Affine.h
+++ b/mlir/include/mlir-c/Dialect/Affine.h
@@ -22,4 +22,6 @@ MLIR_DECLARE_CAPI_DIALECT_REGISTRATION(Affine, affine);
 }
 #endif
 
+#include "mlir/Dialect/Affine/Transforms/Passes.capi.h.inc"
+
 #endif // MLIR_C_DIALECT_AFFINE_H
diff --git a/mlir/include/mlir-c/Dialect/Arith.h b/mlir/include/mlir-c/Dialect/Arith.h
index 41e7cb2b3a34a..af2e7c2e69287 100644
--- a/mlir/include/mlir-c/Dialect/Arith.h
+++ b/mlir/include/mlir-c/Dialect/Arith.h
@@ -30,4 +30,6 @@ MLIR_DECLARE_CAPI_DIALECT_REGISTRATION(Arith, arith);
 }
 #endif
 
+#include "mlir/Dialect/Arith/Transforms/Passes.capi.h.inc"
+
 #endif // MLIR_C_DIALECT_ARITH_H
diff --git a/mlir/include/mlir-c/Dialect/ArmSME.h b/mlir/include/mlir-c/Dialect/ArmSME.h
index a27f38e5b65f4..e3c628f3a6df9 100644
--- a/mlir/include/mlir-c/Dialect/ArmSME.h
+++ b/mlir/include/mlir-c/Dialect/ArmSME.h
@@ -22,4 +22,6 @@ MLIR_DECLARE_CAPI_DIALECT_REGISTRATION(ArmSME, arm_sme);
 }
 #endif
 
+#include "mlir/Dialect/ArmSME/Transforms/Passes.capi.h.inc"
+
 #endif // MLIR_C_DIALECT_ARMSME_H
diff --git a/mlir/include/mlir-c/Dialect/ArmSVE.h b/mlir/include/mlir-c/Dialect/ArmSVE.h
index 8f5838c630446..e9d63572c6fff 100644
--- a/mlir/include/mlir-c/Dialect/ArmSVE.h
+++ b/mlir/include/mlir-c/Dialect/ArmSVE.h
@@ -22,4 +22,6 @@ MLIR_DECLARE_CAPI_DIALECT_REGISTRATION(ArmSVE, arm_sve);
 }
 #endif
 
+#include "mlir/Dialect/ArmSVE/Transforms/Passes.capi.h.inc"
+
 #endif // MLIR_C_DIALECT_ARMSME_H
diff --git a/mlir/include/mlir-c/Dialect/Bufferization.h b/mlir/include/mlir-c/Dialect/Bufferization.h
index 9c4ef19e5493d..1bdbd14603028 100644
--- a/mlir/include/mlir-c/Dialect/Bufferization.h
+++ b/mlir/include/mlir-c/Dialect/Bufferization.h
@@ -23,4 +23,6 @@ MLIR_DECLARE_CAPI_DIALECT_REGISTRATION(Bufferization, bufferization);
 }
 #endif
 
+#include "mlir/Dialect/Bufferization/Transforms/Passes.capi.h.inc"
+
 #endif // MLIR_C_DIALECT_BUFFERIZATION_H
diff --git a/mlir/include/mlir-c/Dialect/EmitC.h b/mlir/include/mlir-c/Dialect/EmitC.h
index a0e3ea08a5a9f..ff59e4e6cafa9 100644
--- a/mlir/include/mlir-c/Dialect/EmitC.h
+++ b/mlir/include/mlir-c/Dialect/EmitC.h
@@ -134,4 +134,6 @@ MLIR_CAPI_EXPORTED MlirTypeID mlirEmitCOpaqueAttrGetTypeID(void);
 }
 #endif
 
+#include "mlir/Dialect/EmitC/Transforms/Passes.capi.h.inc"
+
 #endif // MLIR_C_DIALECT_EmitC_H
diff --git a/mlir/include/mlir-c/Dialect/Func.h b/mlir/include/mlir-c/Dialect/Func.h
index 001f915af1054..30204273bc774 100644
--- a/mlir/include/mlir-c/Dialect/Func.h
+++ b/mlir/include/mlir-c/Dialect/Func.h
@@ -43,4 +43,6 @@ MLIR_CAPI_EXPORTED void mlirFuncSetResultAttr(MlirOperation op, intptr_t pos,
 }
 #endif
 
+#include "mlir/Dialect/Func/Transforms/Passes.capi.h.inc"
+
 #endif // MLIR_C_DIALECT_FUNC_H
diff --git a/mlir/include/mlir-c/Dialect/LLVM.h b/mlir/include/mlir-c/Dialect/LLVM.h
index cc7f09f71d028..de677d1d5c6d1 100644
--- a/mlir/include/mlir-c/Dialect/LLVM.h
+++ b/mlir/include/mlir-c/Dialect/LLVM.h
@@ -399,4 +399,6 @@ mlirLLVMDIModuleAttrGetScope(MlirAttribute diModule);
 }
 #endif
 
+#include "mlir/Dialect/LLVMIR/Transforms/Passes.capi.h.inc"
+
 #endif // MLIR_C_DIALECT_LLVM_H
diff --git a/mlir/include/mlir-c/Dialect/MLProgram.h b/mlir/include/mlir-c/Dialect/MLProgram.h
index 0874955e35b27..df3a1f28e6ac6 100644
--- a/mlir/include/mlir-c/Dialect/MLProgram.h
+++ b/mlir/include/mlir-c/Dialect/MLProgram.h
@@ -22,4 +22,6 @@ MLIR_DECLARE_CAPI_DIALECT_REGISTRATION(MLProgram, ml_program);
 }
 #endif
 
+#include "mlir/Dialect/MLProgram/Transforms/Passes.capi.h.inc"
+
 #endif // MLIR_C_DIALECT_MLPROGRAM_H
diff --git a/mlir/include/mlir-c/Dialect/Math.h b/mlir/include/mlir-c/Dialect/Math.h
index 5269e1a1b2cb0..5dd975f1a86a4 100644
--- a/mlir/include/mlir-c/Dialect/Math.h
+++ b/mlir/include/mlir-c/Dialect/Math.h
@@ -30,4 +30,6 @@ MLIR_DECLARE_CAPI_DIALECT_REGISTRATION(Math, math);
 }
 #endif
 
+#include "mlir/Dialect/Math/Transforms/Passes.capi.h.inc"
+
 #endif // MLIR_C_DIALECT_MATH_H
diff --git a/mlir/include/mlir-c/Dialect/MemRef.h b/mlir/include/mlir-c/Dialect/MemRef.h
index 087a4b3f85b1d..327fe25143f8e 100644
--- a/mlir/include/mlir-c/Dialect/MemRef.h
+++ b/mlir/include/mlir-c/Dialect/MemRef.h
@@ -30,4 +30,6 @@ MLIR_DECLARE_CAPI_DIALECT_REGISTRATION(MemRef, memref);
 }
 #endif
 
+#include "mlir/Dialect/MemRef/Transforms/Passes.capi.h.inc"
+
 #endif // MLIR_C_DIALECT_MEMREF_H
diff --git a/mlir/include/mlir-c/Dialect/NVGPU.h b/mlir/include/mlir-c/Dialect/NVGPU.h
index e58015a4a3421..b76cf2587c83b 100644
--- a/mlir/include/mlir-c/Dialect/NVGPU.h
+++ b/mlir/include/mlir-c/Dialect/NVGPU.h
@@ -33,4 +33,6 @@ MLIR_CAPI_EXPORTED MlirType mlirNVGPUTensorMapDescriptorTypeGet(
 }
 #endif
 
+#include "mlir/Dialect/NVGPU/Transforms/Passes.capi.h.inc"
+
 #endif // MLIR_C_DIALECT_NVGPU_H
diff --git a/mlir/include/mlir-c/Dialect/OpenACC.h b/mlir/include/mlir-c/Dialect/OpenACC.h
index 8ceb004b0f653..d552b8561b8d2 100644
--- a/mlir/include/mlir-c/Dialect/OpenACC.h
+++ b/mlir/include/mlir-c/Dialect/OpenACC.h
@@ -23,4 +23,6 @@ MLIR_DECLARE_CAPI_DIALECT_REGISTRATION(OpenACC, acc);
 }
 #endif
 
+#include "mlir/Dialect/OpenACC/Transforms/Passes.capi.h.inc"
+
 #endif // MLIR_C_DIALECT_OPENACC_H
diff --git a/mlir/include/mlir-c/Dialect/SCF.h b/mlir/include/mlir-c/Dialect/SCF.h
index 75f1b6839a21d..4d536b004f5ee 100644
--- a/mlir/include/mlir-c/Dialect/SCF.h
+++ b/mlir/include/mlir-c/Dialect/SCF.h
@@ -22,4 +22,6 @@ MLIR_DECLARE_CAPI_DIALECT_REGISTRATION(SCF, scf);
 }
 #endif
 
+#include "mlir/Dialect/SCF/Transforms/Passes.capi.h.inc"
+
 #endif // MLIR_C_DIALECT_SCF_H
diff --git a/mlir/include/mlir-c/Dialect/SPIRV.h b/mlir/include/mlir-c/Dialect/SPIRV.h
index f22708c9db043..8b3af0f39b8b8 100644
--- a/mlir/include/mlir-c/Dialect/SPIRV.h
+++ b/mlir/include/mlir-c/Dialect/SPIRV.h
@@ -23,4 +23,6 @@ MLIR_DECLARE_CAPI_DIALECT_REGISTRATION(SPIRV, spirv);
 }
 #endif
 
+#include "mlir/Dialect/SPIRV/Transforms/Passes.capi.h.inc"
+
 #endif // MLIR_C_DIALECT_SPIRV_H
diff --git a/mlir/include/mlir-c/Dialect/Shape.h b/mlir/include/mlir-c/Dialect/Shape.h
index 3fe3ddf5c578d..5681fdf8cbe4c 100644
--- a/mlir/include/mlir-c/Dialect/Shape.h
+++ b/mlir/include/mlir-c/Dialect/Shape.h
@@ -22,4 +22,6 @@ MLIR_DECLARE_CAPI_DIALECT_REGISTRATION(Shape, shape);
 }
 #endif
 
+#include "mlir/Dialect/Shape/Transforms/Passes.capi.h.inc"
+
 #endif // MLIR_C_DIALECT_SHAPE_H
diff --git a/mlir/include/mlir-c/Dialect/Tensor.h b/mlir/include/mlir-c/Dialect/Tensor.h
index 74cbc5a6f0fe1..6fb52fa00177c 100644
--- a/mlir/include/mlir-c/Dialect/Tensor.h
+++ b/mlir/include/mlir-c/Dialect/Tensor.h
@@ -22,4 +22,6 @@ MLIR_DECLARE_CAPI_DIALECT_REGISTRATION(Tensor, tensor);
 }
 #endif
 
+#include "mlir/Dialect/Tensor/Transforms/Passes.capi.h.inc"
+
 #endif // MLIR_C_DIALECT_TENSOR_H
diff --git a/mlir/include/mlir-c/Dialect/Tosa.h b/mlir/include/mlir-c/Dialect/Tosa.h
index b16a1d86c258a..8550f47ee0bbf 100644
--- a/mlir/include/mlir-c/Dialect/Tosa.h
+++ b/mlir/include/mlir-c/Dialect/Tosa.h
@@ -22,4 +22,6 @@ MLIR_DECLARE_CAPI_DIALECT_REGISTRATION(Tosa, tosa);
 }
 #endif
 
+#include "mlir/Dialect/Tosa/Transforms/Passes.capi.h.inc"
+
 #endif // MLIR_C_DIALECT_TOSA_H
diff --git a/mlir/include/mlir-c/Dialect/Transform.h b/mlir/include/mlir-c/Dialect/Transform.h
index 02c99b5921882..f5a02aba9e2be 100644
--- a/mlir/include/mlir-c/Dialect/Transform.h
+++ b/mlir/include/mlir-c/Dialect/Transform.h
@@ -80,4 +80,6 @@ MLIR_CAPI_EXPORTED MlirType mlirTransformParamTypeGetType(MlirType type);
 }
 #endif
 
+#include "mlir/Dialect/Transform/Transforms/Passes.capi.h.inc"
+
 #endif // MLIR_C_DIALECT_TRANSFORM_H
diff --git a/mlir/include/mlir-c/Dialect/Vector.h b/mlir/include/mlir-c/Dialect/Vector.h
index 6256c82d172ce..0afb93b0d175e 100644
--- a/mlir/include/mlir-c/Dialect/Vector.h
+++ b/mlir/include/mlir-c/Dialect/Vector.h
@@ -30,4 +30,6 @@ MLIR_DECLARE_CAPI_DIALECT_REGISTRATION(Vector, vector);
 }
 #endif
 
+#include "mlir/Dialect/Vector/Transforms/Passes.capi.h.inc"
+
 #endif // MLIR_C_DIALECT_VECTOR_H
diff --git a/mlir/include/mlir/Dialect/AMDGPU/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/AMDGPU/Transforms/CMakeLists.txt
index 1371923d017ef..81cb7e04a3c4d 100644
--- a/mlir/include/mlir/Dialect/AMDGPU/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/AMDGPU/Transforms/CMakeLists.txt
@@ -1,5 +1,7 @@
 set(LLVM_TARGET_DEFINITIONS Passes.td)
 mlir_tablegen(Passes.h.inc -gen-pass-decls -name AMDGPU)
+mlir_tablegen(Passes.capi.h.inc -gen-pass-capi-header --prefix AMDGPU)
+mlir_tablegen(Passes.capi.cpp.inc -gen-pass-capi-impl --prefix AMDGPU)
 add_mlir_dialect_tablegen_target(MLIRAMDGPUTransformsIncGen)
 
 add_mlir_doc(Passes AMDGPUPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Affine/CMakeLists.txt b/mlir/include/mlir/Dialect/Affine/CMakeLists.txt
index b4b904eebd4b1..90342e1ceaf88 100644
--- a/mlir/include/mlir/Dialect/Affine/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Affine/CMakeLists.txt
@@ -3,6 +3,8 @@ add_subdirectory(TransformOps)
 
 set(LLVM_TARGET_DEFINITIONS Passes.td)
 mlir_tablegen(Passes.h.inc -gen-pass-decls -name Affine)
+mlir_tablegen(Passes.capi.h.inc -gen-pass-capi-header --prefix Affine)
+mlir_tablegen(Passes.capi.cpp.inc -gen-pass-capi-impl --prefix Affine)
 add_mlir_dialect_tablegen_target(MLIRAffinePassIncGen)
 
 add_mlir_doc(Passes AffinePasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Arith/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/Arith/Transforms/CMakeLists.txt
index 7ae716554601e..c540241bd2667 100644
--- a/mlir/include/mlir/Dialect/Arith/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Arith/Transforms/CMakeLists.txt
@@ -1,5 +1,7 @@
 set(LLVM_TARGET_DEFINITIONS Passes.td)
 mlir_tablegen(Passes.h.inc -gen-pass-decls -name Arith)
+mlir_tablegen(Passes.capi.h.inc -gen-pass-capi-header --prefix Arith)
+mlir_tablegen(Passes.capi.cpp.inc -gen-pass-capi-impl --prefix Arith)
 add_mlir_dialect_tablegen_target(MLIRArithTransformsIncGen)
 
 add_mlir_doc(Passes ArithPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/ArmSME/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmSME/Transforms/CMakeLists.txt
index a96d1d966277c..41020bc1d1546 100644
--- a/mlir/include/mlir/Dialect/ArmSME/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmSME/Transforms/CMakeLists.txt
@@ -2,6 +2,8 @@ set(LLVM_TARGET_DEFINITIONS Passes.td)
 mlir_tablegen(Passes.h.inc -gen-pass-decls -name ArmSME)
 mlir_tablegen(PassesEnums.h.inc -gen-enum-decls)
 mlir_tablegen(PassesEnums.cpp.inc -gen-enum-defs)
+mlir_tablegen(Passes.capi.h.inc -gen-pass-capi-header --prefix ArmSME)
+mlir_tablegen(Passes.capi.cpp.inc -gen-pass-capi-impl --prefix ArmSME)
 add_mlir_dialect_tablegen_target(MLIRArmSMETransformsIncGen)
 
 add_mlir_doc(Passes ArmSMEPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/ArmSVE/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmSVE/Transforms/CMakeLists.txt
index 39601d67ec4c3..4999fd2cef1b5 100644
--- a/mlir/include/mlir/Dialect/ArmSVE/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmSVE/Transforms/CMakeLists.txt
@@ -1,5 +1,7 @@
 set(LLVM_TARGET_DEFINITIONS Passes.td)
 mlir_tablegen(Passes.h.inc -gen-pass-decls -name ArmSVE)
+mlir_tablegen(Passes.capi.h.inc -gen-pass-capi-header --prefix ArmSVE)
+mlir_tablegen(Passes.capi.cpp.inc -gen-pass-capi-impl --prefix ArmSVE)
 add_mlir_dialect_tablegen_target(MLIRArmSVEPassIncGen)
 
 add_mlir_doc(Passes ArmSVEPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Bufferization/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/Bufferization/Transforms/CMakeLists.txt
index dcdd49ca201ef..09d0d2360b1f6 100644
--- a/mlir/include/mlir/Dialect/Bufferization/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Bufferization/Transforms/CMakeLists.txt
@@ -1,5 +1,7 @@
 set(LLVM_TARGET_DEFINITIONS Passes.td)
 mlir_tablegen(Passes.h.inc -gen-pass-decls -name Bufferization)
+mlir_tablegen(Passes.capi.h.inc -gen-pass-capi-header --prefix Bufferization)
+mlir_tablegen(Passes.capi.cpp.inc -gen-pass-capi-impl --prefix Bufferization)
 add_mlir_dialect_tablegen_target(MLIRBufferizationPassIncGen)
 
 add_mlir_doc(Passes BufferizationPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/EmitC/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/EmitC/Transforms/CMakeLists.txt
index bf3b4b2902de8..3a35aa0a7c1b0 100644
--- a/mlir/include/mlir/Dialect/EmitC/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/EmitC/Transforms/CMakeLists.txt
@@ -1,5 +1,7 @@
 set(LLVM_TARGET_DEFINITIONS Passes.td)
 mlir_tablegen(Passes.h.inc -gen-pass-decls -name EmitC)
+mlir_tablegen(Passes.capi.h.inc -gen-pass-capi-header --prefix EmitC)
+mlir_tablegen(Passes.capi.cpp.inc -gen-pass-capi-impl --prefix EmitC)
 add_mlir_dialect_tablegen_target(MLIREmitCTransformsIncGen)
 
 add_mlir_doc(Passes EmitCPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Func/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/Func/Transforms/CMakeLists.txt
index 4ca022859c03a..3819bada90ee0 100644
--- a/mlir/include/mlir/Dialect/Func/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Func/Transforms/CMakeLists.txt
@@ -1,5 +1,7 @@
 set(LLVM_TARGET_DEFINITIONS Passes.td)
 mlir_tablegen(Passes.h.inc -gen-pass-decls -name Func)
+mlir_tablegen(Passes.capi.h.inc -gen-pass-capi-header --prefix Func)
+mlir_tablegen(Passes.capi.cpp.inc -gen-pass-capi-impl --prefix Func)
 add_mlir_dialect_tablegen_target(MLIRFuncTransformsIncGen)
 
 add_mlir_doc(Passes FuncPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/LLVMIR/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/LLVMIR/Transforms/CMakeLists.txt
index 04e5a0fe85450..eaca9e9cc5f1d 100644
--- a/mlir/include/mlir/Dialect/LLVMIR/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/LLVMIR/Transforms/CMakeLists.txt
@@ -1,5 +1,7 @@
 set(LLVM_TARGET_DEFINITIONS Passes.td)
 mlir_tablegen(Passes.h.inc -gen-pass-decls -name LLVM)
+mlir_tablegen(Passes.capi.h.inc -gen-pass-capi-header --prefix LLVM)
+mlir_tablegen(Passes.capi.cpp.inc -gen-pass-capi-impl --prefix LLVM)
 add_mlir_dialect_tablegen_target(MLIRLLVMPassIncGen)
 
 add_mlir_doc(Passes LLVMPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/MLProgram/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/MLProgram/Transforms/CMakeLists.txt
index 5fa6bdcc5d79c..657c86e401332 100644
--- a/mlir/include/mlir/Dialect/MLProgram/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/MLProgram/Transforms/CMakeLists.txt
@@ -1,5 +1,7 @@
 set(LLVM_TARGET_DEFINITIONS Passes.td)
 mlir_tablegen(Passes.h.inc -gen-pass-decls -name MLProgram)
+mlir_tablegen(Passes.capi.h.inc -gen-pass-capi-header --prefix MLProgram)
+mlir_tablegen(Passes.capi.cpp.inc -gen-pass-capi-impl --prefix MLProgram)
 add_mlir_dialect_tablegen_target(MLIRMLProgramPassIncGen)
 
 add_mlir_doc(Passes MLProgramPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Math/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/Math/Transforms/CMakeLists.txt
index c452372b51e1b..497ac08964c7d 100644
--- a/mlir/include/mlir/Dialect/Math/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Math/Transforms/CMakeLists.txt
@@ -1,5 +1,7 @@
 set(LLVM_TARGET_DEFINITIONS Passes.td)
 mlir_tablegen(Passes.h.inc -gen-pass-decls -name Math)
+mlir_tablegen(Passes.capi.h.inc -gen-pass-capi-header --prefix Math)
+mlir_tablegen(Passes.capi.cpp.inc -gen-pass-capi-impl --prefix Math)
 add_mlir_dialect_tablegen_target(MLIRMathTransformsIncGen)
 
 add_mlir_doc(Passes MathPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/MemRef/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/MemRef/Transforms/CMakeLists.txt
index e46eae55e57b0..31437448a8bf4 100644
--- a/mlir/include/mlir/Dialect/MemRef/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/MemRef/Transforms/CMakeLists.txt
@@ -1,5 +1,7 @@
 set(LLVM_TARGET_DEFINITIONS Passes.td)
 mlir_tablegen(Passes.h.inc -gen-pass-decls -name MemRef)
+mlir_tablegen(Passes.capi.h.inc -gen-pass-capi-header --prefix MemRef)
+mlir_tablegen(Passes.capi.cpp.inc -gen-pass-capi-impl --prefix MemRef)
 add_mlir_dialect_tablegen_target(MLIRMemRefPassIncGen)
 
 add_mlir_doc(Passes MemRefPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/OpenACC/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/OpenACC/Transforms/CMakeLists.txt
index 9459f8b03946b..81e987a4e8933 100644
--- a/mlir/include/mlir/Dialect/OpenACC/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/OpenACC/Transforms/CMakeLists.txt
@@ -1,5 +1,7 @@
 set(LLVM_TARGET_DEFINITIONS Passes.td)
 mlir_tablegen(Passes.h.inc -gen-pass-decls -name OpenACC)
+mlir_tablegen(Passes.capi.h.inc -gen-pass-capi-header --prefix OpenACC)
+mlir_tablegen(Passes.capi.cpp.inc -gen-pass-capi-impl --prefix OpenACC)
 add_mlir_dialect_tablegen_target(MLIROpenACCPassIncGen)
 
 add_mlir_doc(Passes OpenACCPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/OpenMP/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/OpenMP/Transforms/CMakeLists.txt
index 22f0d92ea4cbf..f90f4ec07f09b 100644
--- a/mlir/include/mlir/Dialect/OpenMP/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/OpenMP/Transforms/CMakeLists.txt
@@ -1,5 +1,7 @@
 set(LLVM_TARGET_DEFINITIONS Passes.td)
 mlir_tablegen(Passes.h.inc -gen-pass-decls -name OpenMP)
-add_public_tablegen_target(MLIROpenMPPassIncGen)
+mlir_tablegen(Passes.capi.h.inc -gen-pass-capi-header --prefix OpenMP)
+mlir_tablegen(Passes.capi.cpp.inc -gen-pass-capi-impl --prefix OpenMP)
+add_mlir_dialect_tablegen_target(MLIROpenMPPassIncGen)
 
 add_mlir_doc(Passes OpenMPPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Quant/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/Quant/Transforms/CMakeLists.txt
index a920f84c6f4b7..43120df51d931 100644
--- a/mlir/include/mlir/Dialect/Quant/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Quant/Transforms/CMakeLists.txt
@@ -1,5 +1,7 @@
 set(LLVM_TARGET_DEFINITIONS Passes.td)
 mlir_tablegen(Passes.h.inc -gen-pass-decls -name Quant)
+mlir_tablegen(Passes.capi.h.inc -gen-pass-capi-header --prefix Quant)
+mlir_tablegen(Passes.capi.cpp.inc -gen-pass-capi-impl --prefix Quant)
 add_mlir_dialect_tablegen_target(MLIRQuantTransformsIncGen)
 
 add_mlir_doc(Passes QuantPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/SCF/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/SCF/Transforms/CMakeLists.txt
index c1fda9e48a01d..ed4b365594628 100644
--- a/mlir/include/mlir/Dialect/SCF/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/SCF/Transforms/CMakeLists.txt
@@ -1,5 +1,7 @@
 set(LLVM_TARGET_DEFINITIONS Passes.td)
 mlir_tablegen(Passes.h.inc -gen-pass-decls -name SCF)
+mlir_tablegen(Passes.capi.h.inc -gen-pass-capi-header --prefix SCF)
+mlir_tablegen(Passes.capi.cpp.inc -gen-pass-capi-impl --prefix SCF)
 add_mlir_dialect_tablegen_target(MLIRSCFPassIncGen)
 
 add_mlir_doc(Passes SCFPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/SPIRV/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/SPIRV/Transforms/CMakeLists.txt
index d0990c7acfa25..a3eb69764a4cd 100644
--- a/mlir/include/mlir/Dialect/SPIRV/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/SPIRV/Transforms/CMakeLists.txt
@@ -1,6 +1,7 @@
 set(LLVM_TARGET_DEFINITIONS Passes.td)
 mlir_tablegen(Passes.h.inc -gen-pass-decls -name SPIRV)
+mlir_tablegen(Passes.capi.h.inc -gen-pass-capi-header --prefix SPIRV)
+mlir_tablegen(Passes.capi.cpp.inc -gen-pass-capi-impl --prefix SPIRV)
 add_mlir_dialect_tablegen_target(MLIRSPIRVPassIncGen)
 
 add_mlir_doc(Passes SPIRVPasses ./ -gen-pass-doc)
-
diff --git a/mlir/include/mlir/Dialect/Shape/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/Shape/Transforms/CMakeLists.txt
index 991bd68e24d62..5f006d9cb34ca 100644
--- a/mlir/include/mlir/Dialect/Shape/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Shape/Transforms/CMakeLists.txt
@@ -1,5 +1,7 @@
 set(LLVM_TARGET_DEFINITIONS Passes.td)
 mlir_tablegen(Passes.h.inc -gen-pass-decls -name Shape)
+mlir_tablegen(Passes.capi.h.inc -gen-pass-capi-header --prefix Shape)
+mlir_tablegen(Passes.capi.cpp.inc -gen-pass-capi-impl --prefix Shape)
 add_mlir_dialect_tablegen_target(MLIRShapeTransformsIncGen)
 
 add_mlir_doc(Passes ShapePasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Shard/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/Shard/Transforms/CMakeLists.txt
index 840ff9eabdc54..dec7d63c01974 100644
--- a/mlir/include/mlir/Dialect/Shard/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Shard/Transforms/CMakeLists.txt
@@ -1,5 +1,7 @@
 set(LLVM_TARGET_DEFINITIONS Passes.td)
 mlir_tablegen(Passes.h.inc -gen-pass-decls -name Shard)
+mlir_tablegen(Passes.capi.h.inc -gen-pass-capi-header --prefix Shard)
+mlir_tablegen(Passes.capi.cpp.inc -gen-pass-capi-impl --prefix Shard)
 add_mlir_dialect_tablegen_target(MLIRShardPassIncGen)
 
 add_mlir_doc(Passes ShardPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Tensor/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/Tensor/Transforms/CMakeLists.txt
index 5c9c9b289bd73..e07a98f72d192 100644
--- a/mlir/include/mlir/Dialect/Tensor/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Tensor/Transforms/CMakeLists.txt
@@ -1,5 +1,7 @@
 set(LLVM_TARGET_DEFINITIONS Passes.td)
 mlir_tablegen(Passes.h.inc -gen-pass-decls -name Tensor)
+mlir_tablegen(Passes.capi.h.inc -gen-pass-capi-header --prefix Tensor)
+mlir_tablegen(Passes.capi.cpp.inc -gen-pass-capi-impl --prefix Tensor)
 add_mlir_dialect_tablegen_target(MLIRTensorTransformsIncGen)
 
 add_mlir_doc(Passes TensorPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Tosa/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/Tosa/Transforms/CMakeLists.txt
index f52b82a964da9..d528ea8539146 100644
--- a/mlir/include/mlir/Dialect/Tosa/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Tosa/Transforms/CMakeLists.txt
@@ -1,5 +1,9 @@
 set(LLVM_TARGET_DEFINITIONS Passes.td)
 mlir_tablegen(Passes.h.inc -gen-pass-decls -name TosaOpt)
+mlir_tablegen(PassesEnums.h.inc -gen-enum-decls)
+mlir_tablegen(PassesEnums.cpp.inc -gen-enum-defs)
+mlir_tablegen(Passes.capi.h.inc -gen-pass-capi-header --prefix Tosa)
+mlir_tablegen(Passes.capi.cpp.inc -gen-pass-capi-impl --prefix Tosa)
 add_mlir_dialect_tablegen_target(MLIRTosaPassIncGen)
 
 add_mlir_doc(Passes TosaPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Transform/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/Transform/Transforms/CMakeLists.txt
index b804802eef2b9..057a9cefefff2 100644
--- a/mlir/include/mlir/Dialect/Transform/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Transform/Transforms/CMakeLists.txt
@@ -1,5 +1,7 @@
 set(LLVM_TARGET_DEFINITIONS Passes.td)
 mlir_tablegen(Passes.h.inc -gen-pass-decls -name Transform)
+mlir_tablegen(Passes.capi.h.inc -gen-pass-capi-header --prefix Transform)
+mlir_tablegen(Passes.capi.cpp.inc -gen-pass-capi-impl --prefix Transform)
 add_mlir_dialect_tablegen_target(MLIRTransformDialectTransformsIncGen)
 
 add_mlir_doc(Passes TransformPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/Vector/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/Vector/Transforms/CMakeLists.txt
index c3c7ec93564c9..52e3741880725 100644
--- a/mlir/include/mlir/Dialect/Vector/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Vector/Transforms/CMakeLists.txt
@@ -4,6 +4,8 @@ mlir_tablegen(VectorTransformsEnums.cpp.inc -gen-enum-defs)
 
 set(LLVM_TARGET_DEFINITIONS Passes.td)
 mlir_tablegen(Passes.h.inc -gen-pass-decls -name Vector)
+mlir_tablegen(Passes.capi.h.inc -gen-pass-capi-header --prefix Vector)
+mlir_tablegen(Passes.capi.cpp.inc -gen-pass-capi-impl --prefix Vector)
 add_mlir_dialect_tablegen_target(MLIRVectorTransformsIncGen)
 
 add_mlir_doc(Passes VectorPasses ./ -gen-pass-doc)
diff --git a/mlir/include/mlir/Dialect/XeGPU/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/XeGPU/Transforms/CMakeLists.txt
index 77ca255bf4da8..0f4b8d8d55ccc 100644
--- a/mlir/include/mlir/Dialect/XeGPU/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/XeGPU/Transforms/CMakeLists.txt
@@ -1,5 +1,7 @@
 set(LLVM_TARGET_DEFINITIONS Passes.td)
 mlir_tablegen(Passes.h.inc -gen-pass-decls -name XeGPU)
+mlir_tablegen(Passes.capi.h.inc -gen-pass-capi-header --prefix XeGPU)
+mlir_tablegen(Passes.capi.cpp.inc -gen-pass-capi-impl --prefix XeGPU)
 add_mlir_dialect_tablegen_target(MLIRXeGPUPassIncGen)
 
 add_mlir_doc(Passes XeGPUPasses ./ -gen-pass-doc)

>From 8dd509856a9fef9e6a77e36bf2d033db3d5d4cba Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sergio=20S=C3=A1nchez=20Ram=C3=ADrez?=
 <15837247+mofeing at users.noreply.github.com>
Date: Tue, 13 Aug 2024 19:22:40 +0200
Subject: [PATCH 04/16] Apply suggestions from code review

---
 mlir/include/mlir/Dialect/ArmSME/Transforms/CMakeLists.txt | 2 --
 1 file changed, 2 deletions(-)

diff --git a/mlir/include/mlir/Dialect/ArmSME/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmSME/Transforms/CMakeLists.txt
index 41020bc1d1546..f95377043481b 100644
--- a/mlir/include/mlir/Dialect/ArmSME/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmSME/Transforms/CMakeLists.txt
@@ -1,7 +1,5 @@
 set(LLVM_TARGET_DEFINITIONS Passes.td)
 mlir_tablegen(Passes.h.inc -gen-pass-decls -name ArmSME)
-mlir_tablegen(PassesEnums.h.inc -gen-enum-decls)
-mlir_tablegen(PassesEnums.cpp.inc -gen-enum-defs)
 mlir_tablegen(Passes.capi.h.inc -gen-pass-capi-header --prefix ArmSME)
 mlir_tablegen(Passes.capi.cpp.inc -gen-pass-capi-impl --prefix ArmSME)
 add_mlir_dialect_tablegen_target(MLIRArmSMETransformsIncGen)

>From e5a1d23c00055a2e7e2e5dccf3a0dce0b5cac526 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sergio=20S=C3=A1nchez=20Ram=C3=ADrez?=
 <15837247+mofeing at users.noreply.github.com>
Date: Thu, 15 Aug 2024 16:45:35 +0200
Subject: [PATCH 05/16] Update
 mlir/include/mlir/Dialect/ArmSME/Transforms/CMakeLists.txt

---
 mlir/include/mlir/Dialect/ArmSME/Transforms/CMakeLists.txt | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/mlir/include/mlir/Dialect/ArmSME/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/ArmSME/Transforms/CMakeLists.txt
index f95377043481b..964d91cd0c7ee 100644
--- a/mlir/include/mlir/Dialect/ArmSME/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/ArmSME/Transforms/CMakeLists.txt
@@ -2,6 +2,8 @@ set(LLVM_TARGET_DEFINITIONS Passes.td)
 mlir_tablegen(Passes.h.inc -gen-pass-decls -name ArmSME)
 mlir_tablegen(Passes.capi.h.inc -gen-pass-capi-header --prefix ArmSME)
 mlir_tablegen(Passes.capi.cpp.inc -gen-pass-capi-impl --prefix ArmSME)
+mlir_tablegen(PassesEnums.h.inc -gen-enum-decls)
+mlir_tablegen(PassesEnums.cpp.inc -gen-enum-defs)
 add_mlir_dialect_tablegen_target(MLIRArmSMETransformsIncGen)
 
 add_mlir_doc(Passes ArmSMEPasses ./ -gen-pass-doc)

>From 8e55b2e7569a897898b82e6f2cf9b8a63aced00b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sergio=20S=C3=A1nchez=20Ram=C3=ADrez?=
 <mofeing+github at gmail.com>
Date: Mon, 22 Dec 2025 19:37:46 +0100
Subject: [PATCH 06/16] Fix path of X86Vector.h

---
 mlir/include/mlir-c/{ => Dialect}/X86Vector.h | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename mlir/include/mlir-c/{ => Dialect}/X86Vector.h (100%)

diff --git a/mlir/include/mlir-c/X86Vector.h b/mlir/include/mlir-c/Dialect/X86Vector.h
similarity index 100%
rename from mlir/include/mlir-c/X86Vector.h
rename to mlir/include/mlir-c/Dialect/X86Vector.h

>From 5dbb4c74c6e4fed7a7bcb5cf3ebf8e1b6972679f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sergio=20S=C3=A1nchez=20Ram=C3=ADrez?=
 <mofeing+github at gmail.com>
Date: Mon, 22 Dec 2025 19:49:58 +0100
Subject: [PATCH 07/16] include Shard transform passes on CAPI

---
 mlir/include/mlir-c/Dialect/Shard.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/mlir/include/mlir-c/Dialect/Shard.h b/mlir/include/mlir-c/Dialect/Shard.h
index 39fe2d59b44d3..ba85a80f2144f 100644
--- a/mlir/include/mlir-c/Dialect/Shard.h
+++ b/mlir/include/mlir-c/Dialect/Shard.h
@@ -22,4 +22,6 @@ MLIR_DECLARE_CAPI_DIALECT_REGISTRATION(Shard, shard);
 }
 #endif
 
+#include "mlir/Dialect/Shard/Transforms/Passes.capi.h.inc"
+
 #endif // MLIR_C_DIALECT_SHARD_H

>From c6d763de1d950aa2171e22728a744f3e474de43a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sergio=20S=C3=A1nchez=20Ram=C3=ADrez?=
 <mofeing+github at gmail.com>
Date: Mon, 22 Dec 2025 20:05:53 +0100
Subject: [PATCH 08/16] Rename references from TosaOpt to Tosa

---
 mlir/include/mlir/Dialect/Tosa/Transforms/CMakeLists.txt | 2 +-
 mlir/lib/RegisterAllPasses.cpp                           | 2 +-
 utils/bazel/llvm-project-overlay/mlir/BUILD.bazel        | 6 +++---
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/mlir/include/mlir/Dialect/Tosa/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/Tosa/Transforms/CMakeLists.txt
index d528ea8539146..7913a1e30d2e0 100644
--- a/mlir/include/mlir/Dialect/Tosa/Transforms/CMakeLists.txt
+++ b/mlir/include/mlir/Dialect/Tosa/Transforms/CMakeLists.txt
@@ -1,5 +1,5 @@
 set(LLVM_TARGET_DEFINITIONS Passes.td)
-mlir_tablegen(Passes.h.inc -gen-pass-decls -name TosaOpt)
+mlir_tablegen(Passes.h.inc -gen-pass-decls -name Tosa)
 mlir_tablegen(PassesEnums.h.inc -gen-enum-decls)
 mlir_tablegen(PassesEnums.cpp.inc -gen-enum-defs)
 mlir_tablegen(Passes.capi.h.inc -gen-pass-capi-header --prefix Tosa)
diff --git a/mlir/lib/RegisterAllPasses.cpp b/mlir/lib/RegisterAllPasses.cpp
index d7e321a61d4ac..f5c72a8590b83 100644
--- a/mlir/lib/RegisterAllPasses.cpp
+++ b/mlir/lib/RegisterAllPasses.cpp
@@ -87,7 +87,7 @@ void mlir::registerAllPasses() {
   registerShapePasses();
   spirv::registerSPIRVPasses();
   tensor::registerTensorPasses();
-  tosa::registerTosaOptPasses();
+  tosa::registerTosaPasses();
   transform::registerTransformPasses();
   vector::registerVectorPasses();
   arm_sme::registerArmSMEPasses();
diff --git a/utils/bazel/llvm-project-overlay/mlir/BUILD.bazel b/utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
index 23672b06c9312..4bdd87c3545b5 100644
--- a/utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
+++ b/utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
@@ -11920,15 +11920,15 @@ gentbl_cc_library(
     tbl_outs = {
         "include/mlir/Dialect/Tosa/Transforms/Passes.h.inc": [
             "-gen-pass-decls",
-            "-name=TosaOpt",
+            "-name=Tosa",
         ],
         "include/mlir/Dialect/Tosa/Transforms/PassesEnums.h.inc": [
             "-gen-enum-decls",
-            "-name=TosaOpt",
+            "-name=Tosa",
         ],
         "include/mlir/Dialect/Tosa/Transforms/PassesEnums.cpp.inc": [
             "-gen-enum-defs",
-            "-name=TosaOpt",
+            "-name=Tosa",
         ],
     },
     tblgen = ":mlir-tblgen",

>From 61d55acc0077d6f3575161372e2f5422264aa883 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sergio=20S=C3=A1nchez=20Ram=C3=ADrez?=
 <mofeing+github at gmail.com>
Date: Mon, 22 Dec 2025 22:43:49 +0100
Subject: [PATCH 09/16] add implementation files for CAPI

---
 mlir/lib/CAPI/Dialect/AMDGPUPasses.cpp        |  25 ++
 mlir/lib/CAPI/Dialect/AMX.cpp                 |  13 +
 mlir/lib/CAPI/Dialect/Affine.cpp              |  14 +
 mlir/lib/CAPI/Dialect/AffinePasses.cpp        |  25 ++
 mlir/lib/CAPI/Dialect/ArithPasses.cpp         |  25 ++
 mlir/lib/CAPI/Dialect/ArmNeon.cpp             |  14 +
 mlir/lib/CAPI/Dialect/ArmSME.cpp              |  14 +
 mlir/lib/CAPI/Dialect/ArmSMEPasses.cpp        |  25 ++
 mlir/lib/CAPI/Dialect/ArmSVE.cpp              |  14 +
 mlir/lib/CAPI/Dialect/ArmSVEPasses.cpp        |  25 ++
 mlir/lib/CAPI/Dialect/Bufferization.cpp       |  14 +
 mlir/lib/CAPI/Dialect/BufferizationPasses.cpp |  25 ++
 mlir/lib/CAPI/Dialect/CMakeLists.txt          | 257 +++++++++++++++---
 mlir/lib/CAPI/Dialect/DLTI.cpp                |  13 +
 mlir/lib/CAPI/Dialect/EmitCPasses.cpp         |  25 ++
 mlir/lib/CAPI/Dialect/FuncPasses.cpp          |  25 ++
 mlir/lib/CAPI/Dialect/LLVMPasses.cpp          |  25 ++
 mlir/lib/CAPI/Dialect/MLProgramPasses.cpp     |  25 ++
 mlir/lib/CAPI/Dialect/MPI.cpp                 |  13 +
 mlir/lib/CAPI/Dialect/MathPasses.cpp          |  25 ++
 mlir/lib/CAPI/Dialect/MemRefPasses.cpp        |  25 ++
 mlir/lib/CAPI/Dialect/NVGPUPasses.cpp         |  25 ++
 mlir/lib/CAPI/Dialect/OpenACC.cpp             |  14 +
 mlir/lib/CAPI/Dialect/OpenACCPasses.cpp       |  25 ++
 mlir/lib/CAPI/Dialect/PDLInterp.cpp           |  14 +
 mlir/lib/CAPI/Dialect/Ptr.cpp                 |  13 +
 mlir/lib/CAPI/Dialect/SCFPasses.cpp           |  25 ++
 mlir/lib/CAPI/Dialect/SPIRVPasses.cpp         |  25 ++
 mlir/lib/CAPI/Dialect/ShapePasses.cpp         |  25 ++
 mlir/lib/CAPI/Dialect/Shard.cpp               |  13 +
 mlir/lib/CAPI/Dialect/ShardPasses.cpp         |  25 ++
 mlir/lib/CAPI/Dialect/TensorPasses.cpp        |  25 ++
 mlir/lib/CAPI/Dialect/Tosa.cpp                |  13 +
 mlir/lib/CAPI/Dialect/TosaPasses.cpp          |  25 ++
 mlir/lib/CAPI/Dialect/TransformPasses.cpp     |  25 ++
 mlir/lib/CAPI/Dialect/UB.cpp                  |  13 +
 mlir/lib/CAPI/Dialect/VectorPasses.cpp        |  25 ++
 mlir/lib/CAPI/Dialect/WasmSSA.cpp             |  14 +
 mlir/lib/CAPI/Dialect/X86Vector.cpp           |  14 +
 mlir/lib/CAPI/Dialect/XeGPU.cpp               |  13 +
 40 files changed, 996 insertions(+), 41 deletions(-)
 create mode 100644 mlir/lib/CAPI/Dialect/AMDGPUPasses.cpp
 create mode 100644 mlir/lib/CAPI/Dialect/AMX.cpp
 create mode 100644 mlir/lib/CAPI/Dialect/Affine.cpp
 create mode 100644 mlir/lib/CAPI/Dialect/AffinePasses.cpp
 create mode 100644 mlir/lib/CAPI/Dialect/ArithPasses.cpp
 create mode 100644 mlir/lib/CAPI/Dialect/ArmNeon.cpp
 create mode 100644 mlir/lib/CAPI/Dialect/ArmSME.cpp
 create mode 100644 mlir/lib/CAPI/Dialect/ArmSMEPasses.cpp
 create mode 100644 mlir/lib/CAPI/Dialect/ArmSVE.cpp
 create mode 100644 mlir/lib/CAPI/Dialect/ArmSVEPasses.cpp
 create mode 100644 mlir/lib/CAPI/Dialect/Bufferization.cpp
 create mode 100644 mlir/lib/CAPI/Dialect/BufferizationPasses.cpp
 create mode 100644 mlir/lib/CAPI/Dialect/DLTI.cpp
 create mode 100644 mlir/lib/CAPI/Dialect/EmitCPasses.cpp
 create mode 100644 mlir/lib/CAPI/Dialect/FuncPasses.cpp
 create mode 100644 mlir/lib/CAPI/Dialect/LLVMPasses.cpp
 create mode 100644 mlir/lib/CAPI/Dialect/MLProgramPasses.cpp
 create mode 100644 mlir/lib/CAPI/Dialect/MPI.cpp
 create mode 100644 mlir/lib/CAPI/Dialect/MathPasses.cpp
 create mode 100644 mlir/lib/CAPI/Dialect/MemRefPasses.cpp
 create mode 100644 mlir/lib/CAPI/Dialect/NVGPUPasses.cpp
 create mode 100644 mlir/lib/CAPI/Dialect/OpenACC.cpp
 create mode 100644 mlir/lib/CAPI/Dialect/OpenACCPasses.cpp
 create mode 100644 mlir/lib/CAPI/Dialect/PDLInterp.cpp
 create mode 100644 mlir/lib/CAPI/Dialect/Ptr.cpp
 create mode 100644 mlir/lib/CAPI/Dialect/SCFPasses.cpp
 create mode 100644 mlir/lib/CAPI/Dialect/SPIRVPasses.cpp
 create mode 100644 mlir/lib/CAPI/Dialect/ShapePasses.cpp
 create mode 100644 mlir/lib/CAPI/Dialect/Shard.cpp
 create mode 100644 mlir/lib/CAPI/Dialect/ShardPasses.cpp
 create mode 100644 mlir/lib/CAPI/Dialect/TensorPasses.cpp
 create mode 100644 mlir/lib/CAPI/Dialect/Tosa.cpp
 create mode 100644 mlir/lib/CAPI/Dialect/TosaPasses.cpp
 create mode 100644 mlir/lib/CAPI/Dialect/TransformPasses.cpp
 create mode 100644 mlir/lib/CAPI/Dialect/UB.cpp
 create mode 100644 mlir/lib/CAPI/Dialect/VectorPasses.cpp
 create mode 100644 mlir/lib/CAPI/Dialect/WasmSSA.cpp
 create mode 100644 mlir/lib/CAPI/Dialect/X86Vector.cpp
 create mode 100644 mlir/lib/CAPI/Dialect/XeGPU.cpp

diff --git a/mlir/lib/CAPI/Dialect/AMDGPUPasses.cpp b/mlir/lib/CAPI/Dialect/AMDGPUPasses.cpp
new file mode 100644
index 0000000000000..a6312c5fc684c
--- /dev/null
+++ b/mlir/lib/CAPI/Dialect/AMDGPUPasses.cpp
@@ -0,0 +1,25 @@
+//===- AMDGPUPasses.cpp - C API for AMDGPU Dialect Passes -----------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "mlir/CAPI/Pass.h"
+#include "mlir/Dialect/AMDGPU/Transforms/Passes.h"
+#include "mlir/Pass/Pass.h"
+
+// Must include the declarations as they carry important visibility attributes.
+#include "mlir/Dialect/AMDGPU/Transforms/Passes.capi.h.inc"
+using namespace mlir;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "mlir/Dialect/AMDGPU/Transforms/Passes.capi.cpp.inc"
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/mlir/lib/CAPI/Dialect/AMX.cpp b/mlir/lib/CAPI/Dialect/AMX.cpp
new file mode 100644
index 0000000000000..2d330ffbd5f84
--- /dev/null
+++ b/mlir/lib/CAPI/Dialect/AMX.cpp
@@ -0,0 +1,13 @@
+//===- AMX.cpp - C Interface for AMX dialect ------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "mlir-c/Dialect/AMX.h"
+#include "mlir/CAPI/Registration.h"
+#include "mlir/Dialect/AMX/IR/AMX.h"
+
+MLIR_DEFINE_CAPI_DIALECT_REGISTRATION(AMX, amx, mlir::amx::AMXDialect)
diff --git a/mlir/lib/CAPI/Dialect/Affine.cpp b/mlir/lib/CAPI/Dialect/Affine.cpp
new file mode 100644
index 0000000000000..ed37c7d2be669
--- /dev/null
+++ b/mlir/lib/CAPI/Dialect/Affine.cpp
@@ -0,0 +1,14 @@
+//===- Affine.cpp - C Interface for Affine dialect ------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "mlir-c/Dialect/Affine.h"
+#include "mlir/CAPI/Registration.h"
+#include "mlir/Dialect/Affine/IR/Affine.h"
+
+MLIR_DEFINE_CAPI_DIALECT_REGISTRATION(Affine, affine,
+                                      mlir::affine::AffineDialect)
diff --git a/mlir/lib/CAPI/Dialect/AffinePasses.cpp b/mlir/lib/CAPI/Dialect/AffinePasses.cpp
new file mode 100644
index 0000000000000..2d10cb4f4b9a0
--- /dev/null
+++ b/mlir/lib/CAPI/Dialect/AffinePasses.cpp
@@ -0,0 +1,25 @@
+//===- AffinePasses.cpp - C API for Affine Dialect Passes -----------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "mlir/CAPI/Pass.h"
+#include "mlir/Dialect/Affine/Passes.h"
+#include "mlir/Pass/Pass.h"
+
+// Must include the declarations as they carry important visibility attributes.
+#include "mlir/Dialect/Affine/Transforms/Passes.capi.h.inc"
+using namespace mlir;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "mlir/Dialect/Affine/Transforms/Passes.capi.cpp.inc"
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/mlir/lib/CAPI/Dialect/ArithPasses.cpp b/mlir/lib/CAPI/Dialect/ArithPasses.cpp
new file mode 100644
index 0000000000000..abdf425df741a
--- /dev/null
+++ b/mlir/lib/CAPI/Dialect/ArithPasses.cpp
@@ -0,0 +1,25 @@
+//===- ArithPasses.cpp - C API for Arith Dialect Passes -------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "mlir/CAPI/Pass.h"
+#include "mlir/Dialect/Arith/Transforms/Passes.h"
+#include "mlir/Pass/Pass.h"
+
+// Must include the declarations as they carry important visibility attributes.
+#include "mlir/Dialect/Arith/Transforms/Passes.capi.h.inc"
+using namespace mlir;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "mlir/Dialect/Arith/Transforms/Passes.capi.cpp.inc"
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/mlir/lib/CAPI/Dialect/ArmNeon.cpp b/mlir/lib/CAPI/Dialect/ArmNeon.cpp
new file mode 100644
index 0000000000000..67c2ff14a94d2
--- /dev/null
+++ b/mlir/lib/CAPI/Dialect/ArmNeon.cpp
@@ -0,0 +1,14 @@
+//===- ArmNeon.cpp - C Interface for ArmNeon dialect ----------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "mlir-c/Dialect/ArmNeon.h"
+#include "mlir/CAPI/Registration.h"
+#include "mlir/Dialect/ArmNeon/IR/ArmNeon.h"
+
+MLIR_DEFINE_CAPI_DIALECT_REGISTRATION(ArmNeon, arm_neon,
+                                      mlir::arm_neon::ArmNeonDialect)
diff --git a/mlir/lib/CAPI/Dialect/ArmSME.cpp b/mlir/lib/CAPI/Dialect/ArmSME.cpp
new file mode 100644
index 0000000000000..05fe166f64491
--- /dev/null
+++ b/mlir/lib/CAPI/Dialect/ArmSME.cpp
@@ -0,0 +1,14 @@
+//===- ArmSME.cpp - C Interface for ArmSME dialect ------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "mlir-c/Dialect/ArmSME.h"
+#include "mlir/CAPI/Registration.h"
+#include "mlir/Dialect/ArmSME/IR/ArmSME.h"
+
+MLIR_DEFINE_CAPI_DIALECT_REGISTRATION(ArmSME, arm_sme,
+                                      mlir::arm_sme::ArmSMEDialect)
diff --git a/mlir/lib/CAPI/Dialect/ArmSMEPasses.cpp b/mlir/lib/CAPI/Dialect/ArmSMEPasses.cpp
new file mode 100644
index 0000000000000..0a1b15053940c
--- /dev/null
+++ b/mlir/lib/CAPI/Dialect/ArmSMEPasses.cpp
@@ -0,0 +1,25 @@
+//===- ArmSMEPasses.cpp - C API for ArmSME Dialect Passes -----------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "mlir/CAPI/Pass.h"
+#include "mlir/Dialect/ArmSME/Transforms/Passes.h"
+#include "mlir/Pass/Pass.h"
+
+// Must include the declarations as they carry important visibility attributes.
+#include "mlir/Dialect/ArmSME/Transforms/Passes.capi.h.inc"
+using namespace mlir;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "mlir/Dialect/ArmSME/Transforms/Passes.capi.cpp.inc"
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/mlir/lib/CAPI/Dialect/ArmSVE.cpp b/mlir/lib/CAPI/Dialect/ArmSVE.cpp
new file mode 100644
index 0000000000000..71df710d73a09
--- /dev/null
+++ b/mlir/lib/CAPI/Dialect/ArmSVE.cpp
@@ -0,0 +1,14 @@
+//===- ArmSVE.cpp - C Interface for ArmSVE dialect ------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "mlir-c/Dialect/ArmSVE.h"
+#include "mlir/CAPI/Registration.h"
+#include "mlir/Dialect/ArmSVE/IR/ArmSVE.h"
+
+MLIR_DEFINE_CAPI_DIALECT_REGISTRATION(ArmSVE, arm_sve,
+                                      mlir::arm_sve::ArmSVEDialect)
diff --git a/mlir/lib/CAPI/Dialect/ArmSVEPasses.cpp b/mlir/lib/CAPI/Dialect/ArmSVEPasses.cpp
new file mode 100644
index 0000000000000..56980f9c19e6d
--- /dev/null
+++ b/mlir/lib/CAPI/Dialect/ArmSVEPasses.cpp
@@ -0,0 +1,25 @@
+//===- ArmSVEPasses.cpp - C API for ArmSVE Dialect Passes -----------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "mlir/CAPI/Pass.h"
+#include "mlir/Dialect/ArmSVE/Transforms/Passes.h"
+#include "mlir/Pass/Pass.h"
+
+// Must include the declarations as they carry important visibility attributes.
+#include "mlir/Dialect/ArmSVE/Transforms/Passes.capi.h.inc"
+using namespace mlir;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "mlir/Dialect/ArmSVE/Transforms/Passes.capi.cpp.inc"
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/mlir/lib/CAPI/Dialect/Bufferization.cpp b/mlir/lib/CAPI/Dialect/Bufferization.cpp
new file mode 100644
index 0000000000000..da50dfaab44b6
--- /dev/null
+++ b/mlir/lib/CAPI/Dialect/Bufferization.cpp
@@ -0,0 +1,14 @@
+//===- Bufferization.cpp - C Interface for Bufferization dialect ----------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "mlir-c/Dialect/Bufferization.h"
+#include "mlir/CAPI/Registration.h"
+#include "mlir/Dialect/Bufferization/IR/Bufferization.h"
+
+MLIR_DEFINE_CAPI_DIALECT_REGISTRATION(Bufferization, bufferization,
+                                      mlir::bufferization::BufferizationDialect)
diff --git a/mlir/lib/CAPI/Dialect/BufferizationPasses.cpp b/mlir/lib/CAPI/Dialect/BufferizationPasses.cpp
new file mode 100644
index 0000000000000..713f934fa040b
--- /dev/null
+++ b/mlir/lib/CAPI/Dialect/BufferizationPasses.cpp
@@ -0,0 +1,25 @@
+//===- BufferizationPasses.cpp - C API for Bufferization Dialect Passes ---===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "mlir/CAPI/Pass.h"
+#include "mlir/Dialect/Bufferization/Transforms/Passes.h"
+#include "mlir/Pass/Pass.h"
+
+// Must include the declarations as they carry important visibility attributes.
+#include "mlir/Dialect/Bufferization/Transforms/Passes.capi.h.inc"
+using namespace mlir;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "mlir/Dialect/Bufferization/Transforms/Passes.capi.cpp.inc"
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/mlir/lib/CAPI/Dialect/CMakeLists.txt b/mlir/lib/CAPI/Dialect/CMakeLists.txt
index bb1fdf8be3c8f..1596b27f596df 100644
--- a/mlir/lib/CAPI/Dialect/CMakeLists.txt
+++ b/mlir/lib/CAPI/Dialect/CMakeLists.txt
@@ -1,5 +1,16 @@
+add_mlir_upstream_c_api_library(MLIRCAPIAffine
+  Affine.cpp
+  AffinePasses.cpp
+
+  PARTIAL_SOURCES_INTENDED
+  LINK_LIBS PUBLIC
+  MLIRCAPIIR
+  MLIRAffineDialect
+)
+
 add_mlir_upstream_c_api_library(MLIRCAPIAMDGPU
   AMDGPU.cpp
+  AMDGPUPasses.cpp
 
   PARTIAL_SOURCES_INTENDED
   LINK_LIBS PUBLIC
@@ -7,8 +18,18 @@ add_mlir_upstream_c_api_library(MLIRCAPIAMDGPU
   MLIRAMDGPUDialect
 )
 
+add_mlir_upstream_c_api_library(MLIRCAPIAMX
+  AMX.cpp
+
+  PARTIAL_SOURCES_INTENDED
+  LINK_LIBS PUBLIC
+  MLIRCAPIIR
+  MLIRAMXDialect
+)
+
 add_mlir_upstream_c_api_library(MLIRCAPIArith
   Arith.cpp
+  ArithPasses.cpp
 
   PARTIAL_SOURCES_INTENDED
   LINK_LIBS PUBLIC
@@ -16,6 +37,35 @@ add_mlir_upstream_c_api_library(MLIRCAPIArith
   MLIRArithDialect
 )
 
+add_mlir_upstream_c_api_library(MLIRCAPIArmNeon
+  ArmNeon.cpp
+
+  PARTIAL_SOURCES_INTENDED
+  LINK_LIBS PUBLIC
+  MLIRCAPIIR
+  MLIRArmNeonDialect
+)
+
+add_mlir_upstream_c_api_library(MLIRCAPIArmSME
+  ArmSME.cpp
+  ArmSMEPasses.cpp
+
+  PARTIAL_SOURCES_INTENDED
+  LINK_LIBS PUBLIC
+  MLIRCAPIIR
+  MLIRArmSMEDialect
+)
+
+add_mlir_upstream_c_api_library(MLIRCAPIArmSVE
+  ArmSVE.cpp
+  ArmSVEPasses.cpp
+
+  PARTIAL_SOURCES_INTENDED
+  LINK_LIBS PUBLIC
+  MLIRCAPIIR
+  MLIRArmSVEDialect
+)
+
 add_mlir_upstream_c_api_library(MLIRCAPIAsync
   Async.cpp
   AsyncPasses.cpp
@@ -31,6 +81,16 @@ add_mlir_upstream_c_api_library(MLIRCAPIAsync
   MLIRPass
 )
 
+add_mlir_upstream_c_api_library(MLIRCAPIBufferization
+  Bufferization.cpp
+  BufferizationPasses.cpp
+
+  PARTIAL_SOURCES_INTENDED
+  LINK_LIBS PUBLIC
+  MLIRCAPIIR
+  MLIRBufferizationDialect
+)
+
 add_mlir_upstream_c_api_library(MLIRCAPIControlFlow
   ControlFlow.cpp
 
@@ -40,31 +100,33 @@ add_mlir_upstream_c_api_library(MLIRCAPIControlFlow
   MLIRControlFlowDialect
 )
 
-add_mlir_upstream_c_api_library(MLIRCAPIEmitC
-  EmitC.cpp
+add_mlir_upstream_c_api_library(MLIRCAPIDLTI
+  DLTI.cpp
 
   PARTIAL_SOURCES_INTENDED
   LINK_LIBS PUBLIC
   MLIRCAPIIR
-  MLIREmitCDialect
+  MLIRDLTIDialect
 )
 
-add_mlir_upstream_c_api_library(MLIRCAPIMath
-  Math.cpp
+add_mlir_upstream_c_api_library(MLIRCAPIEmitC
+  EmitC.cpp
+  EmitCPasses.cpp
 
   PARTIAL_SOURCES_INTENDED
   LINK_LIBS PUBLIC
   MLIRCAPIIR
-  MLIRMathDialect
+  MLIREmitCDialect
 )
 
-add_mlir_upstream_c_api_library(MLIRCAPIMemRef
-  MemRef.cpp
+add_mlir_upstream_c_api_library(MLIRCAPIFunc
+  Func.cpp
+  FuncPasses.cpp
 
   PARTIAL_SOURCES_INTENDED
   LINK_LIBS PUBLIC
   MLIRCAPIIR
-  MLIRMemRefDialect
+  MLIRFuncDialect
 )
 
 add_mlir_upstream_c_api_library(MLIRCAPIGPU
@@ -99,8 +161,24 @@ add_mlir_upstream_c_api_library(MLIRCAPIIRDL
   MLIRIRDL
 )
 
+add_mlir_upstream_c_api_library(MLIRCAPILinalg
+  Linalg.cpp
+  LinalgPasses.cpp
+
+  PARTIAL_SOURCES_INTENDED
+  DEPENDS
+  MLIRLinalgPassIncGen
+
+  LINK_LIBS PUBLIC
+  MLIRCAPIIR
+  MLIRLinalgDialect
+  MLIRPass
+  MLIRLinalgTransforms
+)
+
 add_mlir_upstream_c_api_library(MLIRCAPILLVM
   LLVM.cpp
+  LLVMPasses.cpp
 
   PARTIAL_SOURCES_INTENDED
   LINK_LIBS PUBLIC
@@ -108,23 +186,29 @@ add_mlir_upstream_c_api_library(MLIRCAPILLVM
   MLIRLLVMDialect
 )
 
-add_mlir_upstream_c_api_library(MLIRCAPILinalg
-  Linalg.cpp
-  LinalgPasses.cpp
+add_mlir_upstream_c_api_library(MLIRCAPIMath
+  Math.cpp
+  MathPasses.cpp
 
   PARTIAL_SOURCES_INTENDED
-  DEPENDS
-  MLIRLinalgPassIncGen
+  LINK_LIBS PUBLIC
+  MLIRCAPIIR
+  MLIRMathDialect
+)
+
+add_mlir_upstream_c_api_library(MLIRCAPIMemRef
+  MemRef.cpp
+  MemRefPasses.cpp
 
+  PARTIAL_SOURCES_INTENDED
   LINK_LIBS PUBLIC
   MLIRCAPIIR
-  MLIRLinalgDialect
-  MLIRPass
-  MLIRLinalgTransforms
+  MLIRMemRefDialect
 )
 
 add_mlir_upstream_c_api_library(MLIRCAPIMLProgram
   MLProgram.cpp
+  MLProgramPasses.cpp
 
   PARTIAL_SOURCES_INTENDED
   LINK_LIBS PUBLIC
@@ -132,8 +216,18 @@ add_mlir_upstream_c_api_library(MLIRCAPIMLProgram
   MLIRMLProgramDialect
 )
 
+add_mlir_upstream_c_api_library(MLIRCAPIMPI
+  MPI.cpp
+
+  PARTIAL_SOURCES_INTENDED
+  LINK_LIBS PUBLIC
+  MLIRCAPIIR
+  MLIRMPIDialect
+)
+
 add_mlir_upstream_c_api_library(MLIRCAPINVGPU
   NVGPU.cpp
+  NVGPUPasses.cpp
 
   PARTIAL_SOURCES_INTENDED
   LINK_LIBS PUBLIC
@@ -150,6 +244,61 @@ add_mlir_upstream_c_api_library(MLIRCAPINVVM
   MLIRNVVMDialect
 )
 
+add_mlir_upstream_c_api_library(MLIRCAPIOpenACC
+  OpenACC.cpp
+  OpenACCPasses.cpp
+
+  PARTIAL_SOURCES_INTENDED
+  LINK_LIBS PUBLIC
+  MLIRCAPIIR
+  MLIROpenACCDialect
+)
+
+add_mlir_upstream_c_api_library(MLIRCAPIOpenMP
+  OpenMP.cpp
+
+  PARTIAL_SOURCES_INTENDED
+  LINK_LIBS PUBLIC
+  MLIRCAPIIR
+  MLIROpenMPDialect
+)
+
+add_mlir_upstream_c_api_library(MLIRCAPIPDL
+  PDL.cpp
+
+  PARTIAL_SOURCES_INTENDED
+  LINK_LIBS PUBLIC
+  MLIRCAPIIR
+  MLIRPDLDialect
+)
+
+add_mlir_upstream_c_api_library(MLIRCAPIPDLInterp
+  PDLInterp.cpp
+
+  PARTIAL_SOURCES_INTENDED
+  LINK_LIBS PUBLIC
+  MLIRCAPIIR
+  MLIRPDLInterpDialect
+)
+
+add_mlir_upstream_c_api_library(MLIRCAPIPtr
+  Ptr.cpp
+
+  PARTIAL_SOURCES_INTENDED
+  LINK_LIBS PUBLIC
+  MLIRCAPIIR
+  MLIRPtrDialect
+)
+
+add_mlir_upstream_c_api_library(MLIRCAPIQuant
+  Quant.cpp
+
+  PARTIAL_SOURCES_INTENDED
+  LINK_LIBS PUBLIC
+  MLIRCAPIIR
+  MLIRQuantDialect
+)
+
 add_mlir_upstream_c_api_library(MLIRCAPIROCDL
   ROCDL.cpp
 
@@ -159,9 +308,9 @@ add_mlir_upstream_c_api_library(MLIRCAPIROCDL
   MLIRROCDLDialect
 )
 
-
 add_mlir_upstream_c_api_library(MLIRCAPISCF
   SCF.cpp
+  SCFPasses.cpp
 
   PARTIAL_SOURCES_INTENDED
   LINK_LIBS PUBLIC
@@ -171,6 +320,7 @@ add_mlir_upstream_c_api_library(MLIRCAPISCF
 
 add_mlir_upstream_c_api_library(MLIRCAPIShape
   Shape.cpp
+  ShapePasses.cpp
 
   PARTIAL_SOURCES_INTENDED
   LINK_LIBS PUBLIC
@@ -178,28 +328,40 @@ add_mlir_upstream_c_api_library(MLIRCAPIShape
   MLIRShapeDialect
 )
 
-add_mlir_upstream_c_api_library(MLIRCAPISparseTensor
-  SparseTensor.cpp
-  SparseTensorPasses.cpp
+add_mlir_upstream_c_api_library(MLIRCAPIShard
+  Shard.cpp
+  ShardPasses.cpp
 
   PARTIAL_SOURCES_INTENDED
   LINK_LIBS PUBLIC
   MLIRCAPIIR
-  MLIRSparseTensorDialect
-  MLIRSparseTensorTransforms
+  MLIRShardDialect
 )
 
-add_mlir_upstream_c_api_library(MLIRCAPIFunc
-  Func.cpp
+add_mlir_upstream_c_api_library(MLIRCAPISMT
+  SMT.cpp
 
   PARTIAL_SOURCES_INTENDED
   LINK_LIBS PUBLIC
   MLIRCAPIIR
-  MLIRFuncDialect
+  MLIRSMT
+)
+
+
+add_mlir_upstream_c_api_library(MLIRCAPISparseTensor
+  SparseTensor.cpp
+  SparseTensorPasses.cpp
+
+  PARTIAL_SOURCES_INTENDED
+  LINK_LIBS PUBLIC
+  MLIRCAPIIR
+  MLIRSparseTensorDialect
+  MLIRSparseTensorTransforms
 )
 
 add_mlir_upstream_c_api_library(MLIRCAPISPIRV
   SPIRV.cpp
+  SPIRVPasses.cpp
 
   PARTIAL_SOURCES_INTENDED
   LINK_LIBS PUBLIC
@@ -209,6 +371,7 @@ add_mlir_upstream_c_api_library(MLIRCAPISPIRV
 
 add_mlir_upstream_c_api_library(MLIRCAPITensor
   Tensor.cpp
+  TensorPasses.cpp
 
   PARTIAL_SOURCES_INTENDED
   LINK_LIBS PUBLIC
@@ -216,8 +379,19 @@ add_mlir_upstream_c_api_library(MLIRCAPITensor
   MLIRTensorDialect
 )
 
+add_mlir_upstream_c_api_library(MLIRCAPITosa
+  Tosa.cpp
+  TosaPasses.cpp
+
+  PARTIAL_SOURCES_INTENDED
+  LINK_LIBS PUBLIC
+  MLIRCAPIIR
+  MLIRTosaDialect
+)
+
 add_mlir_upstream_c_api_library(MLIRCAPITransformDialect
   Transform.cpp
+  TransformPasses.cpp
 
   PARTIAL_SOURCES_INTENDED
   LINK_LIBS PUBLIC
@@ -234,47 +408,48 @@ add_mlir_upstream_c_api_library(MLIRCAPITransformDialectTransforms
   MLIRTransformDialectTransforms
 )
 
-add_mlir_upstream_c_api_library(MLIRCAPIQuant
-  Quant.cpp
+add_mlir_upstream_c_api_library(MLIRCAPIUB
+  UB.cpp
 
   PARTIAL_SOURCES_INTENDED
   LINK_LIBS PUBLIC
   MLIRCAPIIR
-  MLIRQuantDialect
+  MLIRUBDialect
 )
 
-add_mlir_upstream_c_api_library(MLIRCAPIOpenMP
-  OpenMP.cpp
+add_mlir_upstream_c_api_library(MLIRCAPIVector
+  Vector.cpp
+  VectorPasses.cpp
 
   PARTIAL_SOURCES_INTENDED
   LINK_LIBS PUBLIC
   MLIRCAPIIR
-  MLIROpenMPDialect
+  MLIRVectorDialect
 )
 
-add_mlir_upstream_c_api_library(MLIRCAPIPDL
-  PDL.cpp
+add_mlir_upstream_c_api_library(MLIRCAPIWasmSSA
+  WasmSSA.cpp
 
   PARTIAL_SOURCES_INTENDED
   LINK_LIBS PUBLIC
   MLIRCAPIIR
-  MLIRPDLDialect
+  MLIRWasmSSADialect
 )
 
-add_mlir_upstream_c_api_library(MLIRCAPIVector
-  Vector.cpp
+add_mlir_upstream_c_api_library(MLIRCAPIX86Vector
+  X86Vector.cpp
 
   PARTIAL_SOURCES_INTENDED
   LINK_LIBS PUBLIC
   MLIRCAPIIR
-  MLIRVectorDialect
+  MLIRX86VectorDialect
 )
 
-add_mlir_upstream_c_api_library(MLIRCAPISMT
-  SMT.cpp
+add_mlir_upstream_c_api_library(MLIRCAPIXeGPU
+  XeGPU.cpp
 
   PARTIAL_SOURCES_INTENDED
   LINK_LIBS PUBLIC
   MLIRCAPIIR
-  MLIRSMT
+  MLIRXeGPUDialect
 )
diff --git a/mlir/lib/CAPI/Dialect/DLTI.cpp b/mlir/lib/CAPI/Dialect/DLTI.cpp
new file mode 100644
index 0000000000000..983f7921d243e
--- /dev/null
+++ b/mlir/lib/CAPI/Dialect/DLTI.cpp
@@ -0,0 +1,13 @@
+//===- DLTI.cpp - C Interface for DLTI dialect ----------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "mlir-c/Dialect/DLTI.h"
+#include "mlir/CAPI/Registration.h"
+#include "mlir/Dialect/DLTI/IR/DLTI.h"
+
+MLIR_DEFINE_CAPI_DIALECT_REGISTRATION(DLTI, dlti, mlir::dlti::DLTIDialect)
diff --git a/mlir/lib/CAPI/Dialect/EmitCPasses.cpp b/mlir/lib/CAPI/Dialect/EmitCPasses.cpp
new file mode 100644
index 0000000000000..b208bb737d36d
--- /dev/null
+++ b/mlir/lib/CAPI/Dialect/EmitCPasses.cpp
@@ -0,0 +1,25 @@
+//===- EmitCPasses.cpp - C API for EmitC Dialect Passes -------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "mlir/CAPI/Pass.h"
+#include "mlir/Dialect/EmitC/Transforms/Passes.h"
+#include "mlir/Pass/Pass.h"
+
+// Must include the declarations as they carry important visibility attributes.
+#include "mlir/Dialect/EmitC/Transforms/Passes.capi.h.inc"
+using namespace mlir;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "mlir/Dialect/EmitC/Transforms/Passes.capi.cpp.inc"
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/mlir/lib/CAPI/Dialect/FuncPasses.cpp b/mlir/lib/CAPI/Dialect/FuncPasses.cpp
new file mode 100644
index 0000000000000..785ef620741f3
--- /dev/null
+++ b/mlir/lib/CAPI/Dialect/FuncPasses.cpp
@@ -0,0 +1,25 @@
+//===- FuncPasses.cpp - C API for Func Dialect Passes ---------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "mlir/CAPI/Pass.h"
+#include "mlir/Dialect/Func/Transforms/Passes.h"
+#include "mlir/Pass/Pass.h"
+
+// Must include the declarations as they carry important visibility attributes.
+#include "mlir/Dialect/Func/Transforms/Passes.capi.h.inc"
+using namespace mlir;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "mlir/Dialect/Func/Transforms/Passes.capi.cpp.inc"
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/mlir/lib/CAPI/Dialect/LLVMPasses.cpp b/mlir/lib/CAPI/Dialect/LLVMPasses.cpp
new file mode 100644
index 0000000000000..a8f62a0101681
--- /dev/null
+++ b/mlir/lib/CAPI/Dialect/LLVMPasses.cpp
@@ -0,0 +1,25 @@
+//===- LLVMPasses.cpp - C API for LLVM Dialect Passes ---------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "mlir/CAPI/Pass.h"
+#include "mlir/Dialect/LLVM/Transforms/Passes.h"
+#include "mlir/Pass/Pass.h"
+
+// Must include the declarations as they carry important visibility attributes.
+#include "mlir/Dialect/LLVM/Transforms/Passes.capi.h.inc"
+using namespace mlir;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "mlir/Dialect/LLVM/Transforms/Passes.capi.cpp.inc"
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/mlir/lib/CAPI/Dialect/MLProgramPasses.cpp b/mlir/lib/CAPI/Dialect/MLProgramPasses.cpp
new file mode 100644
index 0000000000000..c32515771e8bf
--- /dev/null
+++ b/mlir/lib/CAPI/Dialect/MLProgramPasses.cpp
@@ -0,0 +1,25 @@
+//===- MLProgramPasses.cpp - C API for MLProgram Dialect Passes -----------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "mlir/CAPI/Pass.h"
+#include "mlir/Dialect/MLProgram/Transforms/Passes.h"
+#include "mlir/Pass/Pass.h"
+
+// Must include the declarations as they carry important visibility attributes.
+#include "mlir/Dialect/MLProgram/Transforms/Passes.capi.h.inc"
+using namespace mlir;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "mlir/Dialect/MLProgram/Transforms/Passes.capi.cpp.inc"
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/mlir/lib/CAPI/Dialect/MPI.cpp b/mlir/lib/CAPI/Dialect/MPI.cpp
new file mode 100644
index 0000000000000..3f75008aab3c4
--- /dev/null
+++ b/mlir/lib/CAPI/Dialect/MPI.cpp
@@ -0,0 +1,13 @@
+//===- MPI.cpp - C Interface for MPI dialect ------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "mlir-c/Dialect/MPI.h"
+#include "mlir/CAPI/Registration.h"
+#include "mlir/Dialect/MPI/IR/MPI.h"
+
+MLIR_DEFINE_CAPI_DIALECT_REGISTRATION(MPI, mpi, mlir::mpi::MPIDialect)
diff --git a/mlir/lib/CAPI/Dialect/MathPasses.cpp b/mlir/lib/CAPI/Dialect/MathPasses.cpp
new file mode 100644
index 0000000000000..28bfe7bef2426
--- /dev/null
+++ b/mlir/lib/CAPI/Dialect/MathPasses.cpp
@@ -0,0 +1,25 @@
+//===- MathPasses.cpp - C API for Math Dialect Passes ---------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "mlir/CAPI/Pass.h"
+#include "mlir/Dialect/Math/Transforms/Passes.h"
+#include "mlir/Pass/Pass.h"
+
+// Must include the declarations as they carry important visibility attributes.
+#include "mlir/Dialect/Math/Transforms/Passes.capi.h.inc"
+using namespace mlir;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "mlir/Dialect/Math/Transforms/Passes.capi.cpp.inc"
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/mlir/lib/CAPI/Dialect/MemRefPasses.cpp b/mlir/lib/CAPI/Dialect/MemRefPasses.cpp
new file mode 100644
index 0000000000000..476c857c47c37
--- /dev/null
+++ b/mlir/lib/CAPI/Dialect/MemRefPasses.cpp
@@ -0,0 +1,25 @@
+//===- MemRefPasses.cpp - C API for MemRef Dialect Passes -----------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "mlir/CAPI/Pass.h"
+#include "mlir/Dialect/MemRef/Transforms/Passes.h"
+#include "mlir/Pass/Pass.h"
+
+// Must include the declarations as they carry important visibility attributes.
+#include "mlir/Dialect/MemRef/Transforms/Passes.capi.h.inc"
+using namespace mlir;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "mlir/Dialect/MemRef/Transforms/Passes.capi.cpp.inc"
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/mlir/lib/CAPI/Dialect/NVGPUPasses.cpp b/mlir/lib/CAPI/Dialect/NVGPUPasses.cpp
new file mode 100644
index 0000000000000..7d225947a7494
--- /dev/null
+++ b/mlir/lib/CAPI/Dialect/NVGPUPasses.cpp
@@ -0,0 +1,25 @@
+//===- NVGPUPasses.cpp - C API for NVGPU Dialect Passes -------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "mlir/CAPI/Pass.h"
+#include "mlir/Dialect/NVGPU/Transforms/Passes.h"
+#include "mlir/Pass/Pass.h"
+
+// Must include the declarations as they carry important visibility attributes.
+#include "mlir/Dialect/NVGPU/Transforms/Passes.capi.h.inc"
+using namespace mlir;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "mlir/Dialect/NVGPU/Transforms/Passes.capi.cpp.inc"
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/mlir/lib/CAPI/Dialect/OpenACC.cpp b/mlir/lib/CAPI/Dialect/OpenACC.cpp
new file mode 100644
index 0000000000000..1ba64cbeb3b5e
--- /dev/null
+++ b/mlir/lib/CAPI/Dialect/OpenACC.cpp
@@ -0,0 +1,14 @@
+//===- OpenACC.cpp - C Interface for OpenACC dialect ----------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "mlir-c/Dialect/OpenACC.h"
+#include "mlir/CAPI/Registration.h"
+#include "mlir/Dialect/OpenACC/IR/OpenACC.h"
+
+MLIR_DEFINE_CAPI_DIALECT_REGISTRATION(OpenACC, openacc,
+                                      mlir::openacc::OpenACCDialect)
diff --git a/mlir/lib/CAPI/Dialect/OpenACCPasses.cpp b/mlir/lib/CAPI/Dialect/OpenACCPasses.cpp
new file mode 100644
index 0000000000000..1e2c168c94a2f
--- /dev/null
+++ b/mlir/lib/CAPI/Dialect/OpenACCPasses.cpp
@@ -0,0 +1,25 @@
+//===- OpenACCPasses.cpp - C API for OpenACC Dialect Passes ---------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "mlir/CAPI/Pass.h"
+#include "mlir/Dialect/OpenACC/Transforms/Passes.h"
+#include "mlir/Pass/Pass.h"
+
+// Must include the declarations as they carry important visibility attributes.
+#include "mlir/Dialect/OpenACC/Transforms/Passes.capi.h.inc"
+using namespace mlir;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "mlir/Dialect/OpenACC/Transforms/Passes.capi.cpp.inc"
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/mlir/lib/CAPI/Dialect/PDLInterp.cpp b/mlir/lib/CAPI/Dialect/PDLInterp.cpp
new file mode 100644
index 0000000000000..ebf3bf32561a9
--- /dev/null
+++ b/mlir/lib/CAPI/Dialect/PDLInterp.cpp
@@ -0,0 +1,14 @@
+//===- PDLInterp.cpp - C Interface for PDLInterp dialect ------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "mlir-c/Dialect/PDLInterp.h"
+#include "mlir/CAPI/Registration.h"
+#include "mlir/Dialect/PDLInterp/IR/PDLInterp.h"
+
+MLIR_DEFINE_CAPI_DIALECT_REGISTRATION(PDLInterp, pdlinterp,
+                                      mlir::pdlinterp::PDLInterpDialect)
diff --git a/mlir/lib/CAPI/Dialect/Ptr.cpp b/mlir/lib/CAPI/Dialect/Ptr.cpp
new file mode 100644
index 0000000000000..1da8415477982
--- /dev/null
+++ b/mlir/lib/CAPI/Dialect/Ptr.cpp
@@ -0,0 +1,13 @@
+//===- Ptr.cpp - C Interface for Ptr dialect ------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "mlir-c/Dialect/Ptr.h"
+#include "mlir/CAPI/Registration.h"
+#include "mlir/Dialect/Ptr/IR/Ptr.h"
+
+MLIR_DEFINE_CAPI_DIALECT_REGISTRATION(Ptr, ptr, mlir::ptr::PtrDialect)
diff --git a/mlir/lib/CAPI/Dialect/SCFPasses.cpp b/mlir/lib/CAPI/Dialect/SCFPasses.cpp
new file mode 100644
index 0000000000000..7e904be5bf2fc
--- /dev/null
+++ b/mlir/lib/CAPI/Dialect/SCFPasses.cpp
@@ -0,0 +1,25 @@
+//===- SCFPasses.cpp - C API for SCF Dialect Passes -----------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "mlir/CAPI/Pass.h"
+#include "mlir/Dialect/SCF/Transforms/Passes.h"
+#include "mlir/Pass/Pass.h"
+
+// Must include the declarations as they carry important visibility attributes.
+#include "mlir/Dialect/SCF/Transforms/Passes.capi.h.inc"
+using namespace mlir;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "mlir/Dialect/SCF/Transforms/Passes.capi.cpp.inc"
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/mlir/lib/CAPI/Dialect/SPIRVPasses.cpp b/mlir/lib/CAPI/Dialect/SPIRVPasses.cpp
new file mode 100644
index 0000000000000..d1c6f5d982df8
--- /dev/null
+++ b/mlir/lib/CAPI/Dialect/SPIRVPasses.cpp
@@ -0,0 +1,25 @@
+//===- SPIRVPasses.cpp - C API for SPIRV Dialect Passes -------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "mlir/CAPI/Pass.h"
+#include "mlir/Dialect/SPIRV/Transforms/Passes.h"
+#include "mlir/Pass/Pass.h"
+
+// Must include the declarations as they carry important visibility attributes.
+#include "mlir/Dialect/SPIRV/Transforms/Passes.capi.h.inc"
+using namespace mlir;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "mlir/Dialect/SPIRV/Transforms/Passes.capi.cpp.inc"
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/mlir/lib/CAPI/Dialect/ShapePasses.cpp b/mlir/lib/CAPI/Dialect/ShapePasses.cpp
new file mode 100644
index 0000000000000..792bbc5cfb85e
--- /dev/null
+++ b/mlir/lib/CAPI/Dialect/ShapePasses.cpp
@@ -0,0 +1,25 @@
+//===- ShapePasses.cpp - C API for Shape Dialect Passes -------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "mlir/CAPI/Pass.h"
+#include "mlir/Dialect/Shape/Transforms/Passes.h"
+#include "mlir/Pass/Pass.h"
+
+// Must include the declarations as they carry important visibility attributes.
+#include "mlir/Dialect/Shape/Transforms/Passes.capi.h.inc"
+using namespace mlir;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "mlir/Dialect/Shape/Transforms/Passes.capi.cpp.inc"
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/mlir/lib/CAPI/Dialect/Shard.cpp b/mlir/lib/CAPI/Dialect/Shard.cpp
new file mode 100644
index 0000000000000..94c9a366872c6
--- /dev/null
+++ b/mlir/lib/CAPI/Dialect/Shard.cpp
@@ -0,0 +1,13 @@
+//===- Shard.cpp - C Interface for Shard dialect --------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "mlir-c/Dialect/Shard.h"
+#include "mlir/CAPI/Registration.h"
+#include "mlir/Dialect/Shard/IR/Shard.h"
+
+MLIR_DEFINE_CAPI_DIALECT_REGISTRATION(Shard, shard, mlir::shard::ShardDialect)
\ No newline at end of file
diff --git a/mlir/lib/CAPI/Dialect/ShardPasses.cpp b/mlir/lib/CAPI/Dialect/ShardPasses.cpp
new file mode 100644
index 0000000000000..0cee572cffeda
--- /dev/null
+++ b/mlir/lib/CAPI/Dialect/ShardPasses.cpp
@@ -0,0 +1,25 @@
+//===- ShardPasses.cpp - C API for Shard Dialect Passes -------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "mlir/CAPI/Pass.h"
+#include "mlir/Dialect/Shard/Transforms/Passes.h"
+#include "mlir/Pass/Pass.h"
+
+// Must include the declarations as they carry important visibility attributes.
+#include "mlir/Dialect/Shard/Transforms/Passes.capi.h.inc"
+using namespace mlir;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "mlir/Dialect/Shard/Transforms/Passes.capi.cpp.inc"
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/mlir/lib/CAPI/Dialect/TensorPasses.cpp b/mlir/lib/CAPI/Dialect/TensorPasses.cpp
new file mode 100644
index 0000000000000..74bf7f3688d35
--- /dev/null
+++ b/mlir/lib/CAPI/Dialect/TensorPasses.cpp
@@ -0,0 +1,25 @@
+//===- TensorPasses.cpp - C API for Tensor Dialect Passes -----------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "mlir/CAPI/Pass.h"
+#include "mlir/Dialect/Tensor/Transforms/Passes.h"
+#include "mlir/Pass/Pass.h"
+
+// Must include the declarations as they carry important visibility attributes.
+#include "mlir/Dialect/Tensor/Transforms/Passes.capi.h.inc"
+using namespace mlir;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "mlir/Dialect/Tensor/Transforms/Passes.capi.cpp.inc"
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/mlir/lib/CAPI/Dialect/Tosa.cpp b/mlir/lib/CAPI/Dialect/Tosa.cpp
new file mode 100644
index 0000000000000..e6f2434403a82
--- /dev/null
+++ b/mlir/lib/CAPI/Dialect/Tosa.cpp
@@ -0,0 +1,13 @@
+//===- Tosa.cpp - C Interface for Tosa dialect ----------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "mlir-c/Dialect/Tosa.h"
+#include "mlir/CAPI/Registration.h"
+#include "mlir/Dialect/Tosa/IR/Tosa.h"
+
+MLIR_DEFINE_CAPI_DIALECT_REGISTRATION(Tosa, tosa, mlir::tosa::TosaDialect)
diff --git a/mlir/lib/CAPI/Dialect/TosaPasses.cpp b/mlir/lib/CAPI/Dialect/TosaPasses.cpp
new file mode 100644
index 0000000000000..09b93cb7ce631
--- /dev/null
+++ b/mlir/lib/CAPI/Dialect/TosaPasses.cpp
@@ -0,0 +1,25 @@
+//===- TosaPasses.cpp - C API for Tosa Dialect Passes ---------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "mlir/CAPI/Pass.h"
+#include "mlir/Dialect/Tosa/Transforms/Passes.h"
+#include "mlir/Pass/Pass.h"
+
+// Must include the declarations as they carry important visibility attributes.
+#include "mlir/Dialect/Tosa/Transforms/Passes.capi.h.inc"
+using namespace mlir;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "mlir/Dialect/Tosa/Transforms/Passes.capi.cpp.inc"
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/mlir/lib/CAPI/Dialect/TransformPasses.cpp b/mlir/lib/CAPI/Dialect/TransformPasses.cpp
new file mode 100644
index 0000000000000..ce8a87da4c523
--- /dev/null
+++ b/mlir/lib/CAPI/Dialect/TransformPasses.cpp
@@ -0,0 +1,25 @@
+//===- TransformPasses.cpp - C API for Transform Dialect Passes -----------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "mlir/CAPI/Pass.h"
+#include "mlir/Dialect/Transform/Transforms/Passes.h"
+#include "mlir/Pass/Pass.h"
+
+// Must include the declarations as they carry important visibility attributes.
+#include "mlir/Dialect/Transform/Transforms/Passes.capi.h.inc"
+using namespace mlir;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "mlir/Dialect/Transform/Transforms/Passes.capi.cpp.inc"
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/mlir/lib/CAPI/Dialect/UB.cpp b/mlir/lib/CAPI/Dialect/UB.cpp
new file mode 100644
index 0000000000000..2ed6dc6f66e30
--- /dev/null
+++ b/mlir/lib/CAPI/Dialect/UB.cpp
@@ -0,0 +1,13 @@
+//===- UB.cpp - C Interface for UB dialect --------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "mlir-c/Dialect/UB.h"
+#include "mlir/CAPI/Registration.h"
+#include "mlir/Dialect/UB/IR/UB.h"
+
+MLIR_DEFINE_CAPI_DIALECT_REGISTRATION(UB, ub, mlir::ub::UBDialect)
\ No newline at end of file
diff --git a/mlir/lib/CAPI/Dialect/VectorPasses.cpp b/mlir/lib/CAPI/Dialect/VectorPasses.cpp
new file mode 100644
index 0000000000000..3defac7b3849d
--- /dev/null
+++ b/mlir/lib/CAPI/Dialect/VectorPasses.cpp
@@ -0,0 +1,25 @@
+//===- VectorPasses.cpp - C API for Vector Dialect Passes -----------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "mlir/CAPI/Pass.h"
+#include "mlir/Dialect/Vector/Transforms/Passes.h"
+#include "mlir/Pass/Pass.h"
+
+// Must include the declarations as they carry important visibility attributes.
+#include "mlir/Dialect/Vector/Transforms/Passes.capi.h.inc"
+using namespace mlir;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "mlir/Dialect/Vector/Transforms/Passes.capi.cpp.inc"
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/mlir/lib/CAPI/Dialect/WasmSSA.cpp b/mlir/lib/CAPI/Dialect/WasmSSA.cpp
new file mode 100644
index 0000000000000..98a7130847469
--- /dev/null
+++ b/mlir/lib/CAPI/Dialect/WasmSSA.cpp
@@ -0,0 +1,14 @@
+//===- WasmSSA.cpp - C Interface for WasmSSA dialect ----------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "mlir-c/Dialect/WasmSSA.h"
+#include "mlir/CAPI/Registration.h"
+#include "mlir/Dialect/WasmSSA/IR/WasmSSA.h"
+
+MLIR_DEFINE_CAPI_DIALECT_REGISTRATION(WasmSSA, wasmssa, 
+                                      mlir::wasmssa::WasmSSADialect)
diff --git a/mlir/lib/CAPI/Dialect/X86Vector.cpp b/mlir/lib/CAPI/Dialect/X86Vector.cpp
new file mode 100644
index 0000000000000..10573c7c1683e
--- /dev/null
+++ b/mlir/lib/CAPI/Dialect/X86Vector.cpp
@@ -0,0 +1,14 @@
+//===- X86Vector.cpp - C Interface for X86Vector dialect ------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "mlir-c/Dialect/X86Vector.h"
+#include "mlir/CAPI/Registration.h"
+#include "mlir/Dialect/X86Vector/IR/X86Vector.h"
+
+MLIR_DEFINE_CAPI_DIALECT_REGISTRATION(X86Vector, x86vector,
+                                      mlir::x86vector::X86VectorDialect)
diff --git a/mlir/lib/CAPI/Dialect/XeGPU.cpp b/mlir/lib/CAPI/Dialect/XeGPU.cpp
new file mode 100644
index 0000000000000..e8768e3bf3951
--- /dev/null
+++ b/mlir/lib/CAPI/Dialect/XeGPU.cpp
@@ -0,0 +1,13 @@
+//===- XeGPU.cpp - C Interface for XeGPU dialect --------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "mlir-c/Dialect/XeGPU.h"
+#include "mlir/CAPI/Registration.h"
+#include "mlir/Dialect/XeGPU/IR/XeGPU.h"
+
+MLIR_DEFINE_CAPI_DIALECT_REGISTRATION(XeGPU, xegpu, mlir::xegpu::XeGPUDialect)

>From 829d82fd87ec11aca35306cea052d45bc4feac26 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sergio=20S=C3=A1nchez=20Ram=C3=ADrez?=
 <mofeing+github at gmail.com>
Date: Mon, 22 Dec 2025 22:52:03 +0100
Subject: [PATCH 10/16] fix typo

---
 mlir/lib/CAPI/Dialect/OpenACC.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/mlir/lib/CAPI/Dialect/OpenACC.cpp b/mlir/lib/CAPI/Dialect/OpenACC.cpp
index 1ba64cbeb3b5e..49be8a019e558 100644
--- a/mlir/lib/CAPI/Dialect/OpenACC.cpp
+++ b/mlir/lib/CAPI/Dialect/OpenACC.cpp
@@ -10,5 +10,5 @@
 #include "mlir/CAPI/Registration.h"
 #include "mlir/Dialect/OpenACC/IR/OpenACC.h"
 
-MLIR_DEFINE_CAPI_DIALECT_REGISTRATION(OpenACC, openacc,
-                                      mlir::openacc::OpenACCDialect)
+MLIR_DEFINE_CAPI_DIALECT_REGISTRATION(OpenACC, acc,
+                                      mlir::acc::OpenACCDialect)

>From cdf9673a18b12df800ee89c3a588355173d22fb0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sergio=20S=C3=A1nchez=20Ram=C3=ADrez?=
 <mofeing+github at gmail.com>
Date: Mon, 22 Dec 2025 22:56:49 +0100
Subject: [PATCH 11/16] add CAPI bindings for vcix, xevm dialects

---
 mlir/include/mlir-c/Dialect/VCIX.h   | 25 +++++++++++++++++++++++++
 mlir/include/mlir-c/Dialect/XeVM.cpp | 25 +++++++++++++++++++++++++
 mlir/lib/CAPI/Dialect/CMakeLists.txt | 18 ++++++++++++++++++
 mlir/lib/CAPI/Dialect/VCIX.cpp       | 13 +++++++++++++
 mlir/lib/CAPI/Dialect/XeVM.cpp       | 13 +++++++++++++
 5 files changed, 94 insertions(+)
 create mode 100644 mlir/include/mlir-c/Dialect/VCIX.h
 create mode 100644 mlir/include/mlir-c/Dialect/XeVM.cpp
 create mode 100644 mlir/lib/CAPI/Dialect/VCIX.cpp
 create mode 100644 mlir/lib/CAPI/Dialect/XeVM.cpp

diff --git a/mlir/include/mlir-c/Dialect/VCIX.h b/mlir/include/mlir-c/Dialect/VCIX.h
new file mode 100644
index 0000000000000..d0201633cc82f
--- /dev/null
+++ b/mlir/include/mlir-c/Dialect/VCIX.h
@@ -0,0 +1,25 @@
+//===-- mlir-c/Dialect/VCIX.h - C API for VCIX dialect ------------*- C -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM
+// Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef MLIR_C_DIALECT_VCIX_H
+#define MLIR_C_DIALECT_VCIX_H
+
+#include "mlir-c/IR.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+MLIR_DECLARE_CAPI_DIALECT_REGISTRATION(VCIX, vcix);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // MLIR_C_DIALECT_VCIX_H
diff --git a/mlir/include/mlir-c/Dialect/XeVM.cpp b/mlir/include/mlir-c/Dialect/XeVM.cpp
new file mode 100644
index 0000000000000..d8560d1c279cc
--- /dev/null
+++ b/mlir/include/mlir-c/Dialect/XeVM.cpp
@@ -0,0 +1,25 @@
+//===-- mlir-c/Dialect/XeVM.h - C API for XeVM dialect ------------*- C -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM
+// Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef MLIR_C_DIALECT_XeVM_H
+#define MLIR_C_DIALECT_XeVM_H
+
+#include "mlir-c/IR.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+MLIR_DECLARE_CAPI_DIALECT_REGISTRATION(XeVM, xevm);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // MLIR_C_DIALECT_XeVM_H
diff --git a/mlir/lib/CAPI/Dialect/CMakeLists.txt b/mlir/lib/CAPI/Dialect/CMakeLists.txt
index 1596b27f596df..ad0c6d0afeb1f 100644
--- a/mlir/lib/CAPI/Dialect/CMakeLists.txt
+++ b/mlir/lib/CAPI/Dialect/CMakeLists.txt
@@ -417,6 +417,15 @@ add_mlir_upstream_c_api_library(MLIRCAPIUB
   MLIRUBDialect
 )
 
+add_mlir_upstream_c_api_library(MLIRCAPIVCIX
+  VCIX.cpp
+
+  PARTIAL_SOURCES_INTENDED
+  LINK_LIBS PUBLIC
+  MLIRCAPIIR
+  MLIRVCIXDialect
+)
+
 add_mlir_upstream_c_api_library(MLIRCAPIVector
   Vector.cpp
   VectorPasses.cpp
@@ -453,3 +462,12 @@ add_mlir_upstream_c_api_library(MLIRCAPIXeGPU
   MLIRCAPIIR
   MLIRXeGPUDialect
 )
+
+add_mlir_upstream_c_api_library(MLIRCAPIXeVM
+  XeVM.cpp
+
+  PARTIAL_SOURCES_INTENDED
+  LINK_LIBS PUBLIC
+  MLIRCAPIIR
+  MLIRXeVMDialect
+)
diff --git a/mlir/lib/CAPI/Dialect/VCIX.cpp b/mlir/lib/CAPI/Dialect/VCIX.cpp
new file mode 100644
index 0000000000000..f237d1d6c3397
--- /dev/null
+++ b/mlir/lib/CAPI/Dialect/VCIX.cpp
@@ -0,0 +1,13 @@
+//===- VCIX.cpp - C Interface for VCIX dialect ----------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "mlir-c/Dialect/VCIX.h"
+#include "mlir/CAPI/Registration.h"
+#include "mlir/Dialect/LLVMIR/VCIXDialect.h"
+
+MLIR_DEFINE_CAPI_DIALECT_REGISTRATION(VCIX, vcix, mlir::VCIX::VCIXDialect)
diff --git a/mlir/lib/CAPI/Dialect/XeVM.cpp b/mlir/lib/CAPI/Dialect/XeVM.cpp
new file mode 100644
index 0000000000000..bfa744e9f1e4c
--- /dev/null
+++ b/mlir/lib/CAPI/Dialect/XeVM.cpp
@@ -0,0 +1,13 @@
+//===- XeVM.cpp - C Interface for XeVM dialect ----------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "mlir-c/Dialect/XeVM.h"
+#include "mlir/CAPI/Registration.h"
+#include "mlir/Dialect/LLVMIR/XeVMDialect.h"
+
+MLIR_DEFINE_CAPI_DIALECT_REGISTRATION(XeVM, xevm, mlir::XeVM::XeVMDialect)

>From 73a7506044415f0ffde6bfc82d61239fc13a65a7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sergio=20S=C3=A1nchez=20Ram=C3=ADrez?=
 <mofeing+github at gmail.com>
Date: Mon, 22 Dec 2025 23:00:29 +0100
Subject: [PATCH 12/16] format code

---
 mlir/lib/CAPI/Dialect/OpenACC.cpp | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/mlir/lib/CAPI/Dialect/OpenACC.cpp b/mlir/lib/CAPI/Dialect/OpenACC.cpp
index 49be8a019e558..c82210506eba0 100644
--- a/mlir/lib/CAPI/Dialect/OpenACC.cpp
+++ b/mlir/lib/CAPI/Dialect/OpenACC.cpp
@@ -10,5 +10,4 @@
 #include "mlir/CAPI/Registration.h"
 #include "mlir/Dialect/OpenACC/IR/OpenACC.h"
 
-MLIR_DEFINE_CAPI_DIALECT_REGISTRATION(OpenACC, acc,
-                                      mlir::acc::OpenACCDialect)
+MLIR_DEFINE_CAPI_DIALECT_REGISTRATION(OpenACC, acc, mlir::acc::OpenACCDialect)

>From 99d454e511e1390ea6ab12f32fad3f7486abe7d4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sergio=20S=C3=A1nchez=20Ram=C3=ADrez?=
 <mofeing+github at gmail.com>
Date: Mon, 22 Dec 2025 23:01:18 +0100
Subject: [PATCH 13/16] Format code

---
 mlir/lib/CAPI/Dialect/WasmSSA.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mlir/lib/CAPI/Dialect/WasmSSA.cpp b/mlir/lib/CAPI/Dialect/WasmSSA.cpp
index 98a7130847469..976d8924df82e 100644
--- a/mlir/lib/CAPI/Dialect/WasmSSA.cpp
+++ b/mlir/lib/CAPI/Dialect/WasmSSA.cpp
@@ -10,5 +10,5 @@
 #include "mlir/CAPI/Registration.h"
 #include "mlir/Dialect/WasmSSA/IR/WasmSSA.h"
 
-MLIR_DEFINE_CAPI_DIALECT_REGISTRATION(WasmSSA, wasmssa, 
+MLIR_DEFINE_CAPI_DIALECT_REGISTRATION(WasmSSA, wasmssa,
                                       mlir::wasmssa::WasmSSADialect)

>From cf70ee38aa3a359c87dd858372a9514cf5da2263 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sergio=20S=C3=A1nchez=20Ram=C3=ADrez?=
 <mofeing+github at gmail.com>
Date: Mon, 22 Dec 2025 23:47:27 +0100
Subject: [PATCH 14/16] try fix undeclared identifiers

---
 mlir/lib/CAPI/Dialect/AMDGPUPasses.cpp    | 1 +
 mlir/lib/CAPI/Dialect/ArithPasses.cpp     | 1 +
 mlir/lib/CAPI/Dialect/FuncPasses.cpp      | 1 +
 mlir/lib/CAPI/Dialect/TransformPasses.cpp | 1 +
 4 files changed, 4 insertions(+)

diff --git a/mlir/lib/CAPI/Dialect/AMDGPUPasses.cpp b/mlir/lib/CAPI/Dialect/AMDGPUPasses.cpp
index a6312c5fc684c..d76ef760b9252 100644
--- a/mlir/lib/CAPI/Dialect/AMDGPUPasses.cpp
+++ b/mlir/lib/CAPI/Dialect/AMDGPUPasses.cpp
@@ -13,6 +13,7 @@
 // Must include the declarations as they carry important visibility attributes.
 #include "mlir/Dialect/AMDGPU/Transforms/Passes.capi.h.inc"
 using namespace mlir;
+using namespace mlir::amdgpu;
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/mlir/lib/CAPI/Dialect/ArithPasses.cpp b/mlir/lib/CAPI/Dialect/ArithPasses.cpp
index abdf425df741a..bd994925bd61b 100644
--- a/mlir/lib/CAPI/Dialect/ArithPasses.cpp
+++ b/mlir/lib/CAPI/Dialect/ArithPasses.cpp
@@ -13,6 +13,7 @@
 // Must include the declarations as they carry important visibility attributes.
 #include "mlir/Dialect/Arith/Transforms/Passes.capi.h.inc"
 using namespace mlir;
+using namespace mlir::arith;
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/mlir/lib/CAPI/Dialect/FuncPasses.cpp b/mlir/lib/CAPI/Dialect/FuncPasses.cpp
index 785ef620741f3..96c957f510d2a 100644
--- a/mlir/lib/CAPI/Dialect/FuncPasses.cpp
+++ b/mlir/lib/CAPI/Dialect/FuncPasses.cpp
@@ -13,6 +13,7 @@
 // Must include the declarations as they carry important visibility attributes.
 #include "mlir/Dialect/Func/Transforms/Passes.capi.h.inc"
 using namespace mlir;
+using namespace mlir::func;
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/mlir/lib/CAPI/Dialect/TransformPasses.cpp b/mlir/lib/CAPI/Dialect/TransformPasses.cpp
index ce8a87da4c523..957cc1984311a 100644
--- a/mlir/lib/CAPI/Dialect/TransformPasses.cpp
+++ b/mlir/lib/CAPI/Dialect/TransformPasses.cpp
@@ -13,6 +13,7 @@
 // Must include the declarations as they carry important visibility attributes.
 #include "mlir/Dialect/Transform/Transforms/Passes.capi.h.inc"
 using namespace mlir;
+using namespace mlir::transform;
 
 #ifdef __cplusplus
 extern "C" {

>From 9e784fa39277dc6459c2dac8d524ad70733a5672 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sergio=20S=C3=A1nchez=20Ram=C3=ADrez?=
 <mofeing+github at gmail.com>
Date: Mon, 22 Dec 2025 23:48:34 +0100
Subject: [PATCH 15/16] add missing fix for undeclared identifier

---
 mlir/lib/CAPI/Dialect/LLVMPasses.cpp | 1 +
 1 file changed, 1 insertion(+)

diff --git a/mlir/lib/CAPI/Dialect/LLVMPasses.cpp b/mlir/lib/CAPI/Dialect/LLVMPasses.cpp
index a8f62a0101681..cc3f14997fb13 100644
--- a/mlir/lib/CAPI/Dialect/LLVMPasses.cpp
+++ b/mlir/lib/CAPI/Dialect/LLVMPasses.cpp
@@ -13,6 +13,7 @@
 // Must include the declarations as they carry important visibility attributes.
 #include "mlir/Dialect/LLVM/Transforms/Passes.capi.h.inc"
 using namespace mlir;
+using namespace mlir::llvm;
 
 #ifdef __cplusplus
 extern "C" {

>From ee2497259327a14e459e3de09f18b0bdf7ef21c5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sergio=20S=C3=A1nchez=20Ram=C3=ADrez?=
 <mofeing+github at gmail.com>
Date: Tue, 23 Dec 2025 01:29:02 +0100
Subject: [PATCH 16/16] fix deps

---
 mlir/lib/CAPI/Dialect/CMakeLists.txt | 97 +++++++++++++++++++++++++++-
 1 file changed, 96 insertions(+), 1 deletion(-)

diff --git a/mlir/lib/CAPI/Dialect/CMakeLists.txt b/mlir/lib/CAPI/Dialect/CMakeLists.txt
index ad0c6d0afeb1f..c4e1a59843987 100644
--- a/mlir/lib/CAPI/Dialect/CMakeLists.txt
+++ b/mlir/lib/CAPI/Dialect/CMakeLists.txt
@@ -3,9 +3,13 @@ add_mlir_upstream_c_api_library(MLIRCAPIAffine
   AffinePasses.cpp
 
   PARTIAL_SOURCES_INTENDED
+  DEPENDS
+  MLIRAffinePassIncGen
+
   LINK_LIBS PUBLIC
   MLIRCAPIIR
   MLIRAffineDialect
+  MLIRAffineTransforms
 )
 
 add_mlir_upstream_c_api_library(MLIRCAPIAMDGPU
@@ -13,9 +17,13 @@ add_mlir_upstream_c_api_library(MLIRCAPIAMDGPU
   AMDGPUPasses.cpp
 
   PARTIAL_SOURCES_INTENDED
+  DEPENDS
+  MLIRNVGPUPassIncGen
+
   LINK_LIBS PUBLIC
   MLIRCAPIIR
   MLIRAMDGPUDialect
+  MLIRAMDGPUTransforms
 )
 
 add_mlir_upstream_c_api_library(MLIRCAPIAMX
@@ -32,18 +40,26 @@ add_mlir_upstream_c_api_library(MLIRCAPIArith
   ArithPasses.cpp
 
   PARTIAL_SOURCES_INTENDED
+  DEPENDS
+  MLIRArithPassIncGen
+
   LINK_LIBS PUBLIC
   MLIRCAPIIR
   MLIRArithDialect
+  MLIRArithTransforms
 )
 
 add_mlir_upstream_c_api_library(MLIRCAPIArmNeon
   ArmNeon.cpp
 
   PARTIAL_SOURCES_INTENDED
+  DEPENDS
+  MLIRArmNeonPassIncGen
+
   LINK_LIBS PUBLIC
   MLIRCAPIIR
   MLIRArmNeonDialect
+  MLIRArmNeonTransforms
 )
 
 add_mlir_upstream_c_api_library(MLIRCAPIArmSME
@@ -51,9 +67,13 @@ add_mlir_upstream_c_api_library(MLIRCAPIArmSME
   ArmSMEPasses.cpp
 
   PARTIAL_SOURCES_INTENDED
+  DEPENDS
+  MLIRArmSMEPassIncGen
+
   LINK_LIBS PUBLIC
   MLIRCAPIIR
   MLIRArmSMEDialect
+  MLIRArmSMETransforms
 )
 
 add_mlir_upstream_c_api_library(MLIRCAPIArmSVE
@@ -61,9 +81,13 @@ add_mlir_upstream_c_api_library(MLIRCAPIArmSVE
   ArmSVEPasses.cpp
 
   PARTIAL_SOURCES_INTENDED
+  DEPENDS
+  MLIRArmSVEPassIncGen
+
   LINK_LIBS PUBLIC
   MLIRCAPIIR
   MLIRArmSVEDialect
+  MLIRArmSVETransforms
 )
 
 add_mlir_upstream_c_api_library(MLIRCAPIAsync
@@ -86,9 +110,13 @@ add_mlir_upstream_c_api_library(MLIRCAPIBufferization
   BufferizationPasses.cpp
 
   PARTIAL_SOURCES_INTENDED
+  DEPENDS
+  MLIRBufferizationPassIncGen
+
   LINK_LIBS PUBLIC
   MLIRCAPIIR
   MLIRBufferizationDialect
+  MLIRBufferizationTransforms
 )
 
 add_mlir_upstream_c_api_library(MLIRCAPIControlFlow
@@ -114,9 +142,13 @@ add_mlir_upstream_c_api_library(MLIRCAPIEmitC
   EmitCPasses.cpp
 
   PARTIAL_SOURCES_INTENDED
+  DEPENDS
+  MLIREmitCPassIncGen
+
   LINK_LIBS PUBLIC
   MLIRCAPIIR
   MLIREmitCDialect
+  MLIREmitCTransforms
 )
 
 add_mlir_upstream_c_api_library(MLIRCAPIFunc
@@ -124,9 +156,13 @@ add_mlir_upstream_c_api_library(MLIRCAPIFunc
   FuncPasses.cpp
 
   PARTIAL_SOURCES_INTENDED
+  DEPENDS
+  MLIRFuncPassIncGen
+
   LINK_LIBS PUBLIC
   MLIRCAPIIR
   MLIRFuncDialect
+  MLIRFuncTransforms
 )
 
 add_mlir_upstream_c_api_library(MLIRCAPIGPU
@@ -181,9 +217,13 @@ add_mlir_upstream_c_api_library(MLIRCAPILLVM
   LLVMPasses.cpp
 
   PARTIAL_SOURCES_INTENDED
+  DEPENDS
+  MLIRLLVMPassIncGen
+
   LINK_LIBS PUBLIC
   MLIRCAPIIR
   MLIRLLVMDialect
+  MLIRLLVMTransforms
 )
 
 add_mlir_upstream_c_api_library(MLIRCAPIMath
@@ -191,9 +231,13 @@ add_mlir_upstream_c_api_library(MLIRCAPIMath
   MathPasses.cpp
 
   PARTIAL_SOURCES_INTENDED
+  DEPENDS
+  MLIRMathPassIncGen
+
   LINK_LIBS PUBLIC
   MLIRCAPIIR
   MLIRMathDialect
+  MLIRMathTransforms
 )
 
 add_mlir_upstream_c_api_library(MLIRCAPIMemRef
@@ -201,9 +245,14 @@ add_mlir_upstream_c_api_library(MLIRCAPIMemRef
   MemRefPasses.cpp
 
   PARTIAL_SOURCES_INTENDED
+  PARTIAL_SOURCES_INTENDED
+  DEPENDS
+  MLIRMemRefPassIncGen
+
   LINK_LIBS PUBLIC
   MLIRCAPIIR
   MLIRMemRefDialect
+  MLIRMemRefTransforms
 )
 
 add_mlir_upstream_c_api_library(MLIRCAPIMLProgram
@@ -211,9 +260,13 @@ add_mlir_upstream_c_api_library(MLIRCAPIMLProgram
   MLProgramPasses.cpp
 
   PARTIAL_SOURCES_INTENDED
+  DEPENDS
+  MLIRMLProgramPassIncGen
+
   LINK_LIBS PUBLIC
   MLIRCAPIIR
   MLIRMLProgramDialect
+  MLIRMLProgramTransforms
 )
 
 add_mlir_upstream_c_api_library(MLIRCAPIMPI
@@ -230,9 +283,13 @@ add_mlir_upstream_c_api_library(MLIRCAPINVGPU
   NVGPUPasses.cpp
 
   PARTIAL_SOURCES_INTENDED
+  DEPENDS
+  MLIRNVGPUPassIncGen
+
   LINK_LIBS PUBLIC
   MLIRCAPIIR
   MLIRNVGPUDialect
+  MLIRNVGPUTransforms
 )
 
 add_mlir_upstream_c_api_library(MLIRCAPINVVM
@@ -249,9 +306,13 @@ add_mlir_upstream_c_api_library(MLIRCAPIOpenACC
   OpenACCPasses.cpp
 
   PARTIAL_SOURCES_INTENDED
+  DEPENDS
+  MLIROpenACCPassIncGen
+
   LINK_LIBS PUBLIC
   MLIRCAPIIR
   MLIROpenACCDialect
+  MLIROpenACCTransforms
 )
 
 add_mlir_upstream_c_api_library(MLIRCAPIOpenMP
@@ -313,9 +374,13 @@ add_mlir_upstream_c_api_library(MLIRCAPISCF
   SCFPasses.cpp
 
   PARTIAL_SOURCES_INTENDED
+  DEPENDS
+  MLIRSCFPassIncGen
+
   LINK_LIBS PUBLIC
   MLIRCAPIIR
   MLIRSCFDialect
+  MLIRSCFTransforms
 )
 
 add_mlir_upstream_c_api_library(MLIRCAPIShape
@@ -323,9 +388,13 @@ add_mlir_upstream_c_api_library(MLIRCAPIShape
   ShapePasses.cpp
 
   PARTIAL_SOURCES_INTENDED
+  DEPENDS
+  MLIRShapePassIncGen
+
   LINK_LIBS PUBLIC
   MLIRCAPIIR
   MLIRShapeDialect
+  MLIRShapeTransforms
 )
 
 add_mlir_upstream_c_api_library(MLIRCAPIShard
@@ -333,9 +402,13 @@ add_mlir_upstream_c_api_library(MLIRCAPIShard
   ShardPasses.cpp
 
   PARTIAL_SOURCES_INTENDED
+  DEPENDS
+  MLIRShardPassIncGen
+
   LINK_LIBS PUBLIC
   MLIRCAPIIR
   MLIRShardDialect
+  MLIRShardTransforms
 )
 
 add_mlir_upstream_c_api_library(MLIRCAPISMT
@@ -347,12 +420,14 @@ add_mlir_upstream_c_api_library(MLIRCAPISMT
   MLIRSMT
 )
 
-
 add_mlir_upstream_c_api_library(MLIRCAPISparseTensor
   SparseTensor.cpp
   SparseTensorPasses.cpp
 
   PARTIAL_SOURCES_INTENDED
+  DEPENDS
+  MLIRSparseTensorPassIncGen
+
   LINK_LIBS PUBLIC
   MLIRCAPIIR
   MLIRSparseTensorDialect
@@ -364,9 +439,13 @@ add_mlir_upstream_c_api_library(MLIRCAPISPIRV
   SPIRVPasses.cpp
 
   PARTIAL_SOURCES_INTENDED
+  DEPENDS
+  MLIRSPIRVPassIncGen
+
   LINK_LIBS PUBLIC
   MLIRCAPIIR
   MLIRSPIRVDialect
+  MLIRSPIRVTransforms
 )
 
 add_mlir_upstream_c_api_library(MLIRCAPITensor
@@ -374,9 +453,13 @@ add_mlir_upstream_c_api_library(MLIRCAPITensor
   TensorPasses.cpp
 
   PARTIAL_SOURCES_INTENDED
+  DEPENDS
+  MLIRTensorPassIncGen
+
   LINK_LIBS PUBLIC
   MLIRCAPIIR
   MLIRTensorDialect
+  MLIRTensorTransforms
 )
 
 add_mlir_upstream_c_api_library(MLIRCAPITosa
@@ -384,9 +467,13 @@ add_mlir_upstream_c_api_library(MLIRCAPITosa
   TosaPasses.cpp
 
   PARTIAL_SOURCES_INTENDED
+  DEPENDS
+  MLIRTosaPassIncGen
+
   LINK_LIBS PUBLIC
   MLIRCAPIIR
   MLIRTosaDialect
+  MLIRTosaTransforms
 )
 
 add_mlir_upstream_c_api_library(MLIRCAPITransformDialect
@@ -394,9 +481,13 @@ add_mlir_upstream_c_api_library(MLIRCAPITransformDialect
   TransformPasses.cpp
 
   PARTIAL_SOURCES_INTENDED
+  DEPENDS
+  MLIRTransformPassIncGen
+
   LINK_LIBS PUBLIC
   MLIRCAPIIR
   MLIRTransformDialect
+  MLIRTransformTransforms
 )
 
 add_mlir_upstream_c_api_library(MLIRCAPITransformDialectTransforms
@@ -431,9 +522,13 @@ add_mlir_upstream_c_api_library(MLIRCAPIVector
   VectorPasses.cpp
 
   PARTIAL_SOURCES_INTENDED
+  DEPENDS
+  MLIRVectorPassIncGen
+
   LINK_LIBS PUBLIC
   MLIRCAPIIR
   MLIRVectorDialect
+  MLIRVectorTransforms
 )
 
 add_mlir_upstream_c_api_library(MLIRCAPIWasmSSA



More information about the llvm-commits mailing list