[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