<div dir="ltr"><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Mar 15, 2021 at 10:01 AM Roman Lebedev via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
Author: Roman Lebedev<br>
Date: 2021-03-15T12:00:59+03:00<br>
New Revision: f247d2ab9a427434c39b2be0aeac6b84b367b7bf<br>
<br>
URL: <a href="https://github.com/llvm/llvm-project/commit/f247d2ab9a427434c39b2be0aeac6b84b367b7bf" rel="noreferrer" target="_blank">https://github.com/llvm/llvm-project/commit/f247d2ab9a427434c39b2be0aeac6b84b367b7bf</a><br>
DIFF: <a href="https://github.com/llvm/llvm-project/commit/f247d2ab9a427434c39b2be0aeac6b84b367b7bf.diff" rel="noreferrer" target="_blank">https://github.com/llvm/llvm-project/commit/f247d2ab9a427434c39b2be0aeac6b84b367b7bf.diff</a><br>
<br>
LOG: Revert "[NFCI][ValueTracking] getUnderlyingObject(): assert that no cycles are encountered"<br>
<br>
This reverts commit 36f1c3db66f7268ea3183bcf0bbf05b3e1c570b4.<br>
Seems to make bots unhappy.<br></blockquote><div><br></div><div>getUnderlyingObject() relies on a limited maximum depth to avoid cycles. To guarantee no infinite loops, drop the MaxLookup == 0 special case (not sure if it's used anywhere).<br></div><div><br></div><div>Nikita<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">

Added: <br>
<br>
<br>
Modified: <br>
    llvm/lib/Analysis/ValueTracking.cpp<br>
<br>
Removed: <br>
<br>
<br>
<br>
################################################################################<br>
diff  --git a/llvm/lib/Analysis/ValueTracking.cpp b/llvm/lib/Analysis/ValueTracking.cpp<br>
index 8c44d73d4e33..79399cf058bd 100644<br>
--- a/llvm/lib/Analysis/ValueTracking.cpp<br>
+++ b/llvm/lib/Analysis/ValueTracking.cpp<br>
@@ -4165,11 +4165,7 @@ static bool isSameUnderlyingObjectInLoop(const PHINode *PN,<br>
 const Value *llvm::getUnderlyingObject(const Value *V, unsigned MaxLookup) {<br>
   if (!V->getType()->isPointerTy())<br>
     return V;<br>
-#ifndef NDEBUG<br>
-  SmallPtrSet<const Value *, 8> Visited;<br>
-#endif<br>
   for (unsigned Count = 0; MaxLookup == 0 || Count < MaxLookup; ++Count) {<br>
-    assert(Visited.insert(V).second && "Cycle detected. Unreachable code?");<br>
     if (auto *GEP = dyn_cast<GEPOperator>(V)) {<br>
       V = GEP->getPointerOperand();<br>
     } else if (Operator::getOpcode(V) == Instruction::BitCast ||<br>
<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
</blockquote></div></div>