14#ifndef MLIR_INTERFACES_TILINGINTERFACE_H_
15#define MLIR_INTERFACES_TILINGINTERFACE_H_
96 ArrayRef<int64_t> alignments);
100SmallVector<InnerTileAlignment>
109std::optional<InnerTileAlignment>
124#include "mlir/Interfaces/TilingInterface.h.inc"
Include the generated interface declarations.
bool isValidInnerTileAlignment(int64_t value)
Returns true iff value is a valid InnerTileAlignment enumerator.
ReductionTilingStrategy
Tiling can be thought of as splitting a dimension into 2 and materializing the outer dimension as a l...
@ PartialReductionOuterReduction
@ PartialReductionOuterParallel
detail::DenseArrayAttrImpl< int64_t > DenseI64ArrayAttr
void printInnerTileAlignmentArray(OpAsmPrinter &printer, Operation *op, DenseI64ArrayAttr alignments)
ParseResult parseInnerTileAlignmentArray(OpAsmParser &parser, DenseI64ArrayAttr &alignments)
Custom directive parser/printer for an inner_tile_alignments attribute, rendering the DenseI64ArrayAt...
std::optional< InnerTileAlignment > symbolizeInnerTileAlignment(StringRef keyword)
Returns the InnerTileAlignment for a keyword spelling, or std::nullopt if keyword is not one of Unkno...
StringRef stringifyInnerTileAlignment(InnerTileAlignment alignment)
Returns the keyword spelling of an InnerTileAlignment (Unknown, Multiple or Equal) used by the inner_...
SmallVector< InnerTileAlignment > convertInnerTileAlignments(ArrayRef< int64_t > alignments)
Maps a validated inner_tile_alignments integer array onto the per-dimension InnerTileAlignment hints ...
LogicalResult verifyInnerTileAlignments(Operation *op, ArrayRef< int64_t > alignments)
Verifies that every entry of a raw inner_tile_alignments integer array is a valid InnerTileAlignment,...
InnerTileAlignment
Per-dimension alignment of a loop tile size to a linalg.pack / linalg.unpack inner tile size,...
Container for the result of merge operation of tiling.
SmallVector< Value > replacements
SmallVector< Operation * > mergeOps
Container for result values of tiling.
SmallVector< Value > tiledValues
SmallVector< Operation * > tiledOps
SmallVector< Operation * > generatedSlices