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

This reverts commit aa440ba24d.

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.
This commit is contained in:
Nikita Popov 2021-03-15 13:12:39 +01:00
parent 9ba577eca2
commit 5fb43477dc
1 changed files with 0 additions and 6 deletions

View File

@ -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 ||