Lines Matching refs:BasicBlock

44     BasicBlock *BB,  in getPreviousDefRecursive()
45 DenseMap<BasicBlock *, TrackingVH<MemoryAccess>> &CachedPreviousDef) { in getPreviousDefRecursive() argument
56 if (BasicBlock *Pred = BB->getUniquePredecessor()) { in getPreviousDefRecursive()
147 DenseMap<BasicBlock *, TrackingVH<MemoryAccess>> CachedPreviousDef; in getPreviousDef()
180 BasicBlock *BB, in getPreviousDefFromEnd()
181 DenseMap<BasicBlock *, TrackingVH<MemoryAccess>> &CachedPreviousDef) { in getPreviousDefFromEnd() argument
270 SmallPtrSet<BasicBlock *, 16> Visited; in insertUse()
271 BasicBlock *StartBlock = MU->getBlock(); in insertUse()
291 static void setMemoryPhiValueForBlock(MemoryPhi *MP, const BasicBlock *BB, 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.back(); in fixupDefs()
532 void MemorySSAUpdater::removeEdge(BasicBlock *From, BasicBlock *To) { in removeEdge()
539 void MemorySSAUpdater::removeDuplicatePhiEdgesBetween(const BasicBlock *From, in removeDuplicatePhiEdgesBetween()
540 const BasicBlock *To) { in removeDuplicatePhiEdgesBetween()
543 MPhi->unorderedDeleteIncomingIf([&](const MemoryAccess *, BasicBlock *B) { in removeDuplicatePhiEdgesBetween()
606 void MemorySSAUpdater::cloneUsesAndDefs(BasicBlock *BB, BasicBlock *NewBB, in cloneUsesAndDefs()
639 BasicBlock *Header, BasicBlock *Preheader, BasicBlock *BEBlock) { in updatePhisWhenInsertingUniqueBackedgeBlock()
650 BasicBlock *IBB = MPhi->getIncomingBlock(I); in updatePhisWhenInsertingUniqueBackedgeBlock()
678 ArrayRef<BasicBlock *> ExitBlocks, in updateForClonedLoop()
685 BasicBlock *NewPhiBB = NewPhi->getBlock(); in updateForClonedLoop()
686 SmallPtrSet<BasicBlock *, 4> NewPhiBBPreds(pred_begin(NewPhiBB), in updateForClonedLoop()
690 BasicBlock *IncBB = Phi->getIncomingBlock(It); in updateForClonedLoop()
692 if (BasicBlock *NewIncBB = cast_or_null<BasicBlock>(VMap.lookup(IncBB))) in updateForClonedLoop()
731 auto ProcessBlock = [&](BasicBlock *BB) { in updateForClonedLoop()
732 BasicBlock *NewBlock = cast_or_null<BasicBlock>(VMap.lookup(BB)); in updateForClonedLoop()
748 for (auto BB : llvm::concat<BasicBlock *const>(LoopBlocks, ExitBlocks)) in updateForClonedLoop()
751 for (auto BB : llvm::concat<BasicBlock *const>(LoopBlocks, ExitBlocks)) in updateForClonedLoop()
758 BasicBlock *BB, BasicBlock *P1, const ValueToValueMapTy &VM) { in updateForClonedBlockIntoPred()
775 ArrayRef<BasicBlock *> ExitBlocks, Iter ValuesBegin, Iter ValuesEnd, in privateUpdateExitBlocksForClonedLoop()
781 if (BasicBlock *NewExit = cast_or_null<BasicBlock>(VMap->lookup(Exit))) { in privateUpdateExitBlocksForClonedLoop()
782 BasicBlock *ExitSucc = NewExit->getTerminator()->getSuccessor(0); in privateUpdateExitBlocksForClonedLoop()
789 ArrayRef<BasicBlock *> ExitBlocks, const ValueToValueMapTy &VMap, in updateExitBlocksForClonedLoop()
797 ArrayRef<BasicBlock *> ExitBlocks, in updateExitBlocksForClonedLoop()
839 GraphDiff<BasicBlock *> GD(RevDeleteUpdates); in applyUpdates()
847 GraphDiff<BasicBlock *> GD; in applyUpdates()
858 GraphDiff<BasicBlock *> GD; in applyInsertUpdates()
864 const GraphDiff<BasicBlock *> *GD) { in applyInsertUpdates()
866 auto GetLastDef = [&](BasicBlock *BB) -> MemoryAccess * { in applyInsertUpdates()
875 BasicBlock *Pred = nullptr; in applyInsertUpdates()
912 [&](const SmallSetVector<BasicBlock *, 2> &BBSet) -> BasicBlock * { in applyInsertUpdates() argument
913 BasicBlock *PrevIDom = *BBSet.begin(); in applyInsertUpdates()
922 [&](BasicBlock *PrevIDom, BasicBlock *CurrIDom, in applyInsertUpdates()
923 SmallVectorImpl<BasicBlock *> &BlocksPrevDom) { in applyInsertUpdates()
927 BasicBlock *NextIDom = PrevIDom; in applyInsertUpdates()
928 while (BasicBlock *UpIDom = in applyInsertUpdates()
952 SmallSetVector<BasicBlock *, 2> Added; in applyInsertUpdates()
953 SmallSetVector<BasicBlock *, 2> Prev; in applyInsertUpdates()
955 SmallDenseMap<BasicBlock *, PredInfo> PredMap; in applyInsertUpdates()
958 BasicBlock *BB = Edge.getTo(); in applyInsertUpdates()
964 SmallDenseMap<std::pair<BasicBlock *, BasicBlock *>, int> EdgeCountMap; in applyInsertUpdates()
965 SmallPtrSet<BasicBlock *, 2> NewBlocks; in applyInsertUpdates()
997 SmallVector<BasicBlock *, 16> BlocksWithDefsToReplace; in applyInsertUpdates()
1003 BasicBlock *BB = Edge.getTo(); in applyInsertUpdates()
1022 SmallDenseMap<BasicBlock *, MemoryAccess *> LastDefAddedPred; in applyInsertUpdates()
1077 BasicBlock *PrevIDom = FindNearestCommonDominator(PrevBlockSet); in applyInsertUpdates()
1079 BasicBlock *NewIDom = DT.getNode(BB)->getIDom()->getBlock(); in applyInsertUpdates()
1089 SmallVector<BasicBlock *, 8> BlocksToProcess; in applyInsertUpdates()
1095 SmallVector<BasicBlock *, 32> IDFBlocks; in applyInsertUpdates()
1098 SmallPtrSet<BasicBlock *, 16> DefiningBlocks(BlocksToProcess.begin(), in applyInsertUpdates()
1133 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()