[Mlir-commits] [mlir] ccda5d7 - [mlir][SPIR-V] Support MaxByteOffset decoration in binary round trips (#235084)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Sat Oct 24 04:09:36 PDT 2026
Author: Arseniy Obolenskiy
Date: 2026-10-24T13:09:31+02:00
New Revision: ccda5d7abf91e00b91c743ed1e6a1cd200b42997
URL: https://github.com/llvm/llvm-project/commit/ccda5d7abf91e00b91c743ed1e6a1cd200b42997
DIFF: https://github.com/llvm/llvm-project/commit/ccda5d7abf91e00b91c743ed1e6a1cd200b42997.diff
LOG: [mlir][SPIR-V] Support MaxByteOffset decoration in binary round trips (#235084)
Added:
Modified:
mlir/lib/Target/SPIRV/Deserialization/Deserializer.cpp
mlir/lib/Target/SPIRV/Serialization/Serializer.cpp
mlir/test/Target/SPIRV/global-variable.mlir
Removed:
################################################################################
diff --git a/mlir/lib/Target/SPIRV/Deserialization/Deserializer.cpp b/mlir/lib/Target/SPIRV/Deserialization/Deserializer.cpp
index 2297f0307be7d..f658348ac6b6a 100644
--- a/mlir/lib/Target/SPIRV/Deserialization/Deserializer.cpp
+++ b/mlir/lib/Target/SPIRV/Deserialization/Deserializer.cpp
@@ -314,6 +314,7 @@ LogicalResult spirv::Deserializer::processDecoration(ArrayRef<uint32_t> words) {
break;
}
case spirv::Decoration::Alignment:
+ case spirv::Decoration::MaxByteOffset:
case spirv::Decoration::DescriptorSet:
case spirv::Decoration::Binding:
case spirv::Decoration::Location:
diff --git a/mlir/lib/Target/SPIRV/Serialization/Serializer.cpp b/mlir/lib/Target/SPIRV/Serialization/Serializer.cpp
index e92ef88ed6437..94ad645a6ebeb 100644
--- a/mlir/lib/Target/SPIRV/Serialization/Serializer.cpp
+++ b/mlir/lib/Target/SPIRV/Serialization/Serializer.cpp
@@ -379,6 +379,7 @@ LogicalResult Serializer::processDecorationAttr(Location loc, uint32_t resultID,
{static_cast<uint32_t>(attr.getValue())});
});
case spirv::Decoration::Alignment:
+ case spirv::Decoration::MaxByteOffset:
case spirv::Decoration::Binding:
case spirv::Decoration::DescriptorSet:
case spirv::Decoration::Location:
diff --git a/mlir/test/Target/SPIRV/global-variable.mlir b/mlir/test/Target/SPIRV/global-variable.mlir
index 986e207c5ce24..4982e2f55f35e 100644
--- a/mlir/test/Target/SPIRV/global-variable.mlir
+++ b/mlir/test/Target/SPIRV/global-variable.mlir
@@ -19,12 +19,14 @@ spirv.module Logical GLSL450 requires #spirv.vce<v1.0, [Shader, Linkage], []> {
// -----
-// Alignment is also preserved on module-scope variables.
-spirv.module Physical64 OpenCL requires #spirv.vce<v1.0, [Addresses, Kernel, Linkage], []> {
+// Alignment and MaxByteOffset are also preserved on module-scope variables.
+spirv.module Physical64 OpenCL requires #spirv.vce<v1.1, [Addresses, Kernel, Linkage], []> {
// CHECK: spirv.GlobalVariable @aligned {alignment = 16 : i32} : !spirv.ptr<f32, CrossWorkgroup>
// CHECK: spirv.GlobalVariable @high_bit {alignment = -2147483648 : i32} : !spirv.ptr<f32, CrossWorkgroup>
+ // CHECK: spirv.GlobalVariable @bounded {max_byte_offset = 64 : i32} : !spirv.ptr<f32, CrossWorkgroup>
spirv.GlobalVariable @aligned {alignment = 16 : i32} : !spirv.ptr<f32, CrossWorkgroup>
spirv.GlobalVariable @high_bit {alignment = 2147483648 : i32} : !spirv.ptr<f32, CrossWorkgroup>
+ spirv.GlobalVariable @bounded {max_byte_offset = 64 : i32} : !spirv.ptr<f32, CrossWorkgroup>
}
// -----
More information about the Mlir-commits
mailing list