1- From 0560ef541b96e0e1e4b9e9597e52545efe06866c Mon Sep 17 00:00:00 2001
1+ From 3d426ddc810349f932191bfd0bcc6b59d8a0097a Mon Sep 17 00:00:00 2001
22From: Garra1980 <igor.zamyatin@intel.com>
3- Date: Fri, 30 Jan 2026 20:27:27 +0100
4- Subject: [PATCH] Add- serialization and de serialization support for spirv
3+ Date: Thu, 19 Feb 2026 23:11:28 +0100
4+ Subject: [PATCH] Add serialization and de serialization support for spirv
55
66---
77 mlir/lib/Target/SPIRV/Deserialization/Deserializer.cpp | 6 ++++++
88 mlir/lib/Target/SPIRV/Serialization/Serializer.cpp | 6 ++++++
99 2 files changed, 12 insertions(+)
1010
1111diff --git a/mlir/lib/Target/SPIRV/Deserialization/Deserializer.cpp b/mlir/lib/Target/SPIRV/Deserialization/Deserializer.cpp
12- index 8d1f9c26fe59..922fefabe21c 100644
12+ index e218bee4b4fe..4e486a2c203b 100644
1313--- a/mlir/lib/Target/SPIRV/Deserialization/Deserializer.cpp
1414+++ b/mlir/lib/Target/SPIRV/Deserialization/Deserializer.cpp
1515@@ -283,6 +283,7 @@ LogicalResult spirv::Deserializer::processDecoration(ArrayRef<uint32_t> words) {
@@ -19,8 +19,16 @@ index 8d1f9c26fe59..922fefabe21c 100644
1919+ case spirv::Decoration::Alignment:
2020 case spirv::Decoration::DescriptorSet:
2121 case spirv::Decoration::Binding:
22+ case spirv::Decoration::Location:
23+ @@ -291,6 +292,7 @@ LogicalResult spirv::Deserializer::processDecoration(ArrayRef<uint32_t> words) {
24+ case spirv::Decoration::Offset:
25+ case spirv::Decoration::XfbBuffer:
26+ case spirv::Decoration::XfbStride:
27+ + case spirv::Decoration::FuncParamIOKindINTEL:
2228 if (words.size() != 3) {
23- @@ -347,6 +348,10 @@ LogicalResult spirv::Deserializer::processDecoration(ArrayRef<uint32_t> words) {
29+ return emitError(unknownLoc, "OpDecorate with ")
30+ << decorationName << " needs a single integer literal";
31+ @@ -353,6 +355,10 @@ LogicalResult spirv::Deserializer::processDecoration(ArrayRef<uint32_t> words) {
2432 case spirv::Decoration::Invariant:
2533 case spirv::Decoration::Patch:
2634 case spirv::Decoration::Coherent:
@@ -29,32 +37,25 @@ index 8d1f9c26fe59..922fefabe21c 100644
2937+ case spirv::Decoration::VectorComputeFunctionINTEL:
3038+ case spirv::Decoration::VectorComputeVariableINTEL:
3139 if (words.size() != 2) {
32- return emitError(unknownLoc, "OpDecoration with ")
33- << decorationName << "needs a single target <id>";
34- @@ -356,6 +361,7 @@ LogicalResult spirv::Deserializer::processDecoration(ArrayRef<uint32_t> words) {
35- case spirv::Decoration::Location:
36- case spirv::Decoration::SpecId:
37- case spirv::Decoration::Index:
38- + case spirv::Decoration::FuncParamIOKindINTEL:
39- if (words.size() != 3) {
40- return emitError(unknownLoc, "OpDecoration with ")
41- << decorationName << "needs a single integer literal";
40+ return emitError(unknownLoc, "OpDecorate with ")
41+ << decorationName << " needs a single target <id>";
4242diff --git a/mlir/lib/Target/SPIRV/Serialization/Serializer.cpp b/mlir/lib/Target/SPIRV/Serialization/Serializer.cpp
43- index 840c9c990f9c..742bc4b7479c 100644
43+ index c21cb27b072f..37085c6e42a4 100644
4444--- a/mlir/lib/Target/SPIRV/Serialization/Serializer.cpp
4545+++ b/mlir/lib/Target/SPIRV/Serialization/Serializer.cpp
46- @@ -335,8 +335,10 @@ LogicalResult Serializer::processDecorationAttr(Location loc, uint32_t resultID,
46+ @@ -335,9 +335,11 @@ LogicalResult Serializer::processDecorationAttr(Location loc, uint32_t resultID,
4747 }
4848 return emitError(loc, "expected FPRoundingModeAttr attribute for ")
4949 << stringifyDecoration(decoration);
5050+ case spirv::Decoration::Alignment:
5151 case spirv::Decoration::Binding:
5252 case spirv::Decoration::DescriptorSet:
53- + case spirv::Decoration::FuncParamIOKindINTEL:
5453 case spirv::Decoration::Location:
54+ + case spirv::Decoration::FuncParamIOKindINTEL:
5555 case spirv::Decoration::Index:
56- if (auto intAttr = dyn_cast<IntegerAttr>(attr)) {
57- @@ -375,6 +377,10 @@ LogicalResult Serializer::processDecorationAttr(Location loc, uint32_t resultID,
56+ case spirv::Decoration::Offset:
57+ case spirv::Decoration::XfbBuffer:
58+ @@ -378,6 +380,10 @@ LogicalResult Serializer::processDecorationAttr(Location loc, uint32_t resultID,
5859 case spirv::Decoration::Invariant:
5960 case spirv::Decoration::Patch:
6061 case spirv::Decoration::Coherent:
0 commit comments