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
20
21namespace mlir {
22class TilingInterface;
23class RewriterBase;
24
25namespace linalg {
26class CopyOp;
27class GenericOp;
28class LinalgOp;
29} // namespace linalg
30
31namespace scf {
32struct SCFTilingResult;
33} // namespace scf
34
35namespace tensor {
36class InsertSliceOp;
37class PackOp;
38class PadOp;
39class UnPackOp;
40} // namespace tensor
41
42namespace transform {
43// Types needed for builders.
44struct TileSizesSpec {};
46} // namespace transform
47} // namespace mlir
48
49namespace mlir {
50class DialectRegistry;
51
52namespace transform {
53
54/// Implementation of tiling operations using `scf.forall`.
55DiagnosedSilenceableFailure
56tileToForallOpImpl(RewriterBase &rewriter, transform::TransformState &state,
57 TransformOpInterface transformOp, Operation *target,
58 ArrayRef<OpFoldResult> mixedNumThreads,
59 ArrayRef<OpFoldResult> mixedTileSizes,
60 std::optional<ArrayAttr> mapping,
61 scf::SCFTilingResult &tilingResult);
62
63} // namespace transform
64} // namespace mlir
65
66//===----------------------------------------------------------------------===//
67// Linalg Transform Operations
68//===----------------------------------------------------------------------===//
69
70#include "mlir/Dialect/Linalg/TransformOps/LinalgTransformOpsEnums.h.inc"
71
72#define GET_OP_CLASSES
73#include "mlir/Dialect/Linalg/TransformOps/LinalgTransformOps.h.inc"
74
75#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.