From: Nikita Popov Date: Fri, 30 Apr 2021 21:05:41 +0000 (+0200) Subject: [ValueTracking] Slightly clean up programUndefinedIfUndefOrPoison() (NFC) X-Git-Tag: llvmorg-14-init~7916 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=fe230dc197b1cc259e497b88a6bc9c717318eebb;p=platform%2Fupstream%2Fllvm.git [ValueTracking] Slightly clean up programUndefinedIfUndefOrPoison() (NFC) Use contains() to check set membership, and adjust an oddly structured loop. --- diff --git a/llvm/lib/Analysis/ValueTracking.cpp b/llvm/lib/Analysis/ValueTracking.cpp index e2c7253..369ac42 100644 --- a/llvm/lib/Analysis/ValueTracking.cpp +++ b/llvm/lib/Analysis/ValueTracking.cpp @@ -5400,10 +5400,9 @@ static bool programUndefinedIfUndefOrPoison(const Value *V, SmallPtrSet WellDefinedOps; getGuaranteedWellDefinedOps(&I, WellDefinedOps); - for (auto *Op : WellDefinedOps) { - if (Op == V) - return true; - } + if (WellDefinedOps.contains(V)) + return true; + if (!isGuaranteedToTransferExecutionToSuccessor(&I)) break; } @@ -5439,16 +5438,12 @@ static bool programUndefinedIfUndefOrPoison(const Value *V, for_each(I.users(), Propagate); } - if (auto *NextBB = BB->getSingleSuccessor()) { - if (Visited.insert(NextBB).second) { - BB = NextBB; - Begin = BB->getFirstNonPHI()->getIterator(); - End = BB->end(); - continue; - } - } + BB = BB->getSingleSuccessor(); + if (!BB || !Visited.insert(BB).second) + break; - break; + Begin = BB->getFirstNonPHI()->getIterator(); + End = BB->end(); } return false; }