[llvm] 5909139 - [VPlan] Simplify and unify code in verifyEVLRecipe using all_of. (NFCI)
Florian Hahn via llvm-commits
llvm-commits at lists.llvm.org
Sat Nov 23 03:12:52 PST 2024
Author: Florian Hahn
Date: 2024-11-23T11:12:33Z
New Revision: 590913983c87b33fb04014124be161cbad33a6e3
URL: https://github.com/llvm/llvm-project/commit/590913983c87b33fb04014124be161cbad33a6e3
DIFF: https://github.com/llvm/llvm-project/commit/590913983c87b33fb04014124be161cbad33a6e3.diff
LOG: [VPlan] Simplify and unify code in verifyEVLRecipe using all_of. (NFCI)
Use all_of instead of explicit loop to reduce indentation, also properly
check VPScalarCastRecipe operand.
Added:
Modified:
llvm/lib/Transforms/Vectorize/VPlanVerifier.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Transforms/Vectorize/VPlanVerifier.cpp b/llvm/lib/Transforms/Vectorize/VPlanVerifier.cpp
index 89f74540669e45..71c7d547ac7d91 100644
--- a/llvm/lib/Transforms/Vectorize/VPlanVerifier.cpp
+++ b/llvm/lib/Transforms/Vectorize/VPlanVerifier.cpp
@@ -134,52 +134,43 @@ bool VPlanVerifier::verifyEVLRecipe(const VPInstruction &EVL) const {
}
return true;
};
- for (const VPUser *U : EVL.users()) {
- if (!TypeSwitch<const VPUser *, bool>(U)
- .Case<VPWidenIntrinsicRecipe>(
- [&](const VPWidenIntrinsicRecipe *S) {
- return VerifyEVLUse(*S, S->getNumOperands() - 1);
- })
- .Case<VPWidenStoreEVLRecipe>([&](const VPWidenStoreEVLRecipe *S) {
- return VerifyEVLUse(*S, 2);
- })
- .Case<VPWidenLoadEVLRecipe, VPReverseVectorPointerRecipe>(
- [&](const VPRecipeBase *R) { return VerifyEVLUse(*R, 1); })
- .Case<VPWidenEVLRecipe>([&](const VPWidenEVLRecipe *W) {
- return VerifyEVLUse(
- *W, Instruction::isUnaryOp(W->getOpcode()) ? 1 : 2);
- })
- .Case<VPReductionEVLRecipe>([&](const VPReductionEVLRecipe *R) {
- return VerifyEVLUse(*R, 2);
- })
- .Case<VPScalarCastRecipe>(
- [&](const VPScalarCastRecipe *S) { return true; })
- .Case<VPInstruction>([&](const VPInstruction *I) {
- if (I->getOpcode() != Instruction::Add) {
- errs()
- << "EVL is used as an operand in non-VPInstruction::Add\n";
- return false;
- }
- if (I->getNumUsers() != 1) {
- errs() << "EVL is used in VPInstruction:Add with multiple "
- "users\n";
- return false;
- }
- if (!isa<VPEVLBasedIVPHIRecipe>(*I->users().begin())) {
- errs() << "Result of VPInstruction::Add with EVL operand is "
- "not used by VPEVLBasedIVPHIRecipe\n";
- return false;
- }
- return true;
- })
- .Default([&](const VPUser *U) {
- errs() << "EVL has unexpected user\n";
- return false;
- })) {
- return false;
- }
- }
- return true;
+ return all_of(EVL.users(), [&VerifyEVLUse](VPUser *U) {
+ return TypeSwitch<const VPUser *, bool>(U)
+ .Case<VPWidenIntrinsicRecipe>([&](const VPWidenIntrinsicRecipe *S) {
+ return VerifyEVLUse(*S, S->getNumOperands() - 1);
+ })
+ .Case<VPWidenStoreEVLRecipe, VPReductionEVLRecipe>(
+ [&](const VPRecipeBase *S) { return VerifyEVLUse(*S, 2); })
+ .Case<VPWidenLoadEVLRecipe, VPReverseVectorPointerRecipe>(
+ [&](const VPRecipeBase *R) { return VerifyEVLUse(*R, 1); })
+ .Case<VPWidenEVLRecipe>([&](const VPWidenEVLRecipe *W) {
+ return VerifyEVLUse(*W,
+ Instruction::isUnaryOp(W->getOpcode()) ? 1 : 2);
+ })
+ .Case<VPScalarCastRecipe>(
+ [&](const VPScalarCastRecipe *S) { return VerifyEVLUse(*S, 0); })
+ .Case<VPInstruction>([&](const VPInstruction *I) {
+ if (I->getOpcode() != Instruction::Add) {
+ errs() << "EVL is used as an operand in non-VPInstruction::Add\n";
+ return false;
+ }
+ if (I->getNumUsers() != 1) {
+ errs() << "EVL is used in VPInstruction:Add with multiple "
+ "users\n";
+ return false;
+ }
+ if (!isa<VPEVLBasedIVPHIRecipe>(*I->users().begin())) {
+ errs() << "Result of VPInstruction::Add with EVL operand is "
+ "not used by VPEVLBasedIVPHIRecipe\n";
+ return false;
+ }
+ return true;
+ })
+ .Default([&](const VPUser *U) {
+ errs() << "EVL has unexpected user\n";
+ return false;
+ });
+ });
}
bool VPlanVerifier::verifyVPBasicBlock(const VPBasicBlock *VPBB) {
More information about the llvm-commits
mailing list