https://github.com/Friedrich20 updated https://github.com/llvm/llvm-project/pull/74716
>From 5ef11803b597fec44b64239824a4c9d3280cfea6 Mon Sep 17 00:00:00 2001 From: Wei Tao <friedrich.t...@gmail.com> Date: Thu, 7 Dec 2023 21:33:40 +0800 Subject: [PATCH] [LLVM][CanonicalizeFreezeInLoops] fix duplicate removal --- .../Transforms/Utils/CanonicalizeFreezeInLoops.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/llvm/lib/Transforms/Utils/CanonicalizeFreezeInLoops.cpp b/llvm/lib/Transforms/Utils/CanonicalizeFreezeInLoops.cpp index fb4d8288537725..ff1eb17e0c2488 100644 --- a/llvm/lib/Transforms/Utils/CanonicalizeFreezeInLoops.cpp +++ b/llvm/lib/Transforms/Utils/CanonicalizeFreezeInLoops.cpp @@ -151,11 +151,18 @@ bool CanonicalizeFreezeInLoopsImpl::run() { } } + bool Exist = false; auto Visit = [&](User *U) { if (auto *FI = dyn_cast<FreezeInst>(U)) { - LLVM_DEBUG(dbgs() << "canonfr: found: " << *FI << "\n"); - Info.FI = FI; - Candidates.push_back(Info); + for (const auto &Candidate : Candidates) { + auto *FI_cand = Candidate.FI; + Exist = (FI_cand == FI) ? true : Exist; + } + if (!Exist) { + LLVM_DEBUG(dbgs() << "canonfr: found: " << *FI << "\n"); + Info.FI = FI; + Candidates.push_back(Info); + } } }; for_each(PHI.users(), Visit); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits