[llvm] [SSAUpdaterBulk] Add PHI simplification pass. (PR #132004)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Sun Apr 6 12:42:17 PDT 2025
================
@@ -223,3 +224,78 @@ void SSAUpdaterBulk::RewriteAllUses(DominatorTree *DT,
}
}
}
+
+bool SSAUpdaterBulk::simplifyPass(SmallVectorImpl<PHINode *> &Worklist) {
+ if (Worklist.empty())
+ return false;
+
+ const DataLayout &DL = Worklist.front()->getParent()->getDataLayout();
+ bool Change = false;
+ for (PHINode *&PHI : Worklist) {
+ if (Value *Replacement = simplifyInstruction(PHI, DL)) {
+ PHI->replaceAllUsesWith(Replacement);
+ PHI->eraseFromParent();
+ PHI = nullptr; // Mark as removed
----------------
nikic wrote:
You could also iterate over Worklist using erase_if instead to avoid leaving behind nullptrs.
https://github.com/llvm/llvm-project/pull/132004
More information about the llvm-commits
mailing list