[Mlir-commits] [mlir] [mlir][vector][nfc] Replace `failure()` with `notifyMatchFailure()` (PR #129278)
Andrzej WarzyĆski
llvmlistbot at llvm.org
Fri Feb 28 09:49:14 PST 2025
https://github.com/banach-space created https://github.com/llvm/llvm-project/pull/129278
Updates some instances of plain `return failure();` in VectorToSCF.cpp
with `return notifyMatchFailure();` and a description (usually copied
from the nearby comment).
There's many more "plain" `return failure();` left, but I ATM I only
have the cycles for the ones updated here.
>From 43df98cccc3320a4ca7a4e934668b8869e64fb91 Mon Sep 17 00:00:00 2001
From: Andrzej Warzynski <andrzej.warzynski at arm.com>
Date: Fri, 28 Feb 2025 17:45:56 +0000
Subject: [PATCH] [mlir][vector][nfc] Replace `failure()` with
`notifyMatchFailure()`
Updates some instances of plain `return failure();` in VectorToSCF.cpp
with `return notifyMatchFailure();` and a description (usually copied
from the nearby comment).
There's many more "plain" `return failure();` left, but I ATM I only
have the cycles for the ones updated here.
---
.../Conversion/VectorToSCF/VectorToSCF.cpp | 37 ++++++++++---------
1 file changed, 20 insertions(+), 17 deletions(-)
diff --git a/mlir/lib/Conversion/VectorToSCF/VectorToSCF.cpp b/mlir/lib/Conversion/VectorToSCF/VectorToSCF.cpp
index 22bf27d229ce5..52c99ec664044 100644
--- a/mlir/lib/Conversion/VectorToSCF/VectorToSCF.cpp
+++ b/mlir/lib/Conversion/VectorToSCF/VectorToSCF.cpp
@@ -549,22 +549,25 @@ struct Strategy<TransferWriteOp> {
};
template <typename OpTy>
-LogicalResult checkPrepareXferOp(OpTy xferOp,
- VectorTransferToSCFOptions options) {
+static LogicalResult checkPrepareXferOp(OpTy xferOp, PatternRewriter &rewriter,
+ VectorTransferToSCFOptions options) {
if (xferOp->hasAttr(kPassLabel))
- return failure();
+ return rewriter.notifyMatchFailure(xferOp, "kPassLabel is present!");
if (xferOp.getVectorType().getRank() <= options.targetRank)
- return failure();
- // Currently the unpacking of the leading dimension into the memref is not
- // supported for scalable dimensions.
+ return rewriter.notifyMatchFailure(
+ xferOp, "xferOp vector rank <= transformation target rank");
if (xferOp.getVectorType().getScalableDims().front())
- return failure();
+ return rewriter.notifyMatchFailure(
+ xferOp, "Unpacking of the leading dimension into the memref is not yet "
+ "supported for scalable dims");
if (isTensorOp(xferOp) && !options.lowerTensors)
- return failure();
- // Transfer ops that modify the element type are not supported atm.
+ return rewriter.notifyMatchFailure(
+ xferOp, "Unpacking for tensors has been disabled.");
if (xferOp.getVectorType().getElementType() !=
xferOp.getShapedType().getElementType())
- return failure();
+ return rewriter.notifyMatchFailure(
+ xferOp, "Mismatching source and destination element types.");
+
return success();
}
@@ -597,8 +600,9 @@ struct PrepareTransferReadConversion
LogicalResult matchAndRewrite(TransferReadOp xferOp,
PatternRewriter &rewriter) const override {
- if (checkPrepareXferOp(xferOp, options).failed())
- return failure();
+ if (checkPrepareXferOp(xferOp, rewriter, options).failed())
+ return rewriter.notifyMatchFailure(
+ xferOp, "checkPrepareXferOp conditions not met!");
auto buffers = allocBuffers(rewriter, xferOp);
auto *newXfer = rewriter.clone(*xferOp.getOperation());
@@ -646,8 +650,9 @@ struct PrepareTransferWriteConversion
LogicalResult matchAndRewrite(TransferWriteOp xferOp,
PatternRewriter &rewriter) const override {
- if (checkPrepareXferOp(xferOp, options).failed())
- return failure();
+ if (checkPrepareXferOp(xferOp, rewriter, options).failed())
+ return rewriter.notifyMatchFailure(
+ xferOp, "checkPrepareXferOp conditions not met!");
Location loc = xferOp.getLoc();
auto buffers = allocBuffers(rewriter, xferOp);
@@ -1294,16 +1299,14 @@ struct UnrollTransferReadConversion
xferOp, "vector rank is less or equal to target rank");
if (failed(checkLowerTensors(xferOp, rewriter)))
return failure();
- // Transfer ops that modify the element type are not supported atm.
if (xferOp.getVectorType().getElementType() !=
xferOp.getShapedType().getElementType())
return rewriter.notifyMatchFailure(
xferOp, "not yet supported: element type mismatch");
auto xferVecType = xferOp.getVectorType();
if (xferVecType.getScalableDims()[0]) {
- // Cannot unroll a scalable dimension at compile time.
return rewriter.notifyMatchFailure(
- xferOp, "scalable dimensions cannot be unrolled");
+ xferOp, "scalable dimensions cannot be unrolled at compile time");
}
auto insertOp = getInsertOp(xferOp);
More information about the Mlir-commits
mailing list