diff --git a/llvm/lib/Transforms/IPO/AttributorAttributes.cpp b/llvm/lib/Transforms/IPO/AttributorAttributes.cpp --- a/llvm/lib/Transforms/IPO/AttributorAttributes.cpp +++ b/llvm/lib/Transforms/IPO/AttributorAttributes.cpp @@ -4845,11 +4845,8 @@ auto EquivalentUseCB = [&](const Use &OldU, const Use &NewU) { if (auto *SI = dyn_cast(OldU.getUser())) { auto *Ptr = SI->getPointerOperand()->stripPointerCasts(); - if (isa(Ptr) && AA::isDynamicallyUnique(A, *this, *Ptr)) - return true; - auto *TLI = A.getInfoCache().getTargetLibraryInfoForFunction( - *SI->getFunction()); - if (isAllocationFn(Ptr, TLI) && AA::isDynamicallyUnique(A, *this, *Ptr)) + if ((isa(Ptr) || isNoAliasCall(Ptr)) && + AA::isDynamicallyUnique(A, *this, *Ptr)) return true; } return false;