MLIR
15.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... | |
Optional< LinalgLoopDistributionOptions > | distribution = None |
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 559 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.
Definition at line 138 of file Transforms.cpp.
References mlir::applyMapToValues(), mlir::OpBuilder::create(), and mlir::getConstantIntValue().
|
inline |
Definition at line 607 of file Transforms.h.
Referenced by mlir::linalg::TileLoopNest::tileRootOp().
|
inline |
Definition at line 615 of file Transforms.h.
|
inline |
Definition at line 589 of file Transforms.h.
Referenced by applyTilingToAll(), and mlir::linalg::TileLoopNest::tileRootOp().
|
inline |
Definition at line 597 of file Transforms.h.
Referenced by applyExtractSliceOfPadTensorSwapPattern(), and mlir::linalg::TileLoopNest::tileRootOp().
|
inline |
Definition at line 623 of file Transforms.h.
References mlir::linalg::getLinalgTilingCanonicalizationPatterns(), and mlir::linalg::populateLinalgTilingCanonicalizationPatterns().
|
inline |
Definition at line 566 of file Transforms.h.
|
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 573 of file Transforms.h.
Referenced by applyExtractSliceOfPadTensorSwapPattern(), applyTilingToAll(), mlir::linalg::LinalgBaseTileAndFusePattern::matchAndRewrite(), mlir::linalg::TileLoopNest::tileRootOp(), and tileRootOperation().
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 123 of file Transforms.cpp.
References mlir::OpBuilder::create(), and mlir::OpBuilder::setInsertionPointToStart().
Optional<LinalgLoopDistributionOptions> mlir::linalg::LinalgTilingOptions::distribution = None |
When specified, specifies distribution of generated tile loops to processors.
Definition at line 604 of file Transforms.h.
SmallVector<StringRef, 2> mlir::linalg::LinalgTilingOptions::distributionTypes = {} |
Specification markers of how to distribute the linalg.tiled_loop
.
Definition at line 613 of file Transforms.h.
SmallVector<unsigned, 4> mlir::linalg::LinalgTilingOptions::interchangeVector = {} |
The interchange vector to reorder the tiled loops.
Definition at line 587 of file Transforms.h.
Referenced by tileAndFuseLinalgOpsImpl(), and tileLinalgOpImpl().
LinalgTilingLoopType mlir::linalg::LinalgTilingOptions::loopType = LinalgTilingLoopType::Loops |
The type of tile loops to generate.
Definition at line 595 of file Transforms.h.
Referenced by mlir::linalg::tileAndFuseLinalgOps(), and mlir::linalg::tileLinalgOp().
SmallVector<int64_t> mlir::linalg::LinalgTilingOptions::peeledLoops |
Peel the specified loops.
Definition at line 621 of file Transforms.h.
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 563 of file Transforms.h.
Referenced by mlir::linalg::LinalgBaseTileAndFusePattern::matchAndRewrite(), tileAndFuseLinalgOpsImpl(), tileLinalgOpImpl(), and tilePadOp().