|
static bool | isTiled (AffineExpr expr, ArrayRef< OpFoldResult > tileSizes) |
|
static bool | isTiled (AffineMap map, ArrayRef< OpFoldResult > tileSizes) |
|
static void | unpackRanges (OpBuilder &builder, Location loc, ArrayRef< Range > ranges, SmallVectorImpl< Value > &lbs, SmallVectorImpl< Value > &ubs, SmallVectorImpl< Value > &steps) |
| Given a list of subview ranges, extract individual values for lower, upper bounds and steps and put them into the corresponding vectors. More...
|
|
bool | mlir::linalg::allIndexingsAreProjectedPermutation (LinalgOp op) |
| Check if all indexing maps are projected permutations. More...
|
|
bool | mlir::linalg::hasOnlyScalarElementwiseOp (Region &r) |
| Detect whether r has only ConstantOp, ElementwiseMappable and YieldOp. More...
|
|
bool | mlir::linalg::isElementwise (LinalgOp op) |
| Check if a LinalgOp is an element-wise operation. More...
|
|
bool | mlir::linalg::isParallelIterator (utils::IteratorType iteratorType) |
| Check if iterator type has "parallel" semantics. More...
|
|
bool | mlir::linalg::isReductionIterator (utils::IteratorType iteratorType) |
| Check if iterator type has "reduction" semantics. More...
|
|
Value | mlir::linalg::makeComposedPadHighOp (OpBuilder &b, Location loc, RankedTensorType type, Value source, Value pad, bool nofold) |
| Create a tensor::PadOp that pads source to the size of the statically sized type whose static sizes are assumed to be greater than the dynamic source size. More...
|
|
GenericOp | mlir::linalg::makeMemRefCopyOp (OpBuilder &b, Location loc, Value from, Value to) |
| Returns GenericOp that copies an n-D memref. More...
|
|
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 . More...
|
|
static void | mlir::linalg::generateParallelLoopNest (OpBuilder &b, Location loc, ValueRange lbs, ValueRange ubs, ValueRange steps, ArrayRef< utils::IteratorType > iteratorTypes, ArrayRef< linalg::ProcInfo > procInfo, function_ref< void(OpBuilder &, Location, ValueRange)> bodyBuilderFn, SmallVectorImpl< Value > &ivStorage) |
| Generates a loop nest consisting of scf.parallel and scf.for, depending on the iteratorTypes. More...
|
|
static Operation * | mlir::linalg::materializeTiledShape (OpBuilder &builder, Location loc, Value valueToTile, const SliceParameters &sliceParams) |
|
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 . More...
|
|
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 . More...
|
|
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 . More...
|
|
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 ). More...
|
|
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 . More...
|
|
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. More...
|
|
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. More...
|
|
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 . More...
|
|
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 . More...
|
|
void | mlir::linalg::offsetIndices (RewriterBase &b, LinalgOp linalgOp, ArrayRef< OpFoldResult > offests) |
|
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. More...
|
|