MLIR 22.0.0git
Transforms.h File Reference

Go to the source code of this file.

Namespaces

namespace  mlir
 Include the generated interface declarations.
namespace  mlir::tensor

Typedefs

using mlir::tensor::ControlFoldFn = std::function<bool(OpOperand *)>

Functions

FailureOr< TilingResultmlir::tensor::replaceExtractSliceWithTiledProducer (OpBuilder &builder, tensor::ExtractSliceOp sliceOp, OpResult producerOp)
 Method to swap an tensor.extract_slice with its producer when the producer implements the TilingInterface.
FailureOr< TilingResultmlir::tensor::replaceInsertSlicesWithTiledConsumer (OpBuilder &builder, ArrayRef< tensor::InsertSliceOp > sliceOps, ArrayRef< OpOperand * > consumerOperands)
 Method to swap tensor.insert_slices with their consumers when the consumer implements the TilingInterface.
void mlir::tensor::populateFoldTensorSubsetOpPatterns (RewritePatternSet &patterns)
 Appends patterns for folding tensor subset ops into consumer load/store ops into patterns.
void mlir::tensor::populateFoldTensorSubsetIntoVectorTransferPatterns (RewritePatternSet &patterns)
 Appends patterns for folding tensor subset ops into vector transfer ops.
void mlir::tensor::populateMergeConsecutiveInsertExtractSlicePatterns (RewritePatternSet &patterns)
 Collects patterns to merge consecutive tensor.insert_slice/extract_slice into one.
void mlir::tensor::populateBubbleUpExtractSliceOpPatterns (RewritePatternSet &patterns)
 Appends patterns that are used to bubble up tensor.extract slice op above its producer.
void mlir::tensor::populateDropRedundantInsertSliceRankExpansionPatterns (RewritePatternSet &patterns)
 Populates patterns with patterns that drop redundant tensor.insert_slice rank expansions.
void mlir::tensor::populateReassociativeReshapeFoldingPatterns (RewritePatternSet &patterns)
 Populates patterns with patterns that fold tensor.expand_shape and tensor.collapse_shape into other ops.
void mlir::tensor::populateBubbleUpExpandShapePatterns (RewritePatternSet &patterns)
 Populates patterns with patterns that bubble up tensor.expand_shape through tensor.collapse_shape ops.
void mlir::tensor::populateFoldTensorEmptyPatterns (RewritePatternSet &patterns, bool foldSingleUseOnly=false)
 Populates patterns with patterns that fold tensor.empty with its consumers.
void mlir::tensor::populateDecomposeTensorConcatPatterns (RewritePatternSet &patterns)
 Populates patterns with patterns that decompose tensor.concat into tensor.empty of a tensor of the concatenated size, followed by a chain of tensor.insert_slice operations on the inputs.
void mlir::tensor::populateRewriteAsConstantPatterns (RewritePatternSet &patterns, const ControlFoldFn &controlFn)
 Populates patterns with patterns that replace tensor ops (such as tensor.generate) with constants when possible.
FailureOr< Valuemlir::tensor::buildIndependentOp (OpBuilder &b, tensor::PadOp padOp, ValueRange independencies)
 Build a new tensor::PadOp with low/high padding that is independent of all given independencies.
FailureOr< Valuemlir::tensor::buildIndependentOp (OpBuilder &b, tensor::EmptyOp emptyOp, ValueRange independencies)
 Build a new tensor::EmptyOp who's dynamic sizes are independent of all given independencies.
LogicalResult mlir::tensor::getCollapsedExtractSliceInfo (OpBuilder &b, tensor::ExtractSliceOp sliceOp, ArrayRef< ReassociationIndices > reassociation, SmallVectorImpl< OpFoldResult > &collapsedOffsets, SmallVectorImpl< OpFoldResult > &collapsedSizes, SmallVectorImpl< OpFoldResult > &collapsedStrides)
 Computes the offsets, sizes, and strides needed to build a collapsed sliceOp.
LogicalResult mlir::tensor::getExpandedExtractSliceInfo (OpBuilder &b, tensor::ExtractSliceOp sliceOp, ArrayRef< ReassociationIndices > reassociation, ArrayRef< int64_t > expandedShape, SmallVectorImpl< OpFoldResult > &expandedOffsets, SmallVectorImpl< OpFoldResult > &expandedSizes, SmallVectorImpl< OpFoldResult > &expandedStrides)
 Computes the offsets, sizes, and strides needed to build an expanded sliceOp.