[Mlir-commits] [llvm] [mlir] [mlir][spirv] Fix cyclical dependency in bazel (PR #132785)

Karlo Basioli llvmlistbot at llvm.org
Tue Mar 25 03:36:07 PDT 2025


https://github.com/basioli-k updated https://github.com/llvm/llvm-project/pull/132785

>From 8d6ea88f8ac055fd2fb94867db176c12841bc56d Mon Sep 17 00:00:00 2001
From: basioli-k <k.basioli at gmail.com>
Date: Mon, 24 Mar 2025 17:14:25 +0000
Subject: [PATCH 1/2] Fix cyclicall dependency in build of SPIRV dialect

---
 .../SPIRV/Interfaces/SPIRVImageInterfaces.h   | 13 +++++
 .../SPIRV/Interfaces/SPIRVImageInterfaces.cpp |  2 +-
 .../llvm-project-overlay/mlir/BUILD.bazel     | 51 ++++++++++++++++++-
 3 files changed, 63 insertions(+), 3 deletions(-)

diff --git a/mlir/include/mlir/Dialect/SPIRV/Interfaces/SPIRVImageInterfaces.h b/mlir/include/mlir/Dialect/SPIRV/Interfaces/SPIRVImageInterfaces.h
index ca5a1dcd88171..4ba5d096a1b27 100644
--- a/mlir/include/mlir/Dialect/SPIRV/Interfaces/SPIRVImageInterfaces.h
+++ b/mlir/include/mlir/Dialect/SPIRV/Interfaces/SPIRVImageInterfaces.h
@@ -9,6 +9,19 @@
 #ifndef MLIR_DIALECT_SPIRV_IMAGE_INTERFACES_H_
 #define MLIR_DIALECT_SPIRV_IMAGE_INTERFACES_H_
 
+#include "mlir/IR/BuiltinOps.h"
+#include "mlir/IR/BuiltinTypes.h"
+#include "mlir/IR/OpDefinition.h"
+#include "mlir/IR/OpImplementation.h"
+#include "mlir/IR/Operation.h"
+#include "mlir/IR/Value.h"
+#include "mlir/Interfaces/CallInterfaces.h"
+#include "mlir/Interfaces/ControlFlowInterfaces.h"
+#include "mlir/Interfaces/FunctionInterfaces.h"
+#include "mlir/Interfaces/InferTypeOpInterface.h"
+#include "mlir/Interfaces/SideEffectInterfaces.h"
+#include "llvm/Support/PointerLikeTypeTraits.h"
+
 #include "mlir/Dialect/SPIRV/Interfaces/SPIRVImageInterfaces.h.inc"
 
 #endif // MLIR_DIALECT_SPIRV_IMAGE_INTERFACES_H_
diff --git a/mlir/lib/Dialect/SPIRV/Interfaces/SPIRVImageInterfaces.cpp b/mlir/lib/Dialect/SPIRV/Interfaces/SPIRVImageInterfaces.cpp
index e10da60184eeb..fce341d3a5d72 100644
--- a/mlir/lib/Dialect/SPIRV/Interfaces/SPIRVImageInterfaces.cpp
+++ b/mlir/lib/Dialect/SPIRV/Interfaces/SPIRVImageInterfaces.cpp
@@ -6,7 +6,7 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include "mlir/Dialect/SPIRV/IR/SPIRVOps.h"
+#include "mlir/Dialect/SPIRV/Interfaces/SPIRVImageInterfaces.h"
 
 using namespace mlir;
 
diff --git a/utils/bazel/llvm-project-overlay/mlir/BUILD.bazel b/utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
index 7b12b5d43cc22..bfea17fd18625 100644
--- a/utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
+++ b/utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
@@ -6486,6 +6486,7 @@ cc_library(
         ":Pass",
         ":SPIRVCommonAttrToLLVMConversion",
         ":SPIRVDialect",
+        ":SPIRVImageInterfaces",
         ":SPIRVUtils",
         ":Support",
         ":TransformUtils",
@@ -7241,8 +7242,8 @@ td_library(
         "include/mlir/Dialect/Ptr/IR/MemorySpaceInterfaces.td",
         "include/mlir/Dialect/Ptr/IR/PtrAttrDefs.td",
         "include/mlir/Dialect/Ptr/IR/PtrDialect.td",
-        "include/mlir/Dialect/Ptr/IR/PtrOps.td",
         "include/mlir/Dialect/Ptr/IR/PtrEnums.td",
+        "include/mlir/Dialect/Ptr/IR/PtrOps.td",
     ],
     includes = ["include"],
     deps = [
@@ -7389,6 +7390,13 @@ cc_library(
     ],
 )
 
+td_library(
+    name = "SPIRVImageInterfacesTdFiles",
+    srcs = ["include/mlir/Dialect/SPIRV/Interfaces/SPIRVImageInterfaces.td"],
+    includes = ["include"],
+    deps = [":OpBaseTdFiles"],
+)
+
 td_library(
     name = "SPIRVOpsTdFiles",
     srcs = glob(["include/mlir/Dialect/SPIRV/IR/*.td"]),
@@ -7400,10 +7408,48 @@ td_library(
         ":FunctionInterfacesTdFiles",
         ":InferTypeOpInterfaceTdFiles",
         ":OpBaseTdFiles",
+        ":SPIRVImageInterfacesTdFiles",
         ":SideEffectInterfacesTdFiles",
     ],
 )
 
+gentbl_cc_library(
+    name = "SPIRVImageInterfacesIncGen",
+    tbl_outs = [
+        (
+            ["-gen-op-interface-decls"],
+            "include/mlir/Dialect/SPIRV/Interfaces/SPIRVImageInterfaces.h.inc",
+        ),
+        (
+            ["-gen-op-interface-defs"],
+            "include/mlir/Dialect/SPIRV/Interfaces/SPIRVImageInterfaces.cpp.inc",
+        ),
+    ],
+    tblgen = ":mlir-tblgen",
+    td_file = "include/mlir/Dialect/SPIRV/Interfaces/SPIRVImageInterfaces.td",
+    deps = [
+        ":SPIRVImageInterfacesTdFiles",
+        ":SPIRVOpsTdFiles",
+    ],
+)
+
+cc_library(
+    name = "SPIRVImageInterfaces",
+    srcs = ["lib/Dialect/SPIRV/Interfaces/SPIRVImageInterfaces.cpp"],
+    hdrs = ["include/mlir/Dialect/SPIRV/Interfaces/SPIRVImageInterfaces.h"],
+    includes = ["include"],
+    deps = [
+        ":CallOpInterfaces",
+        ":ControlFlowInterfaces",
+        ":FunctionInterfaces",
+        ":IR",
+        ":InferTypeOpInterface",
+        ":SPIRVImageInterfacesIncGen",
+        ":SideEffectInterfaces",
+        "//llvm:Support",
+    ],
+)
+
 gentbl_cc_library(
     name = "SPIRVOpsIncGen",
     tbl_outs = [
@@ -7556,6 +7602,7 @@ cc_library(
         ":SPIRVAttributesIncGen",
         ":SPIRVAvailabilityIncGen",
         ":SPIRVCanonicalizationIncGen",
+        ":SPIRVImageInterfaces",
         ":SPIRVOpsIncGen",
         ":SideEffectInterfaces",
         ":Support",
@@ -11088,8 +11135,8 @@ gentbl_cc_library(
     tblgen = ":mlir-tblgen",
     td_file = "include/mlir/Dialect/Quant/IR/QuantDialectBytecode.td",
     deps = [
-        ":BytecodeTdFiles",
         ":BuiltinDialectBytecodeTdFiles",
+        ":BytecodeTdFiles",
     ],
 )
 

>From 4e259f123f12ad5416faef96d5a5eba05c7fc598 Mon Sep 17 00:00:00 2001
From: basioli-k <k.basioli at gmail.com>
Date: Tue, 25 Mar 2025 10:35:53 +0000
Subject: [PATCH 2/2] fix

---
 .../Dialect/SPIRV/Interfaces/SPIRVImageInterfaces.h | 13 -------------
 .../SPIRV/Interfaces/SPIRVImageInterfaces.td        |  2 +-
 .../SPIRV/Interfaces/SPIRVImageInterfaces.cpp       |  2 ++
 utils/bazel/llvm-project-overlay/mlir/BUILD.bazel   |  5 -----
 4 files changed, 3 insertions(+), 19 deletions(-)

diff --git a/mlir/include/mlir/Dialect/SPIRV/Interfaces/SPIRVImageInterfaces.h b/mlir/include/mlir/Dialect/SPIRV/Interfaces/SPIRVImageInterfaces.h
index 4ba5d096a1b27..ca5a1dcd88171 100644
--- a/mlir/include/mlir/Dialect/SPIRV/Interfaces/SPIRVImageInterfaces.h
+++ b/mlir/include/mlir/Dialect/SPIRV/Interfaces/SPIRVImageInterfaces.h
@@ -9,19 +9,6 @@
 #ifndef MLIR_DIALECT_SPIRV_IMAGE_INTERFACES_H_
 #define MLIR_DIALECT_SPIRV_IMAGE_INTERFACES_H_
 
-#include "mlir/IR/BuiltinOps.h"
-#include "mlir/IR/BuiltinTypes.h"
-#include "mlir/IR/OpDefinition.h"
-#include "mlir/IR/OpImplementation.h"
-#include "mlir/IR/Operation.h"
-#include "mlir/IR/Value.h"
-#include "mlir/Interfaces/CallInterfaces.h"
-#include "mlir/Interfaces/ControlFlowInterfaces.h"
-#include "mlir/Interfaces/FunctionInterfaces.h"
-#include "mlir/Interfaces/InferTypeOpInterface.h"
-#include "mlir/Interfaces/SideEffectInterfaces.h"
-#include "llvm/Support/PointerLikeTypeTraits.h"
-
 #include "mlir/Dialect/SPIRV/Interfaces/SPIRVImageInterfaces.h.inc"
 
 #endif // MLIR_DIALECT_SPIRV_IMAGE_INTERFACES_H_
diff --git a/mlir/include/mlir/Dialect/SPIRV/Interfaces/SPIRVImageInterfaces.td b/mlir/include/mlir/Dialect/SPIRV/Interfaces/SPIRVImageInterfaces.td
index 2b681d9367a4a..fbb77a7ed2d68 100644
--- a/mlir/include/mlir/Dialect/SPIRV/Interfaces/SPIRVImageInterfaces.td
+++ b/mlir/include/mlir/Dialect/SPIRV/Interfaces/SPIRVImageInterfaces.td
@@ -13,7 +13,7 @@
 #ifndef MLIR_DIALECT_SPIRV_IMAGE_INTERFACES
 #define MLIR_DIALECT_SPIRV_IMAGE_INTERFACES
 
-include "mlir/Dialect/SPIRV/IR/SPIRVBase.td"
+include "mlir/IR/OpBase.td"
 
 // -----
 
diff --git a/mlir/lib/Dialect/SPIRV/Interfaces/SPIRVImageInterfaces.cpp b/mlir/lib/Dialect/SPIRV/Interfaces/SPIRVImageInterfaces.cpp
index fce341d3a5d72..eabcfcbfba93f 100644
--- a/mlir/lib/Dialect/SPIRV/Interfaces/SPIRVImageInterfaces.cpp
+++ b/mlir/lib/Dialect/SPIRV/Interfaces/SPIRVImageInterfaces.cpp
@@ -6,6 +6,8 @@
 //
 //===----------------------------------------------------------------------===//
 
+#include "mlir/IR/OpDefinition.h"
+
 #include "mlir/Dialect/SPIRV/Interfaces/SPIRVImageInterfaces.h"
 
 using namespace mlir;
diff --git a/utils/bazel/llvm-project-overlay/mlir/BUILD.bazel b/utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
index bfea17fd18625..40073eb59fd7a 100644
--- a/utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
+++ b/utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
@@ -7439,13 +7439,8 @@ cc_library(
     hdrs = ["include/mlir/Dialect/SPIRV/Interfaces/SPIRVImageInterfaces.h"],
     includes = ["include"],
     deps = [
-        ":CallOpInterfaces",
-        ":ControlFlowInterfaces",
-        ":FunctionInterfaces",
         ":IR",
-        ":InferTypeOpInterface",
         ":SPIRVImageInterfacesIncGen",
-        ":SideEffectInterfaces",
         "//llvm:Support",
     ],
 )



More information about the Mlir-commits mailing list