1//===- TilingInterface.h - Interface for tiling operations ------*- 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// This file contains the definitions of the TilingInterface defined in
10// `TilingInterface.td`.
11//
12//===----------------------------------------------------------------------===//
13
14#ifndef MLIR_INTERFACES_TILINGINTERFACE_H_
15#define MLIR_INTERFACES_TILINGINTERFACE_H_
16
17#include "mlir/Dialect/Utils/StructuredOpsUtils.h"
18#include "mlir/IR/Builders.h"
19#include "mlir/IR/BuiltinTypes.h"
20#include "mlir/IR/Operation.h"
21#include "mlir/Interfaces/ViewLikeInterface.h"
22#include "mlir/Support/LLVM.h"
23
24namespace mlir {
25
26/// Container for result values of tiling.
27/// - `tiledOps` contains operations created by the tiling implementation that
28/// are returned to the caller for further transformations.
29/// - `tiledValues` contains the tiled value corresponding to the result of the
30/// untiled operation.
31struct TilingResult {
32 SmallVector<Operation *> tiledOps;
33 SmallVector<Value> tiledValues;
34};
35
36} // namespace mlir
37
38/// Include the ODS generated interface header files.
39#include "mlir/Interfaces/TilingInterface.h.inc"
40
41#endif // MLIR_INTERFACES_TILINGINTERFACE_H_
42

source code of mlir/include/mlir/Interfaces/TilingInterface.h