MLIR 23.0.0git
TilingInterface.h File Reference
#include "mlir/Dialect/Utils/StructuredOpsUtils.h"
#include "mlir/IR/Builders.h"
#include "mlir/IR/BuiltinTypes.h"
#include "mlir/IR/OpImplementation.h"
#include "mlir/IR/Operation.h"
#include "mlir/Interfaces/ViewLikeInterface.h"
#include "mlir/Support/LLVM.h"
#include "mlir/Interfaces/TilingInterface.h.inc"

Go to the source code of this file.

Classes

struct  mlir::TilingResult
 Container for result values of tiling. More...
struct  mlir::MergeResult
 Container for the result of merge operation of tiling. More...

Namespaces

namespace  mlir
 Include the generated interface declarations.

Enumerations

enum class  mlir::ReductionTilingStrategy { mlir::FullReduction , mlir::PartialReductionOuterReduction , mlir::PartialReductionOuterParallel }
 Tiling can be thought of as splitting a dimension into 2 and materializing the outer dimension as a loop: More...
enum class  mlir::InnerTileAlignment : int64_t { mlir::Unknown = 0 , mlir::Multiple , mlir::Equal }
 Per-dimension alignment of a loop tile size to a linalg.pack / linalg.unpack inner tile size, supplied by the caller (which performed the tiling and knows both the tile sizes and the inner tiles) so that pack/unpack TilingInterface implementations need not re-derive it from the materialized IR. More...

Functions

bool mlir::isValidInnerTileAlignment (int64_t value)
 Returns true iff value is a valid InnerTileAlignment enumerator.
LogicalResult mlir::verifyInnerTileAlignments (Operation *op, ArrayRef< int64_t > alignments)
 Verifies that every entry of a raw inner_tile_alignments integer array is a valid InnerTileAlignment, emitting the standard op error on op otherwise.
SmallVector< InnerTileAlignmentmlir::convertInnerTileAlignments (ArrayRef< int64_t > alignments)
 Maps a validated inner_tile_alignments integer array onto the per-dimension InnerTileAlignment hints consumed by the tiling driver.
StringRef mlir::stringifyInnerTileAlignment (InnerTileAlignment alignment)
 Returns the keyword spelling of an InnerTileAlignment (Unknown, Multiple or Equal) used by the inner_tile_alignments assembly syntax.
std::optional< InnerTileAlignmentmlir::symbolizeInnerTileAlignment (StringRef keyword)
 Returns the InnerTileAlignment for a keyword spelling, or std::nullopt if keyword is not one of Unknown, Multiple or Equal.
ParseResult mlir::parseInnerTileAlignmentArray (OpAsmParser &parser, DenseI64ArrayAttr &alignments)
 Custom directive parser/printer for an inner_tile_alignments attribute, rendering the DenseI64ArrayAttr as a keyword list, e.g.
void mlir::printInnerTileAlignmentArray (OpAsmPrinter &printer, Operation *op, DenseI64ArrayAttr alignments)