MLIR
22.0.0git
|
#include "mlir/Dialect/Linalg/Transforms/Transforms.h"
Public Member Functions | |
LinalgTilingOptions & | setTileSizeComputationFunction (TileSizeComputationFunction fun) |
LinalgTilingOptions & | setTileSizes (const SmallVector< Value, 4 > &ts) |
Set the tileSizeComputationFunction to return the values ts . More... | |
LinalgTilingOptions & | setTileSizes (ArrayRef< int64_t > ts) |
Convenience function to set the tileSizeComputationFunction to a function that computes tile sizes at the point they are needed. More... | |
LinalgTilingOptions & | scalarizeDynamicDims () |
Tile all dynamic dimensions by 1. More... | |
LinalgTilingOptions & | setInterchange (ArrayRef< unsigned > interchange) |
LinalgTilingOptions & | setLoopType (LinalgTilingLoopType lt) |
LinalgTilingOptions & | setDistributionOptions (LinalgLoopDistributionOptions distributionOptions) |
LinalgTilingOptions & | setDistributionTypes (ArrayRef< StringRef > types) |
LinalgTilingOptions & | setPeeledLoops (ArrayRef< int64_t > loops) |
Public Attributes | |
TileSizeComputationFunction | tileSizeComputationFunction = nullptr |
Computation function that returns the tile sizes for each operation. More... | |
SmallVector< unsigned, 4 > | interchangeVector = {} |
The interchange vector to reorder the tiled loops. More... | |
LinalgTilingLoopType | loopType = LinalgTilingLoopType::Loops |
The type of tile loops to generate. More... | |
std::optional< LinalgLoopDistributionOptions > | distribution |
When specified, specifies distribution of generated tile loops to processors. More... | |
SmallVector< StringRef, 2 > | distributionTypes = {} |
Specification markers of how to distribute the linalg.tiled_loop . More... | |
SmallVector< int64_t > | peeledLoops |
Peel the specified loops. More... | |
Definition at line 191 of file Transforms.h.
LinalgTilingOptions& mlir::linalg::LinalgTilingOptions::scalarizeDynamicDims | ( | ) |
Tile all dynamic dimensions by 1.
I.e., scalarize those dimensions. Note: scalarizeDynamicDims
and setTileSizes
cannot be used together.
|
inline |
Definition at line 239 of file Transforms.h.
References distribution.
|
inline |
Definition at line 247 of file Transforms.h.
References distributionTypes.
|
inline |
Definition at line 221 of file Transforms.h.
References interchangeVector.
|
inline |
Definition at line 229 of file Transforms.h.
References loopType.
|
inline |
Definition at line 255 of file Transforms.h.
References peeledLoops.
|
inline |
Definition at line 198 of file Transforms.h.
References tileSizeComputationFunction.
LinalgTilingOptions & mlir::linalg::LinalgTilingOptions::setTileSizes | ( | ArrayRef< int64_t > | ts | ) |
Convenience function to set the tileSizeComputationFunction
to a function that computes tile sizes at the point they are needed.
Allows proper interaction with folding.
Definition at line 878 of file Transforms.cpp.
References mlir::arith::ConstantIndexOp::create(), and mlir::OpBuilder::setInsertionPointToStart().
|
inline |
Set the tileSizeComputationFunction
to return the values ts
.
The values must not fold away when tiling. Otherwise, use a more robust tileSizeComputationFunction
.
Definition at line 205 of file Transforms.h.
References tileSizeComputationFunction.
std::optional<LinalgLoopDistributionOptions> mlir::linalg::LinalgTilingOptions::distribution |
When specified, specifies distribution of generated tile loops to processors.
Definition at line 236 of file Transforms.h.
Referenced by setDistributionOptions().
SmallVector<StringRef, 2> mlir::linalg::LinalgTilingOptions::distributionTypes = {} |
Specification markers of how to distribute the linalg.tiled_loop
.
Definition at line 245 of file Transforms.h.
Referenced by setDistributionTypes().
SmallVector<unsigned, 4> mlir::linalg::LinalgTilingOptions::interchangeVector = {} |
The interchange vector to reorder the tiled loops.
Definition at line 219 of file Transforms.h.
Referenced by setInterchange().
LinalgTilingLoopType mlir::linalg::LinalgTilingOptions::loopType = LinalgTilingLoopType::Loops |
The type of tile loops to generate.
Definition at line 227 of file Transforms.h.
Referenced by setLoopType().
SmallVector<int64_t> mlir::linalg::LinalgTilingOptions::peeledLoops |
Peel the specified loops.
Definition at line 253 of file Transforms.h.
Referenced by setPeeledLoops().
TileSizeComputationFunction mlir::linalg::LinalgTilingOptions::tileSizeComputationFunction = nullptr |
Computation function that returns the tile sizes for each operation.
Delayed construction of constant tile sizes should occur to interoperate with folding.
Definition at line 195 of file Transforms.h.
Referenced by setTileSizeComputationFunction(), and setTileSizes().