1
- From 1994f9d400c5d768636a89ecf0f78b83431ce609 Mon Sep 17 00:00:00 2001
2
- From: Md Abdullah Shahneous Bari <
[email protected] >
3
- Date: Fri, 26 Apr 2024 20:33:41 +0000
4
- Subject: [PATCH 4/7] Add serialization and de-serialization support for
5
- several decorations.
6
-
7
- Added decorations:
8
- - Alignment
9
- - DescriptorSet
10
- - FuncParamIOKindINTEL
11
- - SingleElementVectorINTEL
12
- - VectorComputeCallableFunctionINTEL
13
- - VectorComputeFunctionINTEL
14
- - VectorComputeVariableINTEL
15
- ---
16
- mlir/lib/Target/SPIRV/Deserialization/Deserializer.cpp | 8 +++++++-
17
- mlir/lib/Target/SPIRV/Serialization/Serializer.cpp | 6 ++++++
18
- 2 files changed, 13 insertions(+), 1 deletion(-)
19
-
20
1
diff --git a/mlir/lib/Target/SPIRV/Deserialization/Deserializer.cpp b/mlir/lib/Target/SPIRV/Deserialization/Deserializer.cpp
21
- index cfe3121bbe95..bc0ca11f4e16 100644
2
+ index 12980879b20a..b5fbe8c5ceb8 100644
22
3
--- a/mlir/lib/Target/SPIRV/Deserialization/Deserializer.cpp
23
4
+++ b/mlir/lib/Target/SPIRV/Deserialization/Deserializer.cpp
24
- @@ -251 ,8 +251 ,9 @@ LogicalResult spirv::Deserializer::processDecoration(ArrayRef<uint32_t> words) {
25
- symbol, FPFastMathModeAttr ::get(opBuilder.getContext(),
26
- static_cast<FPFastMathMode >(words[2])));
5
+ @@ -259 ,8 +259 ,9 @@ LogicalResult spirv::Deserializer::processDecoration(ArrayRef<uint32_t> words) {
6
+ symbol, FPRoundingModeAttr ::get(opBuilder.getContext(),
7
+ static_cast<FPRoundingMode >(words[2])));
27
8
break;
28
9
- case spirv::Decoration::DescriptorSet:
29
10
+ case spirv::Decoration::Alignment:
@@ -32,7 +13,7 @@ index cfe3121bbe95..bc0ca11f4e16 100644
32
13
if (words.size() != 3) {
33
14
return emitError(unknownLoc, "OpDecorate with ")
34
15
<< decorationName << " needs a single integer literal";
35
- @@ -312 ,6 +313 ,10 @@ LogicalResult spirv::Deserializer::processDecoration(ArrayRef<uint32_t> words) {
16
+ @@ -319 ,6 +320 ,10 @@ LogicalResult spirv::Deserializer::processDecoration(ArrayRef<uint32_t> words) {
36
17
case spirv::Decoration::Restrict:
37
18
case spirv::Decoration::RestrictPointer:
38
19
case spirv::Decoration::NoContraction:
@@ -43,7 +24,7 @@ index cfe3121bbe95..bc0ca11f4e16 100644
43
24
if (words.size() != 2) {
44
25
return emitError(unknownLoc, "OpDecoration with ")
45
26
<< decorationName << "needs a single target <id>";
46
- @@ -322 ,6 +327 ,7 @@ LogicalResult spirv::Deserializer::processDecoration(ArrayRef<uint32_t> words) {
27
+ @@ -329 ,6 +334 ,7 @@ LogicalResult spirv::Deserializer::processDecoration(ArrayRef<uint32_t> words) {
47
28
// it is needed for many validation rules.
48
29
decorations[words[0]].set(symbol, opBuilder.getUnitAttr());
49
30
break;
@@ -52,12 +33,12 @@ index cfe3121bbe95..bc0ca11f4e16 100644
52
33
case spirv::Decoration::SpecId:
53
34
if (words.size() != 3) {
54
35
diff --git a/mlir/lib/Target/SPIRV/Serialization/Serializer.cpp b/mlir/lib/Target/SPIRV/Serialization/Serializer.cpp
55
- index a7d195d7fcb0..34427458d6c1 100644
36
+ index 714a3edfb565..bb3c68530aa9 100644
56
37
--- a/mlir/lib/Target/SPIRV/Serialization/Serializer.cpp
57
38
+++ b/mlir/lib/Target/SPIRV/Serialization/Serializer.cpp
58
- @@ -243 ,8 +243 ,10 @@ LogicalResult Serializer::processDecorationAttr(Location loc, uint32_t resultID,
39
+ @@ -252 ,8 +252 ,10 @@ LogicalResult Serializer::processDecorationAttr(Location loc, uint32_t resultID,
59
40
}
60
- return emitError(loc, "expected FPFastMathModeAttr attribute for ")
41
+ return emitError(loc, "expected FPRoundingModeAttr attribute for ")
61
42
<< stringifyDecoration(decoration);
62
43
+ case spirv::Decoration::Alignment:
63
44
case spirv::Decoration::Binding:
@@ -66,7 +47,7 @@ index a7d195d7fcb0..34427458d6c1 100644
66
47
case spirv::Decoration::Location:
67
48
if (auto intAttr = dyn_cast<IntegerAttr>(attr)) {
68
49
args.push_back(intAttr.getValue().getZExtValue());
69
- @@ -278 ,6 +280 ,10 @@ LogicalResult Serializer::processDecorationAttr(Location loc, uint32_t resultID,
50
+ @@ -286 ,6 +288 ,10 @@ LogicalResult Serializer::processDecorationAttr(Location loc, uint32_t resultID,
70
51
case spirv::Decoration::Restrict:
71
52
case spirv::Decoration::RestrictPointer:
72
53
case spirv::Decoration::NoContraction:
@@ -77,5 +58,3 @@ index a7d195d7fcb0..34427458d6c1 100644
77
58
// For unit attributes and decoration attributes, the args list
78
59
// has no values so we do nothing.
79
60
if (isa<UnitAttr, DecorationAttr>(attr))
80
- - -
81
- 2.34.1
0 commit comments