MLIR 24.0.0git
LinalgTransformOps.h
Go to the documentation of this file.
1//===- LinalgTransformOps.h - Linalg transform ops --------------*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9#ifndef MLIR_DIALECT_LINALG_TRANSFORMOPS_LINALGTRANSFORMOPS_H
10#define MLIR_DIALECT_LINALG_TRANSFORMOPS_LINALGTRANSFORMOPS_H
11
22
23namespace mlir {
24class TilingInterface;
25class RewriterBase;
26
27namespace linalg {
28class CopyOp;
29class GenericOp;
30class LinalgOp;
31} // namespace linalg
32
33namespace scf {
34struct SCFTilingResult;
35} // namespace scf
36
37namespace tensor {
38class InsertSliceOp;
39class PackOp;
40class PadOp;
41class UnPackOp;
42} // namespace tensor
43
44namespace transform {
45// Types needed for builders.
46struct TileSizesSpec {};
48} // namespace transform
49} // namespace mlir
50
51namespace mlir {
52class DialectRegistry;
53
54namespace transform {
55
56/// Implementation of tiling operations using `scf.forall`.
57DiagnosedSilenceableFailure
58tileToForallOpImpl(RewriterBase &rewriter, transform::TransformState &state,
59 TransformOpInterface transformOp, Operation *target,
60 ArrayRef<OpFoldResult> mixedNumThreads,
61 ArrayRef<OpFoldResult> mixedTileSizes,
62 std::optional<ArrayAttr> mapping,
63 scf::SCFTilingResult &tilingResult);
64
65} // namespace transform
66} // namespace mlir
67
68//===----------------------------------------------------------------------===//
69// Linalg Transform Operations
70//===----------------------------------------------------------------------===//
71
72#include "mlir/Dialect/Linalg/TransformOps/LinalgTransformOpsEnums.h.inc"
73
74#define GET_OP_CLASSES
75#include "mlir/Dialect/Linalg/TransformOps/LinalgTransformOps.h.inc"
76
77#endif // MLIR_DIALECT_LINALG_TRANSFORMOPS_LINALGTRANSFORMOPS_H
This class coordinates the application of a rewrite on a set of IR, providing a way for clients to tr...
DiagnosedSilenceableFailure tileToForallOpImpl(RewriterBase &rewriter, transform::TransformState &state, TransformOpInterface transformOp, Operation *target, ArrayRef< OpFoldResult > mixedNumThreads, ArrayRef< OpFoldResult > mixedTileSizes, std::optional< ArrayAttr > mapping, scf::SCFTilingResult &tilingResult)
Implementation of tiling operations using scf.forall.
Include the generated interface declarations.