[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