diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2021-04-30 23:05:41 +0200 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2021-04-30 23:05:41 +0200 |
commit | fe230dc197b1cc259e497b88a6bc9c717318eebb (patch) | |
tree | 260bc8a27d1a663f8fe12fe37cf0ae72e41c5aee /llvm/lib/Analysis/ValueTracking.cpp | |
parent | 2cd78686055f1badb9aa55cb95e189548ffc82f0 (diff) | |
download | llvm-fe230dc197b1cc259e497b88a6bc9c717318eebb.zip llvm-fe230dc197b1cc259e497b88a6bc9c717318eebb.tar.gz llvm-fe230dc197b1cc259e497b88a6bc9c717318eebb.tar.bz2 |
[ValueTracking] Slightly clean up programUndefinedIfUndefOrPoison() (NFC)
Use contains() to check set membership, and adjust an oddly
structured loop.
Diffstat (limited to 'llvm/lib/Analysis/ValueTracking.cpp')
-rw-r--r-- | llvm/lib/Analysis/ValueTracking.cpp | 21 |
1 files changed, 8 insertions, 13 deletions
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<const Value *, 4> 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; } |