[PATCH] D142628: [memref][Transform][NFC] Improve the doc for masked_vectorize
Quentin Colombet via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Jan 27 02:21:28 PST 2023
This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rGbf5f63e59fd7: [memref][Transform][NFC] Improve the doc for masked_vectorize (authored by qcolombet).
Changed prior to commit:
https://reviews.llvm.org/D142628?vs=492434&id=492676#toc
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D142628/new/
https://reviews.llvm.org/D142628
Files:
mlir/include/mlir/Dialect/Linalg/TransformOps/LinalgTransformOps.td
mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
Index: mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
===================================================================
--- mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
+++ mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
@@ -980,16 +980,17 @@
"Input vector sizes don't match the number of loops");
assert(!ShapedType::isDynamicShape(inputVectorSizes) &&
"Input vector sizes can't have dynamic dimensions");
- assert(llvm::all_of(
- llvm::zip(linalgOp.getStaticLoopRanges(), inputVectorSizes),
- [](std::tuple<int64_t, int64_t> sizePair) {
- int64_t staticSize = std::get<0>(sizePair);
- int64_t inputSize = std::get<1>(sizePair);
- return ShapedType::isDynamic(staticSize) ||
- staticSize <= inputSize;
- }) &&
- "Input vector sizes must be smaller or equal than iteration space "
- "static sizes");
+ assert(
+ llvm::all_of(
+ llvm::zip(linalgOp.getStaticLoopRanges(), inputVectorSizes),
+ [](std::tuple<int64_t, int64_t> sizePair) {
+ int64_t staticSize = std::get<0>(sizePair);
+ int64_t inputSize = std::get<1>(sizePair);
+ return ShapedType::isDynamic(staticSize) ||
+ staticSize <= inputSize;
+ }) &&
+ "Input vector sizes must be greater than or equal to iteration space "
+ "static sizes");
}
// TODO: Masking is only supported for dynamic shapes so input vector sizes
@@ -1066,8 +1067,8 @@
/// Emit a suitable vector form for a Linalg op. If provided, `inputVectorSizes`
/// are used to vectorize this operation. `inputVectorSizes` must match the rank
-/// of the iteration space of the operation and the sizes must be smaller or
-/// equal than their counterpart interation space sizes, if static.
+/// of the iteration space of the operation and the input vector sizes must be
+/// greater than or equal to their counterpart iteration space sizes, if static.
/// `inputVectorShapes` also allows the vectorization of operations with dynamic
/// shapes.
LogicalResult mlir::linalg::vectorize(RewriterBase &rewriter, LinalgOp linalgOp,
Index: mlir/include/mlir/Dialect/Linalg/TransformOps/LinalgTransformOps.td
===================================================================
--- mlir/include/mlir/Dialect/Linalg/TransformOps/LinalgTransformOps.td
+++ mlir/include/mlir/Dialect/Linalg/TransformOps/LinalgTransformOps.td
@@ -1507,6 +1507,12 @@
SSA values, the handle must be mapped to exactly one payload op with
exactly one index-typed result.
+ Note: The input vector sizes must be bigger than or equal to their
+ counterpart iteration space sizes.
+
+ Typically this operator should be applied to linalg operations that have
+ already be tiled to the appropriate sizes.
+
#### Return modes:
This operation produces a definite failure if the dynamic vector sizes (SSA
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D142628.492676.patch
Type: text/x-patch
Size: 3033 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230127/d3b5ee41/attachment.bin>
More information about the llvm-commits
mailing list