@@ -145,7 +145,8 @@ std::pair<int64_t, int64_t> getFmrFromWinogradConv2DFmr(WinogradConv2DFmr fmr);
145
145
#define GET_OP_CLASSES
146
146
#include " mlir/Dialect/Linalg/IR/LinalgRelayoutOps.h.inc"
147
147
148
- namespace mlir ::linalg {
148
+ namespace mlir {
149
+ namespace linalg {
149
150
150
151
// / Returns the outer shape in the packed domain before applying the
151
152
// / transposition.
@@ -154,194 +155,7 @@ template <typename OpTy,
154
155
std::is_same_v<OpTy, linalg::UnPackOp>>>
155
156
SmallVector<int64_t > getPackedOuterShapeWithoutTransposition (OpTy packOrUnPack);
156
157
157
- // / Specialization of `linalg.matmul` op that has a transpose map on A
158
- class MatmulTransposeAOp : public MatmulOp {
159
- // / Create an affine map for a transpose-A matmul. Used only in the builders.
160
- static SmallVector<AffineMap> getDefaultIndexingMaps (OpBuilder &builder);
161
-
162
- public:
163
- using MatmulOp::MatmulOp;
164
- static ::mlir::TypeID resolveTypeID () { return TypeID::get<MatmulOp>(); }
165
-
166
- // / Build a transpose A matmul.
167
- static void build (OpBuilder &builder, OperationState &result,
168
- ValueRange inputs, ValueRange outputs,
169
- ArrayRef<NamedAttribute> attributes = {});
170
-
171
- static MatmulTransposeAOp create (OpBuilder &builder, Location location,
172
- ValueRange inputs, ValueRange outputs,
173
- ArrayRef<NamedAttribute> attributes = {});
174
-
175
- // / Build a transpose A matmul with a specific result type.
176
- static void build (OpBuilder &builder, OperationState &result,
177
- TypeRange resultTensorTypes, ValueRange inputs,
178
- ValueRange outputs,
179
- ArrayRef<NamedAttribute> attributes = {});
180
-
181
- static MatmulTransposeAOp create (OpBuilder &builder, Location location,
182
- TypeRange resultTensorTypes,
183
- ValueRange inputs, ValueRange outputs,
184
- ArrayRef<NamedAttribute> attributes = {});
185
-
186
- // / Build a transpose A matmul with a specific result type and a cast type.
187
- static void build (OpBuilder &builder, OperationState &result,
188
- TypeRange resultTensorTypes, ValueRange inputs,
189
- ValueRange outputs, Attribute cast,
190
- ArrayRef<NamedAttribute> attributes = {});
191
-
192
- static MatmulTransposeAOp create (OpBuilder &builder, Location location,
193
- TypeRange resultTensorTypes,
194
- ValueRange inputs, ValueRange outputs,
195
- Attribute cast,
196
- ArrayRef<NamedAttribute> attributes = {});
197
-
198
- // / Checks if the affine map is the expected one for this operation
199
- static bool isDefaultIndexingMaps (Attribute attr);
200
-
201
- static bool classof (Operation *op);
202
- };
203
-
204
- // / Specialization of `linalg.matmul` op that has a transpose map on B
205
- class MatmulTransposeBOp : public MatmulOp {
206
- // / Create an affine map for a transpose-B matmul. Used only in the builders.
207
- static SmallVector<AffineMap> getDefaultIndexingMaps (OpBuilder &builder);
208
-
209
- public:
210
- using MatmulOp::MatmulOp;
211
- static ::mlir::TypeID resolveTypeID () { return TypeID::get<MatmulOp>(); }
212
-
213
- // / Build a transpose B matmul.
214
- static void build (OpBuilder &builder, OperationState &result,
215
- ValueRange inputs, ValueRange outputs,
216
- ArrayRef<NamedAttribute> attributes = {});
217
-
218
- static MatmulTransposeBOp create (OpBuilder &builder, Location location,
219
- ValueRange inputs, ValueRange outputs,
220
- ArrayRef<NamedAttribute> attributes = {});
221
-
222
- // / Build a transpose B matmul with a specific result type.
223
- static void build (OpBuilder &builder, OperationState &result,
224
- TypeRange resultTensorTypes, ValueRange inputs,
225
- ValueRange outputs,
226
- ArrayRef<NamedAttribute> attributes = {});
227
-
228
- static MatmulTransposeBOp create (OpBuilder &builder, Location location,
229
- TypeRange resultTensorTypes,
230
- ValueRange inputs, ValueRange outputs,
231
- ArrayRef<NamedAttribute> attributes = {});
232
-
233
- // / Build a transpose B matmul with a specific result type and a cast type.
234
- static void build (OpBuilder &builder, OperationState &result,
235
- TypeRange resultTensorTypes, ValueRange inputs,
236
- ValueRange outputs, Attribute cast,
237
- ArrayRef<NamedAttribute> attributes = {});
238
-
239
- static MatmulTransposeBOp create (OpBuilder &builder, Location location,
240
- TypeRange resultTensorTypes,
241
- ValueRange inputs, ValueRange outputs,
242
- Attribute cast,
243
- ArrayRef<NamedAttribute> attributes = {});
244
-
245
- // / Checks if the affine map is the expected one for this operation
246
- static bool isDefaultIndexingMaps (Attribute attr);
247
-
248
- static bool classof (Operation *op);
249
- };
250
-
251
- // / Specialization of `linalg.batch_matmul` op that has a transpose map on A
252
- class BatchMatmulTransposeAOp : public BatchMatmulOp {
253
- // / Create an affine map for a transpose-A batch_matmul. Used only in the
254
- // / builders.
255
- static SmallVector<AffineMap> getDefaultIndexingMaps (OpBuilder &builder);
256
-
257
- public:
258
- using BatchMatmulOp::BatchMatmulOp;
259
- static ::mlir::TypeID resolveTypeID () { return TypeID::get<BatchMatmulOp>(); }
260
-
261
- // / Build a transpose A matmul.
262
- static void build (OpBuilder &builder, OperationState &result,
263
- ValueRange inputs, ValueRange outputs,
264
- ArrayRef<NamedAttribute> attributes = {});
265
-
266
- static BatchMatmulTransposeAOp
267
- create (OpBuilder &builder, Location location, ValueRange inputs,
268
- ValueRange outputs, ArrayRef<NamedAttribute> attributes = {});
269
-
270
- // / Build a transpose A matmul with a specific result type.
271
- static void build (OpBuilder &builder, OperationState &result,
272
- TypeRange resultTensorTypes, ValueRange inputs,
273
- ValueRange outputs,
274
- ArrayRef<NamedAttribute> attributes = {});
275
-
276
- static BatchMatmulTransposeAOp
277
- create (OpBuilder &builder, Location location, TypeRange resultTensorTypes,
278
- ValueRange inputs, ValueRange outputs,
279
- ArrayRef<NamedAttribute> attributes = {});
280
-
281
- // / Build a transpose A matmul with a specific result type and a cast type.
282
- static void build (OpBuilder &builder, OperationState &result,
283
- TypeRange resultTensorTypes, ValueRange inputs,
284
- ValueRange outputs, Attribute cast,
285
- ArrayRef<NamedAttribute> attributes = {});
286
-
287
- static BatchMatmulTransposeAOp
288
- create (OpBuilder &builder, Location location, TypeRange resultTensorTypes,
289
- ValueRange inputs, ValueRange outputs, Attribute cast,
290
- ArrayRef<NamedAttribute> attributes = {});
291
-
292
- // / Checks if the affine map is the expected one for this operation
293
- static bool isDefaultIndexingMaps (Attribute attr);
294
-
295
- static bool classof (Operation *op);
296
- };
297
-
298
- // / Specialization of `linalg.batch_matmul` op that has a transpose map on B
299
- class BatchMatmulTransposeBOp : public BatchMatmulOp {
300
- // / Create an affine map for a transpose-B batch_matmul. Used only in the
301
- // / builders.
302
- static SmallVector<AffineMap> getDefaultIndexingMaps (OpBuilder &builder);
303
-
304
- public:
305
- using BatchMatmulOp::BatchMatmulOp;
306
- static ::mlir::TypeID resolveTypeID () { return TypeID::get<BatchMatmulOp>(); }
307
-
308
- // / Build a transpose B matmul.
309
- static void build (OpBuilder &builder, OperationState &result,
310
- ValueRange inputs, ValueRange outputs,
311
- ArrayRef<NamedAttribute> attributes = {});
312
-
313
- static BatchMatmulTransposeBOp
314
- create (OpBuilder &builder, Location location, ValueRange inputs,
315
- ValueRange outputs, ArrayRef<NamedAttribute> attributes = {});
316
-
317
- // / Build a transpose B matmul with a specific result type.
318
- static void build (OpBuilder &builder, OperationState &result,
319
- TypeRange resultTensorTypes, ValueRange inputs,
320
- ValueRange outputs,
321
- ArrayRef<NamedAttribute> attributes = {});
322
-
323
- static BatchMatmulTransposeBOp
324
- create (OpBuilder &builder, Location location, TypeRange resultTensorTypes,
325
- ValueRange inputs, ValueRange outputs,
326
- ArrayRef<NamedAttribute> attributes = {});
327
-
328
- // / Build a transpose B matmul with a specific result type and a cast type.
329
- static void build (OpBuilder &builder, OperationState &result,
330
- TypeRange resultTensorTypes, ValueRange inputs,
331
- ValueRange outputs, Attribute cast,
332
- ArrayRef<NamedAttribute> attributes = {});
333
-
334
- static BatchMatmulTransposeBOp
335
- create (OpBuilder &builder, Location location, TypeRange resultTensorTypes,
336
- ValueRange inputs, ValueRange outputs, Attribute cast,
337
- ArrayRef<NamedAttribute> attributes = {});
338
-
339
- // / Checks if the affine map is the expected one for this operation
340
- static bool isDefaultIndexingMaps (Attribute attr);
341
-
342
- static bool classof (Operation *op);
343
- };
344
-
345
- } // namespace mlir::linalg
158
+ } // namespace linalg
159
+ } // namespace mlir
346
160
347
161
#endif // MLIR_DIALECT_LINALG_IR_LINALG_H
0 commit comments