MLIR  22.0.0git
Public Types | Public Member Functions | Public Attributes | List of all members
mlir::linalg::LinalgPaddingOptions Struct Reference

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

Public Types

enum class  CopyBackOp : int8_t { None = 0 , BufferizationMaterializeInDestination = 1 , LinalgCopy = 2 }
 

Public Member Functions

LinalgPaddingOptionssetPaddingValues (ArrayRef< Attribute > pv)
 
LinalgPaddingOptionssetPaddingDimensions (ArrayRef< int64_t > pd)
 
LinalgPaddingOptionssetPadToMultipleOf (ArrayRef< int64_t > m)
 
LinalgPaddingOptionssetSizeToPadTo (unsigned operandIndex, unsigned dimIndex, OpFoldResult size)
 
OpFoldResult getSizeToPadTo (unsigned operandIndex, unsigned dimIndex) const
 Given the operand index and shape dim it returns the size to pad to. More...
 
LinalgPaddingOptionssetNofoldFlags (ArrayRef< bool > pp)
 
LinalgPaddingOptionssetHoistPaddings (ArrayRef< int64_t > hp)
 
LinalgPaddingOptionssetTransposePaddings (ArrayRef< SmallVector< int64_t >> tp)
 
LinalgPaddingOptionssetCopyBackOp (CopyBackOp op)
 

Public Attributes

SmallVector< AttributepaddingValues
 A padding value for every operand. More...
 
SmallVector< int64_t > paddingDimensions
 A list of iterator dimensions to pad. More...
 
std::optional< SmallVector< int64_t > > padToMultipleOf
 A list of multiples to which each padding dimension should be padded to. More...
 
DenseMap< std::pair< unsigned, unsigned >, OpFoldResultsizeToPadTo
 A mapping between an operand and shape dim, and a size for a padding dimension. More...
 
SmallVector< bool > nofoldFlags
 A flag for every operand to mark the PadOp as nofold which enables packing for statically shaped operands. More...
 
SmallVector< int64_t > hoistPaddings
 A number of loops to hoist the PadOp out for every operand. More...
 
SmallVector< SmallVector< int64_t > > transposePaddings
 A permutation vector for every operand used to transpose the packed PadOp results. More...
 
CopyBackOp copyBackOp = CopyBackOp::BufferizationMaterializeInDestination
 The op to be used for copying the padded result to the original destination tensor. More...
 

Detailed Description

Definition at line 280 of file Transforms.h.

Member Enumeration Documentation

◆ CopyBackOp

Enumerator
None 
BufferizationMaterializeInDestination 
LinalgCopy 

Definition at line 337 of file Transforms.h.

Member Function Documentation

◆ getSizeToPadTo()

OpFoldResult mlir::linalg::LinalgPaddingOptions::getSizeToPadTo ( unsigned  operandIndex,
unsigned  dimIndex 
) const
inline

Given the operand index and shape dim it returns the size to pad to.

Definition at line 311 of file Transforms.h.

References sizeToPadTo.

◆ setCopyBackOp()

LinalgPaddingOptions& mlir::linalg::LinalgPaddingOptions::setCopyBackOp ( CopyBackOp  op)
inline

Definition at line 345 of file Transforms.h.

References copyBackOp.

◆ setHoistPaddings()

LinalgPaddingOptions& mlir::linalg::LinalgPaddingOptions::setHoistPaddings ( ArrayRef< int64_t >  hp)
inline

Definition at line 325 of file Transforms.h.

References hoistPaddings.

◆ setNofoldFlags()

LinalgPaddingOptions& mlir::linalg::LinalgPaddingOptions::setNofoldFlags ( ArrayRef< bool >  pp)
inline

Definition at line 319 of file Transforms.h.

References nofoldFlags.

◆ setPaddingDimensions()

LinalgPaddingOptions& mlir::linalg::LinalgPaddingOptions::setPaddingDimensions ( ArrayRef< int64_t >  pd)
inline

Definition at line 289 of file Transforms.h.

References paddingDimensions.

◆ setPaddingValues()

LinalgPaddingOptions& mlir::linalg::LinalgPaddingOptions::setPaddingValues ( ArrayRef< Attribute pv)
inline

Definition at line 283 of file Transforms.h.

References paddingValues.

◆ setPadToMultipleOf()

LinalgPaddingOptions& mlir::linalg::LinalgPaddingOptions::setPadToMultipleOf ( ArrayRef< int64_t >  m)
inline

Definition at line 295 of file Transforms.h.

References padToMultipleOf.

◆ setSizeToPadTo()

LinalgPaddingOptions& mlir::linalg::LinalgPaddingOptions::setSizeToPadTo ( unsigned  operandIndex,
unsigned  dimIndex,
OpFoldResult  size 
)
inline

Definition at line 304 of file Transforms.h.

References sizeToPadTo.

◆ setTransposePaddings()

LinalgPaddingOptions& mlir::linalg::LinalgPaddingOptions::setTransposePaddings ( ArrayRef< SmallVector< int64_t >>  tp)
inline

Definition at line 333 of file Transforms.h.

References transposePaddings.

Member Data Documentation

◆ copyBackOp

CopyBackOp mlir::linalg::LinalgPaddingOptions::copyBackOp = CopyBackOp::BufferizationMaterializeInDestination

The op to be used for copying the padded result to the original destination tensor.

Definition at line 344 of file Transforms.h.

Referenced by setCopyBackOp().

◆ hoistPaddings

SmallVector<int64_t> mlir::linalg::LinalgPaddingOptions::hoistPaddings

A number of loops to hoist the PadOp out for every operand.

Definition at line 324 of file Transforms.h.

Referenced by setHoistPaddings().

◆ nofoldFlags

SmallVector<bool> mlir::linalg::LinalgPaddingOptions::nofoldFlags

A flag for every operand to mark the PadOp as nofold which enables packing for statically shaped operands.

Definition at line 318 of file Transforms.h.

Referenced by setNofoldFlags().

◆ paddingDimensions

SmallVector<int64_t> mlir::linalg::LinalgPaddingOptions::paddingDimensions

A list of iterator dimensions to pad.

Definition at line 288 of file Transforms.h.

Referenced by setPaddingDimensions().

◆ paddingValues

SmallVector<Attribute> mlir::linalg::LinalgPaddingOptions::paddingValues

A padding value for every operand.

Definition at line 282 of file Transforms.h.

Referenced by setPaddingValues().

◆ padToMultipleOf

std::optional<SmallVector<int64_t> > mlir::linalg::LinalgPaddingOptions::padToMultipleOf

A list of multiples to which each padding dimension should be padded to.

Definition at line 294 of file Transforms.h.

Referenced by setPadToMultipleOf().

◆ sizeToPadTo

DenseMap<std::pair<unsigned, unsigned>, OpFoldResult> mlir::linalg::LinalgPaddingOptions::sizeToPadTo

A mapping between an operand and shape dim, and a size for a padding dimension.

Each size is expected to be greater or equal than the corresponding shape dim. If no value is provided then the constant upper bound will be used.

Definition at line 303 of file Transforms.h.

Referenced by getSizeToPadTo(), and setSizeToPadTo().

◆ transposePaddings

SmallVector<SmallVector<int64_t> > mlir::linalg::LinalgPaddingOptions::transposePaddings

A permutation vector for every operand used to transpose the packed PadOp results.

Definition at line 331 of file Transforms.h.

Referenced by setTransposePaddings().


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