[llvm] [DFAJumpThreading][NFC] Clear cleanPhiNodes and phi-related code (PR #162423)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Wed Oct 8 01:25:28 PDT 2025
================
@@ -1313,27 +1301,19 @@ struct TransformDFA {
void cleanPhiNodes(BasicBlock *BB) {
// If BB is no longer reachable, remove any remaining phi nodes
if (pred_empty(BB)) {
- std::vector<PHINode *> PhiToRemove;
- for (auto II = BB->begin(); PHINode *Phi = dyn_cast<PHINode>(II); ++II) {
- PhiToRemove.push_back(Phi);
- }
- for (PHINode *PN : PhiToRemove) {
- PN->replaceAllUsesWith(PoisonValue::get(PN->getType()));
- PN->eraseFromParent();
+ for (PHINode &PN : make_early_inc_range(BB->phis())) {
+ PN.replaceAllUsesWith(PoisonValue::get(PN.getType()));
+ PN.eraseFromParent();
}
return;
}
// Remove any incoming values that come from an invalid predecessor
- for (auto II = BB->begin(); PHINode *Phi = dyn_cast<PHINode>(II); ++II) {
- std::vector<BasicBlock *> BlocksToRemove;
- for (BasicBlock *IncomingBB : Phi->blocks()) {
- if (!isPredecessor(BB, IncomingBB))
- BlocksToRemove.push_back(IncomingBB);
- }
- for (BasicBlock *BB : BlocksToRemove)
- Phi->removeIncomingValue(BB);
- }
+ for (PHINode &Phi : BB->phis())
+ Phi.removeIncomingValueIf([&](uint Index) {
----------------
nikic wrote:
```suggestion
Phi.removeIncomingValueIf([&](unsigned Index) {
```
https://github.com/llvm/llvm-project/pull/162423
More information about the llvm-commits
mailing list