|
| SmallVector< int64_t > | mlir::linalg::getPackInverseDestPerm (linalg::PackOp packOp, PackingMetadata &metadata) |
| | Compute inverse permutation for the destination tensor (i.e.
|
| SmallVector< int64_t > | mlir::linalg::getUnPackInverseSrcPerm (linalg::UnPackOp, PackingMetadata &metadata) |
| | Compute inverse permutation for the source tensor (i.e.
|
| bool | mlir::linalg::allIndexingsAreProjectedPermutation (LinalgOp op) |
| | Check if all indexing maps are projected permutations.
|
| bool | mlir::linalg::hasOnlyScalarElementwiseOp (Region &r) |
| | Detect whether r has only ConstantOp, ElementwiseMappable and YieldOp.
|
| bool | mlir::linalg::isElementwise (LinalgOp op) |
| | Check if a LinalgOp is an element-wise operation.
|
| bool | mlir::linalg::isParallelIterator (utils::IteratorType iteratorType) |
| | Check if iterator type has "parallel" semantics.
|
| bool | mlir::linalg::isReductionIterator (utils::IteratorType iteratorType) |
| | Check if iterator type has "reduction" semantics.
|
| Value | mlir::linalg::makeComposedPadHighOp (OpBuilder &b, Location loc, RankedTensorType type, Value source, Value padding, bool nofold, ValueRange typeDynDims={}) |
| | Create a tensor::PadOp that pads source to the shape of type whose sizes are assumed to be greater than the dynamic source size.
|
| GenericOp | mlir::linalg::makeMemRefCopyOp (OpBuilder &b, Location loc, Value from, Value to) |
| | Returns GenericOp that copies an n-D memref.
|
| std::optional< SmallVector< ReassociationIndices > > | mlir::linalg::getReassociationMapForFoldingUnitDims (ArrayRef< OpFoldResult > mixedSizes) |
| | Get the reassociation maps to fold the result of a extract_slice (or source of a insert_slice) operation with given offsets, and sizes to its rank-reduced version.
|
| template<typename ConvOpTy> |
| bool | mlir::linalg::isaConvolutionOpOfType (LinalgOp op, SmallVector< int64_t > *dilations, SmallVector< int64_t > *strides) |
| | Given a linalg op this function returns true if it is a convolution op of type ConvOpTy and populates dilations and strides with values inferred from the indexing maps.
|
| SmallVector< OpFoldResult > | mlir::linalg::computeTileOffsets (OpBuilder &b, Location loc, ArrayRef< OpFoldResult > ivs, ArrayRef< OpFoldResult > tileSizes) |
| | Computes tile offsets, given a list of loop ivs and tileSizes.
|
| SmallVector< OpFoldResult > | mlir::linalg::computeTileSizes (OpBuilder &b, Location loc, ArrayRef< OpFoldResult > tileSizes, ArrayRef< OpFoldResult > sizeBounds) |
| | Computes tile sizes, given a list of tileSizes and dimension sizes (sizeBounds).
|
| SmallVector< Type > | mlir::linalg::getTensorOutputTypes (LinalgOp op, ValueRange operands) |
| | Returns the list of tensor output types produced when the given structured operation op is applied to the given operands.
|
| SmallVector< Value > | mlir::linalg::insertSlicesBack (OpBuilder &builder, Location loc, LinalgOp op, ValueRange operands, ValueRange results) |
| | Creates insert_slice ops that insert results back into larger tensors they were originally extracted from with extract_slice before being passed as operands to the given structured operation op or its clone.
|
| SliceParameters | mlir::linalg::computeSliceParameters (OpBuilder &builder, Location loc, Value valueToTile, ArrayRef< OpFoldResult > tileSizes, AffineMap map, ArrayRef< OpFoldResult > lbs, ArrayRef< OpFoldResult > ubs, ArrayRef< OpFoldResult > subShapeSizes, bool omitPartialTileCheck) |
| | Computes SliceParameters for a single valueToTile assuming that its user is being tiled with the given loop bounds lbs and ubs and the tile sizes tileSizes.
|
| SmallVector< std::optional< SliceParameters > > | mlir::linalg::computeAllSliceParameters (OpBuilder &builder, Location loc, LinalgOp linalgOp, ValueRange valuesToTile, ArrayRef< OpFoldResult > ivs, ArrayRef< OpFoldResult > tileSizes, ArrayRef< OpFoldResult > sizeBounds, bool omitPartialTileCheck) |
| | Computes SliceParamaters for all valuesToTile of the given linalgOp, assuming linalgOp is being fused into a loop nest.
|
| Operation * | mlir::linalg::makeTiledShape (OpBuilder &builder, Location loc, Value valueToTile, ArrayRef< OpFoldResult > tileSizes, AffineMap map, ArrayRef< OpFoldResult > lbs, ArrayRef< OpFoldResult > ubs, ArrayRef< OpFoldResult > subShapeSizes, bool omitPartialTileCheck) |
| | Creates an extract_slice/subview op for a single valueToTile with builder.
|
| SmallVector< Value > | mlir::linalg::makeTiledShapes (OpBuilder &builder, Location loc, LinalgOp linalgOp, ValueRange valuesToTile, ArrayRef< OpFoldResult > ivs, ArrayRef< OpFoldResult > tileSizes, ArrayRef< OpFoldResult > sizeBounds, bool omitPartialTileCheck) |
| | Creates extract_slice/subview ops for all valuesToTile of the given linalgOp with builder, assuming linalgOp is being fused into a loop nest for tiling with the given induction variables ivs and tile sizes tileSizes.
|
| void | mlir::linalg::offsetIndices (OpBuilder &b, LinalgOp linalgOp, ArrayRef< OpFoldResult > offests) |
| | Add the specified offsets to any linalg.index ops contained in the given linalgOp.
|
| void | mlir::linalg::offsetIndices (RewriterBase &b, LinalgOp linalgOp, ArrayRef< OpFoldResult > offests) |
| FailureOr< FusionInfo > | mlir::linalg::fuseProducerOfTensor (OpBuilder &b, OpOperand &consumerOpOperand) |
| | This implements the fusion part of the "tileAndFuse on tensors" transformation and thus requires the consumerOpOperand to be a extract_slice op (generally obtained by applying the tiling transformation).
|
| FailureOr< FusionInfo > | mlir::linalg::fuseProducerOfTensor (OpBuilder &b, OpResult producerOpResult, OpOperand &consumerOpOperand) |
| | This implements the fusion part of the "tileAndFuse on tensors" transformation and thus requires the consumerOpOperand to be a extract_slice op (generally obtained by applying the tiling transformation).
|
| void | mlir::linalg::updateBoundsForCyclicDistribution (OpBuilder &builder, Location loc, Value procId, Value nprocs, Value &lb, Value &ub, Value &step) |
| | Update the lb, ub and step to get per processor lb, ub and step.
|
| template<typename OpTy> |
| SmallVector< NamedAttribute > | mlir::linalg::getPrunedAttributeList (OpTy op) |
| | Returns an attribute list that excludes pre-defined attributes.
|