[llvm] 5fb4347 - Revert "[NFCI][ValueTracking] getUnderlyingObject(): gracefully handle cycles"

Nikita Popov via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 15 05:13:47 PDT 2021


Author: Nikita Popov
Date: 2021-03-15T13:12:39+01:00
New Revision: 5fb43477dcacd6fca573699dd2691a17eae7dc7e

URL: https://github.com/llvm/llvm-project/commit/5fb43477dcacd6fca573699dd2691a17eae7dc7e
DIFF: https://github.com/llvm/llvm-project/commit/5fb43477dcacd6fca573699dd2691a17eae7dc7e.diff

LOG: Revert "[NFCI][ValueTracking] getUnderlyingObject(): gracefully handle cycles"

This reverts commit aa440ba24dc25e4c95f6dcf8ff647024f3b12661.

This has a non-trivial compile-time impact:
https://llvm-compile-time-tracker.com/compare.php?from=0c5b789c7342ee8384507c3242fc256e23248c4d&to=aa440ba24dc25e4c95f6dcf8ff647024f3b12661&stat=instructions

I don't believe this is the correct way to address the issue in
this case.

Added: 
    

Modified: 
    llvm/lib/Analysis/ValueTracking.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Analysis/ValueTracking.cpp b/llvm/lib/Analysis/ValueTracking.cpp
index 5fe026915477..79399cf058bd 100644
--- a/llvm/lib/Analysis/ValueTracking.cpp
+++ b/llvm/lib/Analysis/ValueTracking.cpp
@@ -4165,13 +4165,7 @@ static bool isSameUnderlyingObjectInLoop(const PHINode *PN,
 const Value *llvm::getUnderlyingObject(const Value *V, unsigned MaxLookup) {
   if (!V->getType()->isPointerTy())
     return V;
-  // Keep track of all the values we have recursed through.
-  SmallPtrSet<const Value *, 8> Visited;
   for (unsigned Count = 0; MaxLookup == 0 || Count < MaxLookup; ++Count) {
-    // Did we encounter this value already?
-    if (!Visited.insert(V).second)
-      return V; // Cycle detected, we must be in an unreachable code.
-    // Otherwise, recurse further.
     if (auto *GEP = dyn_cast<GEPOperator>(V)) {
       V = GEP->getPointerOperand();
     } else if (Operator::getOpcode(V) == Instruction::BitCast ||


        


More information about the llvm-commits mailing list