[Mlir-commits] [mlir] [mlir] Return vectorized values instead of replacing (PR #144158)
Han-Chung Wang
llvmlistbot at llvm.org
Thu Jun 19 09:30:36 PDT 2025
================
@@ -771,17 +771,24 @@ LogicalResult deallocateGPUPrivateMemory(OpBuilder &, Value /*buffer*/);
/// to work (these are checked by the vectorizer itself).
bool hasVectorizationImpl(Operation *);
+/// Transformation information returned after vectorizing.
+struct VectorizationResult {
+ /// Results of the vectorization transform to replace the original operation.
+ SmallVector<Value> replacements;
+};
/// Emit a suitable vector form for an operation. 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. `inputVectorShapes` also allows the vectorization of operations with
-/// dynamic shapes.
-LogicalResult vectorize(RewriterBase &rewriter, Operation *op,
- ArrayRef<int64_t> inputVectorSizes = {},
- ArrayRef<bool> inputScalableVecDims = {},
- bool vectorizeNDExtract = false,
- bool flatten1DDepthwiseConv = false);
+/// `inputVectorSizes` are used to vectorize this operation.
+/// `inputVectorSizes` must match the rank 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. Returns
+/// a VectorizationResult containing the results of the vectorized op, or
+/// failure if the transformation fails.
+FailureOr<VectorizationResult>
----------------
hanhanW wrote:
I'd move `Returns ...` to the first sentence, which is a high level overview of the function. And maybe remove `Emit a suitable vector form for an operation.`?
https://github.com/llvm/llvm-project/pull/144158
More information about the Mlir-commits
mailing list