@@ -45,7 +45,8 @@ def ZMemRef : MemRefOf<[DLF16]>;
45
45
46
46
include "mlir/Interfaces/SideEffectInterfaces.td"
47
47
48
- def ZLowAddOp:ZLow_Op<"add", [MemRefsNormalizable]> {
48
+ def ZLowAddOp:ZLow_Op<"add", [MemRefsNormalizable,
49
+ DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
49
50
let summary = "ZLow add operation";
50
51
let description = [{
51
52
ZLow operation to perform an add.
@@ -57,7 +58,8 @@ def ZLowAddOp:ZLow_Op<"add", [MemRefsNormalizable]> {
57
58
StrAttr:$layout);
58
59
}
59
60
60
- def ZLowSubOp:ZLow_Op<"sub", [MemRefsNormalizable]> {
61
+ def ZLowSubOp:ZLow_Op<"sub", [MemRefsNormalizable,
62
+ DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
61
63
let summary = "ZLow sub operation";
62
64
let description = [{
63
65
ZLow operation to perform a sub.
@@ -69,7 +71,8 @@ def ZLowSubOp:ZLow_Op<"sub", [MemRefsNormalizable]> {
69
71
StrAttr:$layout);
70
72
}
71
73
72
- def ZLowMulOp:ZLow_Op<"mul", [MemRefsNormalizable]> {
74
+ def ZLowMulOp:ZLow_Op<"mul", [MemRefsNormalizable,
75
+ DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
73
76
let summary = "ZLow mul operation";
74
77
let description = [{
75
78
ZLow operation to perform a mul.
@@ -81,7 +84,8 @@ def ZLowMulOp:ZLow_Op<"mul", [MemRefsNormalizable]> {
81
84
StrAttr:$layout);
82
85
}
83
86
84
- def ZLowDivOp:ZLow_Op<"div", [MemRefsNormalizable]> {
87
+ def ZLowDivOp:ZLow_Op<"div", [MemRefsNormalizable,
88
+ DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
85
89
let summary = "ZLow div operation";
86
90
let description = [{
87
91
ZLow operation to perform a div.
@@ -93,7 +97,8 @@ def ZLowDivOp:ZLow_Op<"div", [MemRefsNormalizable]> {
93
97
StrAttr:$layout);
94
98
}
95
99
96
- def ZLowLogOp:ZLow_Op<"log", [MemRefsNormalizable]> {
100
+ def ZLowLogOp:ZLow_Op<"log", [MemRefsNormalizable,
101
+ DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
97
102
let summary = "ZLow log operation";
98
103
let description = [{
99
104
ZLow operation to perform a log.
@@ -104,7 +109,8 @@ def ZLowLogOp:ZLow_Op<"log", [MemRefsNormalizable]> {
104
109
StrAttr:$layout);
105
110
}
106
111
107
- def ZLowExpOp:ZLow_Op<"exp", [MemRefsNormalizable]> {
112
+ def ZLowExpOp:ZLow_Op<"exp", [MemRefsNormalizable,
113
+ DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
108
114
let summary = "ZLow exp operation";
109
115
let description = [{
110
116
ZLow operation to perform a exp.
@@ -115,7 +121,8 @@ def ZLowExpOp:ZLow_Op<"exp", [MemRefsNormalizable]> {
115
121
StrAttr:$layout);
116
122
}
117
123
118
- def ZLowMinOp:ZLow_Op<"min", [MemRefsNormalizable]> {
124
+ def ZLowMinOp:ZLow_Op<"min", [MemRefsNormalizable,
125
+ DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
119
126
let summary = "ZLow min operation";
120
127
let description = [{
121
128
ZLow operation to perform a min.
@@ -127,7 +134,8 @@ def ZLowMinOp:ZLow_Op<"min", [MemRefsNormalizable]> {
127
134
StrAttr:$layout);
128
135
}
129
136
130
- def ZLowMaxOp:ZLow_Op<"max", [MemRefsNormalizable]> {
137
+ def ZLowMaxOp:ZLow_Op<"max", [MemRefsNormalizable,
138
+ DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
131
139
let summary = "ZLow max operation";
132
140
let description = [{
133
141
ZLow operation to perform a max.
@@ -139,7 +147,8 @@ def ZLowMaxOp:ZLow_Op<"max", [MemRefsNormalizable]> {
139
147
StrAttr:$layout);
140
148
}
141
149
142
- def ZLowReluOp:ZLow_Op<"relu", [MemRefsNormalizable]> {
150
+ def ZLowReluOp:ZLow_Op<"relu", [MemRefsNormalizable,
151
+ DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
143
152
let summary = "ZLow relu operation";
144
153
let description = [{
145
154
ZLow operation to perform a relu.
@@ -150,7 +159,8 @@ def ZLowReluOp:ZLow_Op<"relu", [MemRefsNormalizable]> {
150
159
StrAttr:$layout);
151
160
}
152
161
153
- def ZLowTanhOp:ZLow_Op<"tanh", [MemRefsNormalizable]> {
162
+ def ZLowTanhOp:ZLow_Op<"tanh", [MemRefsNormalizable,
163
+ DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
154
164
let summary = "ZLow tanh operation";
155
165
let description = [{
156
166
ZLow operation to perform a tanh.
@@ -161,7 +171,8 @@ def ZLowTanhOp:ZLow_Op<"tanh", [MemRefsNormalizable]> {
161
171
StrAttr:$layout);
162
172
}
163
173
164
- def ZLowSigmoidOp:ZLow_Op<"sigmoid", [MemRefsNormalizable]> {
174
+ def ZLowSigmoidOp:ZLow_Op<"sigmoid", [MemRefsNormalizable,
175
+ DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
165
176
let summary = "ZLow sigmoid operation";
166
177
let description = [{
167
178
ZLow operation to perform a sigmoid.
@@ -172,7 +183,8 @@ def ZLowSigmoidOp:ZLow_Op<"sigmoid", [MemRefsNormalizable]> {
172
183
StrAttr:$layout);
173
184
}
174
185
175
- def ZLowSoftmaxOp:ZLow_Op<"softmax", [MemRefsNormalizable]> {
186
+ def ZLowSoftmaxOp:ZLow_Op<"softmax", [MemRefsNormalizable,
187
+ DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
176
188
let summary = "ZLow softmax operation";
177
189
let description = [{
178
190
ZLow operation to perform a softmax.
@@ -186,7 +198,8 @@ def ZLowSoftmaxOp:ZLow_Op<"softmax", [MemRefsNormalizable]> {
186
198
StrAttr:$act_func);
187
199
}
188
200
189
- def ZLowMatMulOp:ZLow_Op<"matmul", [MemRefsNormalizable]> {
201
+ def ZLowMatMulOp:ZLow_Op<"matmul", [MemRefsNormalizable,
202
+ DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
190
203
let summary = "ZLow matmul operation";
191
204
let description = [{
192
205
ZLow operation to perform a matmul.
@@ -214,7 +227,8 @@ def ZLowMatMulOp:ZLow_Op<"matmul", [MemRefsNormalizable]> {
214
227
DefaultValuedAttr<SI64Attr, "-1">:$is_stacked);
215
228
}
216
229
217
- def ZLowLSTMOp:ZLow_Op<"lstm", [MemRefsNormalizable]> {
230
+ def ZLowLSTMOp:ZLow_Op<"lstm", [MemRefsNormalizable,
231
+ DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
218
232
let summary = "ZLow lstm operation";
219
233
let description = [{
220
234
ZLow operation to perform a lstm.
@@ -245,7 +259,8 @@ def ZLowLSTMOp:ZLow_Op<"lstm", [MemRefsNormalizable]> {
245
259
DefaultValuedStrAttr<StrAttr, "none">:$prev_layer);
246
260
}
247
261
248
- def ZLowGRUOp:ZLow_Op<"gru", [MemRefsNormalizable]> {
262
+ def ZLowGRUOp:ZLow_Op<"gru", [MemRefsNormalizable,
263
+ DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
249
264
let summary = "ZLow gru operation";
250
265
let description = [{
251
266
ZLow operation to perform a gru.
@@ -274,7 +289,8 @@ def ZLowGRUOp:ZLow_Op<"gru", [MemRefsNormalizable]> {
274
289
DefaultValuedStrAttr<StrAttr, "none">:$prev_layer);
275
290
}
276
291
277
- def ZLowStickOp:ZLow_Op<"stick", [MemRefsNormalizable]> {
292
+ def ZLowStickOp:ZLow_Op<"stick", [MemRefsNormalizable,
293
+ DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
278
294
let summary = "ZLow stick operation";
279
295
let description = [{
280
296
"ZLow operation to perform a stick."
@@ -289,7 +305,8 @@ def ZLowStickOp:ZLow_Op<"stick", [MemRefsNormalizable]> {
289
305
];
290
306
}
291
307
292
- def ZLowStickForLSTMOp:ZLow_Op<"stickForLSTM", [MemRefsNormalizable]> {
308
+ def ZLowStickForLSTMOp:ZLow_Op<"stickForLSTM", [MemRefsNormalizable,
309
+ DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
293
310
let summary = "ZLow stick operation for LSTM";
294
311
let description = [{
295
312
ZLow operation to perform a stick for LSTM.
@@ -304,7 +321,8 @@ def ZLowStickForLSTMOp:ZLow_Op<"stickForLSTM", [MemRefsNormalizable]> {
304
321
DefaultValuedStrAttr<StrAttr, "none">:$prev_layer);
305
322
}
306
323
307
- def ZLowStickForGRUOp:ZLow_Op<"stickForGRU", [MemRefsNormalizable]> {
324
+ def ZLowStickForGRUOp:ZLow_Op<"stickForGRU", [MemRefsNormalizable,
325
+ DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
308
326
let summary = "ZLow stick operation for GRU";
309
327
let description = [{
310
328
ZLow operation to perform a stick for GRU.
@@ -318,7 +336,8 @@ def ZLowStickForGRUOp:ZLow_Op<"stickForGRU", [MemRefsNormalizable]> {
318
336
DefaultValuedStrAttr<StrAttr, "none">:$prev_layer);
319
337
}
320
338
321
- def ZLowUnstickOp:ZLow_Op<"unstick", [MemRefsNormalizable]> {
339
+ def ZLowUnstickOp:ZLow_Op<"unstick", [MemRefsNormalizable,
340
+ DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
322
341
let summary = "ZLow unstick operation";
323
342
let description = [{
324
343
ZLow operation to perform a unstick.
@@ -333,7 +352,8 @@ def ZLowUnstickOp:ZLow_Op<"unstick", [MemRefsNormalizable]> {
333
352
];
334
353
}
335
354
336
- def ZLowConv2DOp:ZLow_Op<"conv2d", [MemRefsNormalizable]> {
355
+ def ZLowConv2DOp:ZLow_Op<"conv2d", [MemRefsNormalizable,
356
+ DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
337
357
let summary = "ZLow 2D convolution operation";
338
358
let description = [{
339
359
ZLow operation to perform 2D convolution.
@@ -361,7 +381,8 @@ def ZLowConv2DOp:ZLow_Op<"conv2d", [MemRefsNormalizable]> {
361
381
DefaultValuedStrAttr<StrAttr, "ACT_NONE">:$act_func);
362
382
}
363
383
364
- def ZLowAvgPool2DOp:ZLow_Op<"avgpool2d", [MemRefsNormalizable]> {
384
+ def ZLowAvgPool2DOp:ZLow_Op<"avgpool2d", [MemRefsNormalizable,
385
+ DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
365
386
let summary = "ZLow 2D average pooling operation";
366
387
let description = [{
367
388
ZLow operation to perform 2D average pooling.
@@ -385,7 +406,8 @@ def ZLowAvgPool2DOp:ZLow_Op<"avgpool2d", [MemRefsNormalizable]> {
385
406
);
386
407
}
387
408
388
- def ZLowMaxPool2DOp:ZLow_Op<"maxpool2d", [MemRefsNormalizable]> {
409
+ def ZLowMaxPool2DOp:ZLow_Op<"maxpool2d", [MemRefsNormalizable,
410
+ DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
389
411
let summary = "ZLow 2D max pooling operation";
390
412
let description = [{
391
413
ZLow operation to perform 2D max pooling.
@@ -409,7 +431,8 @@ def ZLowMaxPool2DOp:ZLow_Op<"maxpool2d", [MemRefsNormalizable]> {
409
431
);
410
432
}
411
433
412
- def ZLowMeanReduce2DOp:ZLow_Op<"meanreduce2d", [MemRefsNormalizable]> {
434
+ def ZLowMeanReduce2DOp:ZLow_Op<"meanreduce2d", [MemRefsNormalizable,
435
+ DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
413
436
let summary = "ZLow 2D mean reduce operation";
414
437
let description = [{
415
438
ZLow operation to perform 2D mean reduce.
@@ -424,7 +447,8 @@ def ZLowMeanReduce2DOp:ZLow_Op<"meanreduce2d", [MemRefsNormalizable]> {
424
447
ZMemRef:$output);
425
448
}
426
449
427
- def ZLowBatchNormOp:ZLow_Op<"batchnorm", [MemRefsNormalizable]> {
450
+ def ZLowBatchNormOp:ZLow_Op<"batchnorm", [MemRefsNormalizable,
451
+ DeclareOpInterfaceMethods<MemoryEffectsOpInterface>]> {
428
452
let summary = "ZLow batchnorm operation";
429
453
let description = [{
430
454
ZLow operation to perform batchnorm.
0 commit comments