[llvm] [InstCombine] Opt phi(freeze(undef), C) -> phi(C, C) (PR #161181)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Wed Oct 1 00:05:54 PDT 2025
================
@@ -5179,9 +5180,35 @@ Instruction *InstCombinerImpl::visitFreeze(FreezeInst &I) {
// TODO: This could use getBinopAbsorber() / getBinopIdentity() to avoid
// duplicating logic for binops at least.
auto getUndefReplacement = [&](Type *Ty) {
- Value *BestValue = nullptr;
+ auto pickCommonConstantFromPHI = [](PHINode &PN) -> Value * {
+ // phi(freeze(undef), C, C). Choose C for freeze so the PHI can be
+ // removed.
+ Constant *BestValue = nullptr;
+ Constant *C = nullptr;
----------------
nikic wrote:
C is not used across iterations, so please combine it with the initialization in the loop.
https://github.com/llvm/llvm-project/pull/161181
More information about the llvm-commits
mailing list