[llvm] [InstCombine] Treat identical operands as one in pushFreezeToPreventPoisonFromPropagating (PR #145348)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Thu Jun 26 13:28:49 PDT 2025
================
@@ -4774,7 +4774,9 @@ InstCombinerImpl::pushFreezeToPreventPoisonFromPropagating(FreezeInst &OrigFI) {
Use *MaybePoisonOperand = nullptr;
for (Use &U : OrigOpInst->operands()) {
if (isa<MetadataAsValue>(U.get()) ||
- isGuaranteedNotToBeUndefOrPoison(U.get()))
+ isGuaranteedNotToBeUndefOrPoison(U.get()) ||
+ // Treat identical operands as a single operand.
+ (MaybePoisonOperand && MaybePoisonOperand->get() == U.get()))
----------------
nikic wrote:
You should probably switch this code from working on Use* to working on Value*.
https://github.com/llvm/llvm-project/pull/145348
More information about the llvm-commits
mailing list