Lines Matching refs:BasicBlock

37     BasicBlock *BB,  in getPreviousDefRecursive()
38 DenseMap<BasicBlock *, TrackingVH<MemoryAccess>> &CachedPreviousDef) { in getPreviousDefRecursive() argument
49 if (BasicBlock *Pred = BB->getUniquePredecessor()) { in getPreviousDefRecursive()
140 DenseMap<BasicBlock *, TrackingVH<MemoryAccess>> CachedPreviousDef; in getPreviousDef()
173 BasicBlock *BB, in getPreviousDefFromEnd()
174 DenseMap<BasicBlock *, TrackingVH<MemoryAccess>> &CachedPreviousDef) { in getPreviousDefFromEnd() argument
264 SmallPtrSet<BasicBlock *, 16> Visited; in insertUse()
265 BasicBlock *StartBlock = MU->getBlock(); in insertUse()
285 static void setMemoryPhiValueForBlock(MemoryPhi *MP, const BasicBlock *BB, in setMemoryPhiValueForBlock()
293 for (const BasicBlock *BlockBB : llvm::drop_begin(MP->blocks(), i)) { in setMemoryPhiValueForBlock()
364 SmallPtrSet<BasicBlock *, 2> DefiningBlocks; in insertDef()
375 SmallVector<BasicBlock *, 32> IDFBlocks; in insertDef()
398 DenseMap<BasicBlock *, TrackingVH<MemoryAccess>> CachedPreviousDef; in insertDef()
433 BasicBlock *StartBlock = MD->getBlock(); in insertDef()
435 SmallPtrSet<BasicBlock *, 16> Visited; in insertDef()
463 SmallPtrSet<const BasicBlock *, 8> Seen; in fixupDefs()
464 SmallVector<const BasicBlock *, 16> Worklist; in fixupDefs()
494 const BasicBlock *FixupBlock = Worklist.pop_back_val(); in fixupDefs()
531 void MemorySSAUpdater::removeEdge(BasicBlock *From, BasicBlock *To) { in removeEdge()
538 void MemorySSAUpdater::removeDuplicatePhiEdgesBetween(const BasicBlock *From, in removeDuplicatePhiEdgesBetween()
539 const BasicBlock *To) { in removeDuplicatePhiEdgesBetween()
542 MPhi->unorderedDeleteIncomingIf([&](const MemoryAccess *, BasicBlock *B) { in removeDuplicatePhiEdgesBetween()
605 void MemorySSAUpdater::cloneUsesAndDefs(BasicBlock *BB, BasicBlock *NewBB, in cloneUsesAndDefs()
638 BasicBlock *Header, BasicBlock *Preheader, BasicBlock *BEBlock) { in updatePhisWhenInsertingUniqueBackedgeBlock()
649 BasicBlock *IBB = MPhi->getIncomingBlock(I); in updatePhisWhenInsertingUniqueBackedgeBlock()
677 ArrayRef<BasicBlock *> ExitBlocks, in updateForClonedLoop()
684 BasicBlock *NewPhiBB = NewPhi->getBlock(); in updateForClonedLoop()
685 SmallPtrSet<BasicBlock *, 4> NewPhiBBPreds(pred_begin(NewPhiBB), in updateForClonedLoop()
689 BasicBlock *IncBB = Phi->getIncomingBlock(It); in updateForClonedLoop()
691 if (BasicBlock *NewIncBB = cast_or_null<BasicBlock>(VMap.lookup(IncBB))) in updateForClonedLoop()
730 auto ProcessBlock = [&](BasicBlock *BB) { in updateForClonedLoop()
731 BasicBlock *NewBlock = cast_or_null<BasicBlock>(VMap.lookup(BB)); in updateForClonedLoop()
747 for (auto *BB : llvm::concat<BasicBlock *const>(LoopBlocks, ExitBlocks)) in updateForClonedLoop()
750 for (auto *BB : llvm::concat<BasicBlock *const>(LoopBlocks, ExitBlocks)) in updateForClonedLoop()
757 BasicBlock *BB, BasicBlock *P1, const ValueToValueMapTy &VM) { in updateForClonedBlockIntoPred()
774 ArrayRef<BasicBlock *> ExitBlocks, Iter ValuesBegin, Iter ValuesEnd, in privateUpdateExitBlocksForClonedLoop()
780 if (BasicBlock *NewExit = cast_or_null<BasicBlock>(VMap->lookup(Exit))) { in privateUpdateExitBlocksForClonedLoop()
781 BasicBlock *ExitSucc = NewExit->getTerminator()->getSuccessor(0); in privateUpdateExitBlocksForClonedLoop()
788 ArrayRef<BasicBlock *> ExitBlocks, const ValueToValueMapTy &VMap, in updateExitBlocksForClonedLoop()
796 ArrayRef<BasicBlock *> ExitBlocks, in updateExitBlocksForClonedLoop()
839 GraphDiff<BasicBlock *> GD(RevDeleteUpdates); in applyUpdates()
851 GraphDiff<BasicBlock *> GD; in applyUpdates()
862 GraphDiff<BasicBlock *> GD; in applyInsertUpdates()
868 const GraphDiff<BasicBlock *> *GD) { in applyInsertUpdates()
870 auto GetLastDef = [&](BasicBlock *BB) -> MemoryAccess * { in applyInsertUpdates()
879 BasicBlock *Pred = nullptr; in applyInsertUpdates()
916 [&](const SmallSetVector<BasicBlock *, 2> &BBSet) -> BasicBlock * { in applyInsertUpdates() argument
917 BasicBlock *PrevIDom = *BBSet.begin(); in applyInsertUpdates()
926 [&](BasicBlock *PrevIDom, BasicBlock *CurrIDom, in applyInsertUpdates()
927 SmallVectorImpl<BasicBlock *> &BlocksPrevDom) { in applyInsertUpdates()
931 BasicBlock *NextIDom = PrevIDom; in applyInsertUpdates()
932 while (BasicBlock *UpIDom = in applyInsertUpdates()
956 SmallSetVector<BasicBlock *, 2> Added; in applyInsertUpdates()
957 SmallSetVector<BasicBlock *, 2> Prev; in applyInsertUpdates()
959 SmallDenseMap<BasicBlock *, PredInfo> PredMap; in applyInsertUpdates()
962 BasicBlock *BB = Edge.getTo(); in applyInsertUpdates()
968 SmallDenseMap<std::pair<BasicBlock *, BasicBlock *>, int> EdgeCountMap; in applyInsertUpdates()
969 SmallPtrSet<BasicBlock *, 2> NewBlocks; in applyInsertUpdates()
1001 SmallVector<BasicBlock *, 16> BlocksWithDefsToReplace; in applyInsertUpdates()
1007 BasicBlock *BB = Edge.getTo(); in applyInsertUpdates()
1026 SmallDenseMap<BasicBlock *, MemoryAccess *> LastDefAddedPred; in applyInsertUpdates()
1081 BasicBlock *PrevIDom = FindNearestCommonDominator(PrevBlockSet); in applyInsertUpdates()
1083 BasicBlock *NewIDom = DT.getNode(BB)->getIDom()->getBlock(); in applyInsertUpdates()
1093 SmallVector<BasicBlock *, 8> BlocksToProcess; in applyInsertUpdates()
1099 SmallVector<BasicBlock *, 32> IDFBlocks; in applyInsertUpdates()
1102 SmallPtrSet<BasicBlock *, 16> DefiningBlocks(BlocksToProcess.begin(), in applyInsertUpdates()
1137 BasicBlock *DominatingBlock = DefToReplaceUses.getBlock(); in applyInsertUpdates()
1141 BasicBlock *DominatedBlock = UsrPhi->getIncomingBlock(U); in applyInsertUpdates()
1145 BasicBlock *DominatedBlock = Usr->getBlock(); in applyInsertUpdates()
1166 void MemorySSAUpdater::moveTo(MemoryUseOrDef *What, BasicBlock *BB, in moveTo()
1200 void MemorySSAUpdater::moveToPlace(MemoryUseOrDef *What, BasicBlock *BB, in moveToPlace()
1212 void MemorySSAUpdater::moveAllAccesses(BasicBlock *From, BasicBlock *To, in moveAllAccesses()
1247 void MemorySSAUpdater::moveAllAfterSpliceBlocks(BasicBlock *From, in moveAllAfterSpliceBlocks()
1248 BasicBlock *To, in moveAllAfterSpliceBlocks()
1253 for (BasicBlock *Succ : successors(To)) in moveAllAfterSpliceBlocks()
1258 void MemorySSAUpdater::moveAllAfterMergeBlocks(BasicBlock *From, BasicBlock *To, in moveAllAfterMergeBlocks()
1263 for (BasicBlock *Succ : successors(From)) in moveAllAfterMergeBlocks()
1269 BasicBlock *Old, BasicBlock *New, ArrayRef<BasicBlock *> Preds, in wireOldPredecessorsToNewImmediatePredecessor()
1284 SmallPtrSet<BasicBlock *, 16> PredsSet(Preds.begin(), Preds.end()); in wireOldPredecessorsToNewImmediatePredecessor()
1291 Phi->unorderedDeleteIncomingIf([&](MemoryAccess *MA, BasicBlock *B) { in wireOldPredecessorsToNewImmediatePredecessor()
1373 const SmallSetVector<BasicBlock *, 8> &DeadBlocks) { in removeBlocks() argument
1375 for (BasicBlock *BB : DeadBlocks) { in removeBlocks()
1378 for (BasicBlock *Succ : successors(TI)) in removeBlocks()
1391 for (BasicBlock *BB : DeadBlocks) { in removeBlocks()
1409 const BasicBlock *BB = I->getParent(); in changeToUnreachable()
1418 for (const BasicBlock *Successor : successors(BB)) { in changeToUnreachable()
1430 Instruction *I, MemoryAccess *Definition, const BasicBlock *BB, in createMemoryAccessInBB()