Lines Matching +full:16 +full:ma

137 MemoryAccess *MemorySSAUpdater::getPreviousDef(MemoryAccess *MA) {  in getPreviousDef()  argument
138 if (auto *LocalResult = getPreviousDefInBlock(MA)) in getPreviousDef()
141 return getPreviousDefRecursive(MA->getBlock(), CachedPreviousDef); in getPreviousDef()
147 MemoryAccess *MemorySSAUpdater::getPreviousDefInBlock(MemoryAccess *MA) { in getPreviousDefInBlock() argument
148 auto *Defs = MSSA->getWritableBlockDefs(MA->getBlock()); in getPreviousDefInBlock()
153 if (!isa<MemoryUse>(MA)) { in getPreviousDefInBlock()
154 auto Iter = MA->getReverseDefsIterator(); in getPreviousDefInBlock()
160 auto End = MSSA->getWritableBlockAccesses(MA->getBlock())->rend(); in getPreviousDefInBlock()
161 for (auto &U : make_range(++MA->getReverseIterator(), End)) in getPreviousDefInBlock()
164 // Note that if MA comes before Defs->begin(), we won't hit a def. in getPreviousDefInBlock()
264 SmallPtrSet<BasicBlock *, 16> Visited; in insertUse()
435 SmallPtrSet<BasicBlock *, 16> Visited; in insertDef()
464 SmallVector<const BasicBlock *, 16> Worklist; in fixupDefs()
557 MemoryAccess *MA = nullptr; in onlySingleValue() local
560 if (!MA) in onlySingleValue()
561 MA = cast<MemoryAccess>(Arg); in onlySingleValue()
562 else if (MA != Arg) in onlySingleValue()
565 return MA; in onlySingleValue()
568 static MemoryAccess *getNewDefiningAccessForClone(MemoryAccess *MA, in getNewDefiningAccessForClone() argument
572 MemoryAccess *InsnDefining = MA; in getNewDefiningAccessForClone()
603 for (const MemoryAccess &MA : *Acc) { in cloneUsesAndDefs()
604 if (const MemoryUseOrDef *MUD = dyn_cast<MemoryUseOrDef>(&MA)) { in cloneUsesAndDefs()
976 SmallVector<BasicBlock *, 16> BlocksWithDefsToReplace; in applyInsertUpdates()
1077 SmallPtrSet<BasicBlock *, 16> DefiningBlocks(BlocksToProcess.begin(), in applyInsertUpdates()
1259 SmallPtrSet<BasicBlock *, 16> PredsSet(Preds.begin(), Preds.end()); in wireOldPredecessorsToNewImmediatePredecessor()
1266 Phi->unorderedDeleteIncomingIf([&](MemoryAccess *MA, BasicBlock *B) { in wireOldPredecessorsToNewImmediatePredecessor() argument
1268 NewPhi->addIncoming(MA, B); in wireOldPredecessorsToNewImmediatePredecessor()
1280 void MemorySSAUpdater::removeMemoryAccess(MemoryAccess *MA, bool OptimizePhis) { in removeMemoryAccess() argument
1281 assert(!MSSA->isLiveOnEntryDef(MA) && in removeMemoryAccess()
1286 if (MemoryPhi *MP = dyn_cast<MemoryPhi>(MA)) { in removeMemoryAccess()
1296 NewDefTarget = cast<MemoryUseOrDef>(MA)->getDefiningAccess(); in removeMemoryAccess()
1302 if (!isa<MemoryUse>(MA) && !MA->use_empty()) { in removeMemoryAccess()
1311 if (MA->hasValueHandle()) in removeMemoryAccess()
1312 ValueHandleBase::ValueIsRAUWd(MA, NewDefTarget); in removeMemoryAccess()
1316 assert(NewDefTarget != MA && "Going into an infinite loop"); in removeMemoryAccess()
1317 while (!MA->use_empty()) { in removeMemoryAccess()
1318 Use &U = *MA->use_begin(); in removeMemoryAccess()
1328 // The call below to erase will destroy MA, so we can't change the order we in removeMemoryAccess()
1330 MSSA->removeFromLookups(MA); in removeMemoryAccess()
1331 MSSA->removeFromLists(MA); in removeMemoryAccess()
1335 SmallVector<WeakVH, 16> PhisToOptimize{PhisToCheck.begin(), in removeMemoryAccess()
1361 for (MemoryAccess &MA : *Acc) in removeBlocks()
1362 MA.dropAllReferences(); in removeBlocks()
1370 for (MemoryAccess &MA : llvm::make_early_inc_range(*Acc)) { in removeBlocks()
1371 MSSA->removeFromLookups(&MA); in removeBlocks()
1372 MSSA->removeFromLists(&MA); in removeBlocks()
1392 SmallVector<WeakVH, 16> UpdatedPHIs; in changeToUnreachable()