Changeset View
Changeset View
Standalone View
Standalone View
mlir/include/mlir/Dialect/Linalg/Passes.h
Show First 20 Lines • Show All 61 Lines • ▼ Show 20 Lines | |||||
/// on SSA use-def chains starting from function operands that are annotated | /// on SSA use-def chains starting from function operands that are annotated | ||||
/// with the 'inplaceable' attribute. | /// with the 'inplaceable' attribute. | ||||
std::unique_ptr<Pass> createLinalgComprehensiveModuleBufferizePass(); | std::unique_ptr<Pass> createLinalgComprehensiveModuleBufferizePass(); | ||||
/// Create a pass to convert Linalg operations which work on tensors to use | /// Create a pass to convert Linalg operations which work on tensors to use | ||||
/// buffers instead. | /// buffers instead. | ||||
std::unique_ptr<OperationPass<FuncOp>> createLinalgBufferizePass(); | std::unique_ptr<OperationPass<FuncOp>> createLinalgBufferizePass(); | ||||
/// Create a pass to conver named Linalg operations to Linalg generic | /// Create a pass to convert named Linalg operations to Linalg generic | ||||
/// operations. | /// operations. | ||||
std::unique_ptr<OperationPass<FuncOp>> createLinalgGeneralizationPass(); | std::unique_ptr<OperationPass<FuncOp>> createLinalgGeneralizationPass(); | ||||
/// Create a pass to convert Linalg operations to equivalent operations that | /// Create a pass to convert Linalg operations to equivalent operations that | ||||
/// work on primitive types, if possible. | /// work on primitive types, if possible. | ||||
std::unique_ptr<Pass> createLinalgDetensorizePass(); | std::unique_ptr<Pass> createLinalgDetensorizePass(); | ||||
/// Create a pass to tile a LinalgOp and fuse its producers. | /// Create a pass to tile a LinalgOp and fuse its producers. | ||||
Show All 24 Lines | linalg::LinalgTransformationFilter filter = | ||||
linalg::LinalgTransformationFilter()); | linalg::LinalgTransformationFilter()); | ||||
/// Create a LinalgStrategyGeneralizePass. | /// Create a LinalgStrategyGeneralizePass. | ||||
std::unique_ptr<OperationPass<FuncOp>> | std::unique_ptr<OperationPass<FuncOp>> | ||||
createLinalgStrategyGeneralizePass(StringRef opName = "", | createLinalgStrategyGeneralizePass(StringRef opName = "", | ||||
linalg::LinalgTransformationFilter filter = | linalg::LinalgTransformationFilter filter = | ||||
linalg::LinalgTransformationFilter()); | linalg::LinalgTransformationFilter()); | ||||
/// Create a LinalgStrategyDecomposePass. | |||||
// TODO: atm this is applied to all supported ops. If/when we need finer control | |||||
// this should be exposed with an opName + filter and a proper pattern. | |||||
std::unique_ptr<OperationPass<FuncOp>> createLinalgStrategyDecomposePass(); | |||||
/// Create a LinalgStrategyInterchangePass. | /// Create a LinalgStrategyInterchangePass. | ||||
std::unique_ptr<OperationPass<FuncOp>> | std::unique_ptr<OperationPass<FuncOp>> | ||||
createLinalgStrategyInterchangePass(ArrayRef<int64_t> iteratorInterchange = {}, | createLinalgStrategyInterchangePass(ArrayRef<int64_t> iteratorInterchange = {}, | ||||
linalg::LinalgTransformationFilter filter = | linalg::LinalgTransformationFilter filter = | ||||
linalg::LinalgTransformationFilter()); | linalg::LinalgTransformationFilter()); | ||||
/// Create a LinalgStrategyVectorizePass. | /// Create a LinalgStrategyVectorizePass. | ||||
std::unique_ptr<OperationPass<FuncOp>> | std::unique_ptr<OperationPass<FuncOp>> | ||||
Show All 33 Lines |