[Mlir-commits] [mlir] [mlir][SPIR-V] Pass serialization options in --serialize-spirv (PR #237710)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Sun Nov 1 03:14:27 PST 2026
llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-mlir-spirv
Author: Arseniy Obolenskiy (aobolensk)
<details>
<summary>Changes</summary>
serializeModule dropped its options, so --spirv-emit-debug-info had no effect
---
Full diff: https://github.com/llvm/llvm-project/pull/237710.diff
2 Files Affected:
- (modified) mlir/lib/Target/SPIRV/TranslateRegistration.cpp (+1-1)
- (modified) mlir/test/Target/SPIRV/graph-debug-info.mlir (+7-6)
``````````diff
diff --git a/mlir/lib/Target/SPIRV/TranslateRegistration.cpp b/mlir/lib/Target/SPIRV/TranslateRegistration.cpp
index be2586f1c69ab6..0eef9d262cc104 100644
--- a/mlir/lib/Target/SPIRV/TranslateRegistration.cpp
+++ b/mlir/lib/Target/SPIRV/TranslateRegistration.cpp
@@ -83,7 +83,7 @@ static LogicalResult
serializeModule(spirv::ModuleOp moduleOp, raw_ostream &output,
const spirv::SerializationOptions &options) {
SmallVector<uint32_t, 0> binary;
- if (failed(spirv::serialize(moduleOp, binary)))
+ if (failed(spirv::serialize(moduleOp, binary, options)))
return failure();
size_t sizeInBytes = binary.size() * sizeof(uint32_t);
diff --git a/mlir/test/Target/SPIRV/graph-debug-info.mlir b/mlir/test/Target/SPIRV/graph-debug-info.mlir
index 471f2d0f4994fc..a2f2a80ddb917d 100644
--- a/mlir/test/Target/SPIRV/graph-debug-info.mlir
+++ b/mlir/test/Target/SPIRV/graph-debug-info.mlir
@@ -1,4 +1,5 @@
// RUN: mlir-translate -no-implicit-module -split-input-file --verify-diagnostics -mlir-print-debuginfo -test-spirv-roundtrip-debug %s | FileCheck %s
+// RUN: mlir-translate -no-implicit-module -split-input-file -mlir-print-debuginfo --spirv-emit-debug-info -serialize-spirv -deserialize-spirv %s | FileCheck %s
// RUN: %if spirv-tools %{ rm -rf %t %}
// RUN: %if spirv-tools %{ mkdir %t %}
// RUN: %if spirv-tools %{ mlir-translate --no-implicit-module --serialize-spirv --spirv-emit-debug-info --split-input-file --spirv-save-validation-files-with-prefix=%t/module %s %}
@@ -8,16 +9,16 @@
// spirv DebugInfo: FileLineCol Locations
//===----------------------------------------------------------------------===//
-// CHECK: #loc[[LOC_TENSOR0:.*]] = loc("{{.*}}debug-info.mlir{{.*}}:21:27")
-// CHECK: #loc[[LOC_TENSOR1:.*]] = loc("{{.*}}debug-info.mlir{{.*}}:21:67")
-// CHECK: #loc[[LOC_TENSOR2:.*]] = loc("{{.*}}debug-info.mlir{{.*}}:21:105")
+// CHECK: #loc[[LOC_TENSOR0:.*]] = loc("{{.*}}debug-info.mlir{{.*}}:22:27")
+// CHECK: #loc[[LOC_TENSOR1:.*]] = loc("{{.*}}debug-info.mlir{{.*}}:22:67")
+// CHECK: #loc[[LOC_TENSOR2:.*]] = loc("{{.*}}debug-info.mlir{{.*}}:22:105")
spirv.module Logical Vulkan requires #spirv.vce<v1.6, [VulkanMemoryModel, Shader, Int8, Int16, Int64, Float16, TensorsARM, GraphARM], [SPV_ARM_tensors, SPV_ARM_graph, SPV_KHR_non_semantic_info]> {
spirv.GlobalVariable @conv2d_arg_0 bind(0, 0) : !spirv.ptr<!spirv.arm.tensor<1x16x16x1xi8>, UniformConstant>
spirv.GlobalVariable @conv2d_arg_1 bind(0, 1) : !spirv.ptr<!spirv.arm.tensor<8x3x3x1xi8>, UniformConstant>
spirv.GlobalVariable @conv2d_arg_2 bind(0, 2) : !spirv.ptr<!spirv.arm.tensor<8xi32>, UniformConstant>
spirv.GlobalVariable @conv2d_res_0 bind(0, 3) : !spirv.ptr<!spirv.arm.tensor<1x14x14x8xi32>, UniformConstant>
spirv.ARM.GraphEntryPoint @conv2d, @conv2d_arg_0, @conv2d_arg_1, @conv2d_arg_2, @conv2d_res_0
- // CHECK: spirv.ARM.Graph @{{.*}}(%arg0: !spirv.arm.tensor<1x16x16x1xi8> loc("{{.*}}debug-info.mlir{{.*}}:21:27"), %arg1: !spirv.arm.tensor<8x3x3x1xi8> loc("{{.*}}debug-info.mlir{{.*}}:21:67"), %arg2: !spirv.arm.tensor<8xi32> loc("{{.*}}debug-info.mlir{{.*}}:21:105")) -> !spirv.arm.tensor<1x14x14x8xi32> attributes {entry_point = true} {
+ // CHECK: spirv.ARM.Graph @{{.*}}(%arg0: !spirv.arm.tensor<1x16x16x1xi8> loc("{{.*}}debug-info.mlir{{.*}}:22:27"), %arg1: !spirv.arm.tensor<8x3x3x1xi8> loc("{{.*}}debug-info.mlir{{.*}}:22:67"), %arg2: !spirv.arm.tensor<8xi32> loc("{{.*}}debug-info.mlir{{.*}}:22:105")) -> !spirv.arm.tensor<1x14x14x8xi32> attributes {entry_point = true} {
spirv.ARM.Graph @conv2d(%arg0: !spirv.arm.tensor<1x16x16x1xi8>, %arg1: !spirv.arm.tensor<8x3x3x1xi8>, %arg2: !spirv.arm.tensor<8xi32>) -> (!spirv.arm.tensor<1x14x14x8xi32>) {
%0 = spirv.Constant dense<0> : !spirv.arm.tensor<1xi8>
%1 = spirv.Constant dense<0> : !spirv.arm.tensor<1xi8>
@@ -27,8 +28,8 @@ spirv.module Logical Vulkan requires #spirv.vce<v1.6, [VulkanMemoryModel, Shader
// CHECK: } loc(#loc[[LOC_GRAPH:.*]])
}
}
-// CHECK-DAG: #loc[[LOC_GRAPH]] = loc("{{.*}}debug-info.mlir{{.*}}:21:3")
-// CHECK-DAG: #loc[[LOC_OP]] = loc("{{.*}}debug-info.mlir{{.*}}:25:12")
+// CHECK-DAG: #loc[[LOC_GRAPH]] = loc("{{.*}}debug-info.mlir{{.*}}:22:3")
+// CHECK-DAG: #loc[[LOC_OP]] = loc("{{.*}}debug-info.mlir{{.*}}:26:12")
// -----
``````````
</details>
https://github.com/llvm/llvm-project/pull/237710
More information about the Mlir-commits
mailing list