Please use GitHub pull requests for new patches. Avoid migrating existing patches. Phabricator shutdown timeline
Changeset View
Changeset View
Standalone View
Standalone View
llvm/lib/Transforms/IPO/Attributor.cpp
Show First 20 Lines • Show All 1,037 Lines • ▼ Show 20 Lines | while (!Worklist.empty()) { | ||||
} | } | ||||
if (U->getUser()->isDroppable()) { | if (U->getUser()->isDroppable()) { | ||||
LLVM_DEBUG(dbgs() << "[Attributor] Droppable user, skip!\n"); | LLVM_DEBUG(dbgs() << "[Attributor] Droppable user, skip!\n"); | ||||
continue; | continue; | ||||
} | } | ||||
if (auto *SI = dyn_cast<StoreInst>(U->getUser())) { | if (auto *SI = dyn_cast<StoreInst>(U->getUser())) { | ||||
if (&SI->getOperandUse(0) == U) { | if (&SI->getOperandUse(0) == U) { | ||||
if (!Visited.insert(U).second) | |||||
continue; | |||||
SmallSetVector<Value *, 4> PotentialCopies; | SmallSetVector<Value *, 4> PotentialCopies; | ||||
if (AA::getPotentialCopiesOfStoredValue(*this, *SI, PotentialCopies, | if (AA::getPotentialCopiesOfStoredValue(*this, *SI, PotentialCopies, | ||||
QueryingAA, | QueryingAA, | ||||
UsedAssumedInformation)) { | UsedAssumedInformation)) { | ||||
LLVM_DEBUG(dbgs() << "[Attributor] Value is stored, continue with " | LLVM_DEBUG(dbgs() << "[Attributor] Value is stored, continue with " | ||||
<< PotentialCopies.size() | << PotentialCopies.size() | ||||
<< " potential copies instead!\n"); | << " potential copies instead!\n"); | ||||
for (Value *PotentialCopy : PotentialCopies) | for (Value *PotentialCopy : PotentialCopies) | ||||
▲ Show 20 Lines • Show All 2,027 Lines • Show Last 20 Lines |