MLIR 22.0.0git
mlir::linalg::LinalgTilingOptions Struct Reference

#include "mlir/Dialect/Linalg/Transforms/Transforms.h"

Public Member Functions

LinalgTilingOptionssetTileSizeComputationFunction (TileSizeComputationFunction fun)
LinalgTilingOptionssetTileSizes (const SmallVector< Value, 4 > &ts)
 Set the tileSizeComputationFunction to return the values ts.
LinalgTilingOptionssetTileSizes (ArrayRef< int64_t > ts)
 Convenience function to set the tileSizeComputationFunction to a function that computes tile sizes at the point they are needed.
LinalgTilingOptionsscalarizeDynamicDims ()
 Tile all dynamic dimensions by 1.
LinalgTilingOptionssetInterchange (ArrayRef< unsigned > interchange)
LinalgTilingOptionssetLoopType (LinalgTilingLoopType lt)
LinalgTilingOptionssetDistributionOptions (LinalgLoopDistributionOptions distributionOptions)
LinalgTilingOptionssetDistributionTypes (ArrayRef< StringRef > types)
LinalgTilingOptionssetPeeledLoops (ArrayRef< int64_t > loops)

Public Attributes

TileSizeComputationFunction tileSizeComputationFunction = nullptr
 Computation function that returns the tile sizes for each operation.
SmallVector< unsigned, 4 > interchangeVector = {}
 The interchange vector to reorder the tiled loops.
LinalgTilingLoopType loopType = LinalgTilingLoopType::Loops
 The type of tile loops to generate.
std::optional< LinalgLoopDistributionOptionsdistribution
 When specified, specifies distribution of generated tile loops to processors.
SmallVector< StringRef, 2 > distributionTypes = {}
 Specification markers of how to distribute the linalg.tiled_loop.
SmallVector< int64_tpeeledLoops
 Peel the specified loops.

Detailed Description

Definition at line 190 of file Transforms.h.

Member Function Documentation

◆ scalarizeDynamicDims()

LinalgTilingOptions & mlir::linalg::LinalgTilingOptions::scalarizeDynamicDims ( )

Tile all dynamic dimensions by 1.

I.e., scalarize those dimensions. Note: scalarizeDynamicDims and setTileSizes cannot be used together.

◆ setDistributionOptions()

LinalgTilingOptions & mlir::linalg::LinalgTilingOptions::setDistributionOptions ( LinalgLoopDistributionOptions distributionOptions)
inline

Definition at line 238 of file Transforms.h.

References distribution.

◆ setDistributionTypes()

LinalgTilingOptions & mlir::linalg::LinalgTilingOptions::setDistributionTypes ( ArrayRef< StringRef > types)
inline

Definition at line 246 of file Transforms.h.

References distributionTypes.

◆ setInterchange()

LinalgTilingOptions & mlir::linalg::LinalgTilingOptions::setInterchange ( ArrayRef< unsigned > interchange)
inline

Definition at line 220 of file Transforms.h.

References interchangeVector.

◆ setLoopType()

LinalgTilingOptions & mlir::linalg::LinalgTilingOptions::setLoopType ( LinalgTilingLoopType lt)
inline

Definition at line 228 of file Transforms.h.

References loopType.

◆ setPeeledLoops()

LinalgTilingOptions & mlir::linalg::LinalgTilingOptions::setPeeledLoops ( ArrayRef< int64_t > loops)
inline

Definition at line 254 of file Transforms.h.

References peeledLoops.

◆ setTileSizeComputationFunction()

LinalgTilingOptions & mlir::linalg::LinalgTilingOptions::setTileSizeComputationFunction ( TileSizeComputationFunction fun)
inline

Definition at line 197 of file Transforms.h.

References tileSizeComputationFunction.

◆ setTileSizes() [1/2]

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 b, mlir::arith::ConstantIndexOp::create(), and tileSizeComputationFunction.

◆ setTileSizes() [2/2]

LinalgTilingOptions & mlir::linalg::LinalgTilingOptions::setTileSizes ( const SmallVector< Value, 4 > & ts)
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 204 of file Transforms.h.

References tileSizeComputationFunction.

Member Data Documentation

◆ distribution

std::optional<LinalgLoopDistributionOptions> mlir::linalg::LinalgTilingOptions::distribution

When specified, specifies distribution of generated tile loops to processors.

Definition at line 235 of file Transforms.h.

Referenced by setDistributionOptions().

◆ distributionTypes

SmallVector<StringRef, 2> mlir::linalg::LinalgTilingOptions::distributionTypes = {}

Specification markers of how to distribute the linalg.tiled_loop.

Definition at line 244 of file Transforms.h.

Referenced by setDistributionTypes().

◆ interchangeVector

SmallVector<unsigned, 4> mlir::linalg::LinalgTilingOptions::interchangeVector = {}

The interchange vector to reorder the tiled loops.

Definition at line 218 of file Transforms.h.

Referenced by setInterchange().

◆ loopType

LinalgTilingLoopType mlir::linalg::LinalgTilingOptions::loopType = LinalgTilingLoopType::Loops

The type of tile loops to generate.

Definition at line 226 of file Transforms.h.

Referenced by setLoopType().

◆ peeledLoops

SmallVector<int64_t> mlir::linalg::LinalgTilingOptions::peeledLoops

Peel the specified loops.

Definition at line 252 of file Transforms.h.

Referenced by setPeeledLoops().

◆ tileSizeComputationFunction

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 194 of file Transforms.h.

Referenced by setTileSizeComputationFunction(), setTileSizes(), and setTileSizes().


The documentation for this struct was generated from the following files: