@@ -145,7 +145,8 @@ std::pair<int64_t, int64_t> getFmrFromWinogradConv2DFmr(WinogradConv2DFmr fmr);
145145#define GET_OP_CLASSES
146146#include " mlir/Dialect/Linalg/IR/LinalgRelayoutOps.h.inc"
147147
148- namespace mlir ::linalg {
148+ namespace mlir {
149+ namespace linalg {
149150
150151// / Returns the outer shape in the packed domain before applying the
151152// / transposition.
@@ -154,194 +155,7 @@ template <typename OpTy,
154155 std::is_same_v<OpTy, linalg::UnPackOp>>>
155156SmallVector<int64_t > getPackedOuterShapeWithoutTransposition (OpTy packOrUnPack);
156157
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
346160
347161#endif // MLIR_DIALECT_LINALG_IR_LINALG_H
0 commit comments