[llvm] [VPlan] Remove single-operand dead VPPhi (PR #156438)
Ramkumar Ramachandra via llvm-commits
llvm-commits at lists.llvm.org
Mon Sep 8 01:28:04 PDT 2025
================
@@ -561,17 +561,23 @@ void VPlanTransforms::removeDeadRecipes(VPlan &Plan) {
continue;
}
- // Check if R is a dead VPPhi <-> update cycle and remove it.
+ // Remove dead VPPhi <-> update cycles.
auto *PhiR = dyn_cast<VPPhi>(&R);
- if (!PhiR || PhiR->getNumOperands() != 2 || PhiR->getNumUsers() != 1)
+ if (!PhiR)
continue;
- VPValue *Incoming = PhiR->getOperand(1);
- if (*PhiR->user_begin() != Incoming->getDefiningRecipe() ||
- Incoming->getNumUsers() != 1)
- continue;
- PhiR->replaceAllUsesWith(PhiR->getOperand(0));
- PhiR->eraseFromParent();
- Incoming->getDefiningRecipe()->eraseFromParent();
+ if (PhiR->getNumOperands() == 1) {
+ PhiR->replaceAllUsesWith(PhiR->getOperand(0));
+ PhiR->eraseFromParent();
+ }
----------------
artagnon wrote:
> better to keep simple replacementts in simplifyRecipe
Are the improvements not worthwhile?
https://github.com/llvm/llvm-project/pull/156438
More information about the llvm-commits
mailing list