Lines Matching refs:BasicBlock

43     BasicBlock *BB,  in getPreviousDefRecursive()
44 DenseMap<BasicBlock *, TrackingVH<MemoryAccess>> &CachedPreviousDef) { in getPreviousDefRecursive() argument
52 if (BasicBlock *Pred = BB->getSinglePredecessor()) { in getPreviousDefRecursive()
123 DenseMap<BasicBlock *, TrackingVH<MemoryAccess>> CachedPreviousDef; in getPreviousDef()
156 BasicBlock *BB, in getPreviousDefFromEnd()
157 DenseMap<BasicBlock *, TrackingVH<MemoryAccess>> &CachedPreviousDef) { in getPreviousDefFromEnd() argument
231 static void setMemoryPhiValueForBlock(MemoryPhi *MP, const BasicBlock *BB, in setMemoryPhiValueForBlock()
305 SmallPtrSet<BasicBlock *, 16> Visited; in insertDef()
306 BasicBlock *StartBlock = MD->getBlock(); in insertDef()
327 SmallPtrSet<const BasicBlock *, 8> Seen; in fixupDefs()
328 SmallVector<const BasicBlock *, 16> Worklist; in fixupDefs()
358 const BasicBlock *FixupBlock = Worklist.back(); in fixupDefs()
396 void MemorySSAUpdater::removeEdge(BasicBlock *From, BasicBlock *To) { in removeEdge()
404 void MemorySSAUpdater::removeDuplicatePhiEdgesBetween(BasicBlock *From, in removeDuplicatePhiEdgesBetween()
405 BasicBlock *To) { in removeDuplicatePhiEdgesBetween()
408 MPhi->unorderedDeleteIncomingIf([&](const MemoryAccess *, BasicBlock *B) { in removeDuplicatePhiEdgesBetween()
421 void MemorySSAUpdater::cloneUsesAndDefs(BasicBlock *BB, BasicBlock *NewBB, in cloneUsesAndDefs()
464 ArrayRef<BasicBlock *> ExitBlocks, in updateForClonedLoop()
471 BasicBlock *NewPhiBB = NewPhi->getBlock(); in updateForClonedLoop()
472 SmallPtrSet<BasicBlock *, 4> NewPhiBBPreds(pred_begin(NewPhiBB), in updateForClonedLoop()
476 BasicBlock *IncBB = Phi->getIncomingBlock(It); in updateForClonedLoop()
478 if (BasicBlock *NewIncBB = cast_or_null<BasicBlock>(VMap.lookup(IncBB))) in updateForClonedLoop()
513 auto ProcessBlock = [&](BasicBlock *BB) { in updateForClonedLoop()
514 BasicBlock *NewBlock = cast_or_null<BasicBlock>(VMap.lookup(BB)); in updateForClonedLoop()
530 for (auto BB : llvm::concat<BasicBlock *const>(LoopBlocks, ExitBlocks)) in updateForClonedLoop()
533 for (auto BB : llvm::concat<BasicBlock *const>(LoopBlocks, ExitBlocks)) in updateForClonedLoop()
540 BasicBlock *BB, BasicBlock *P1, const ValueToValueMapTy &VM) { in updateForClonedBlockIntoPred()
554 ArrayRef<BasicBlock *> ExitBlocks, Iter ValuesBegin, Iter ValuesEnd, in privateUpdateExitBlocksForClonedLoop()
560 if (BasicBlock *NewExit = cast_or_null<BasicBlock>(VMap->lookup(Exit))) { in privateUpdateExitBlocksForClonedLoop()
561 BasicBlock *ExitSucc = NewExit->getTerminator()->getSuccessor(0); in privateUpdateExitBlocksForClonedLoop()
568 ArrayRef<BasicBlock *> ExitBlocks, const ValueToValueMapTy &VMap, in updateExitBlocksForClonedLoop()
576 ArrayRef<BasicBlock *> ExitBlocks, in updateExitBlocksForClonedLoop()
608 GraphDiff<BasicBlock *> GD(RevDeleteUpdates); in applyUpdates()
611 GraphDiff<BasicBlock *> GD; in applyUpdates()
622 GraphDiff<BasicBlock *> GD; in applyInsertUpdates()
628 const GraphDiff<BasicBlock *> *GD) { in applyInsertUpdates()
630 auto GetLastDef = [&](BasicBlock *BB) -> MemoryAccess * { in applyInsertUpdates()
639 BasicBlock *Pred = nullptr; in applyInsertUpdates()
673 [&](const SmallSetVector<BasicBlock *, 2> &BBSet) -> BasicBlock * { in applyInsertUpdates() argument
674 BasicBlock *PrevIDom = *BBSet.begin(); in applyInsertUpdates()
683 [&](BasicBlock *PrevIDom, BasicBlock *CurrIDom, in applyInsertUpdates()
684 SmallVectorImpl<BasicBlock *> &BlocksPrevDom) { in applyInsertUpdates()
688 BasicBlock *NextIDom = PrevIDom; in applyInsertUpdates()
689 while (BasicBlock *UpIDom = in applyInsertUpdates()
713 SmallSetVector<BasicBlock *, 2> Added; in applyInsertUpdates()
714 SmallSetVector<BasicBlock *, 2> Prev; in applyInsertUpdates()
716 SmallDenseMap<BasicBlock *, PredInfo> PredMap; in applyInsertUpdates()
719 BasicBlock *BB = Edge.getTo(); in applyInsertUpdates()
725 SmallDenseMap<std::pair<BasicBlock *, BasicBlock *>, int> EdgeCountMap; in applyInsertUpdates()
726 SmallPtrSet<BasicBlock *, 2> NewBlocks; in applyInsertUpdates()
732 BasicBlock *Pi = Pair.second; in applyInsertUpdates()
759 SmallVector<BasicBlock *, 8> BlocksToProcess; in applyInsertUpdates()
760 SmallVector<BasicBlock *, 16> BlocksWithDefsToReplace; in applyInsertUpdates()
765 BasicBlock *BB = Edge.getTo(); in applyInsertUpdates()
784 SmallDenseMap<BasicBlock *, MemoryAccess *> LastDefAddedPred; in applyInsertUpdates()
843 BasicBlock *PrevIDom = FindNearestCommonDominator(PrevBlockSet); in applyInsertUpdates()
845 BasicBlock *NewIDom = DT.getNode(BB)->getIDom()->getBlock(); in applyInsertUpdates()
853 SmallVector<BasicBlock *, 32> IDFBlocks; in applyInsertUpdates()
856 SmallPtrSet<BasicBlock *, 16> DefiningBlocks(BlocksToProcess.begin(), in applyInsertUpdates()
869 BasicBlock *Pi = Pair.second; in applyInsertUpdates()
882 BasicBlock *DominatingBlock = DefToReplaceUses.getBlock(); in applyInsertUpdates()
890 BasicBlock *DominatedBlock = UsrPhi->getIncomingBlock(U); in applyInsertUpdates()
894 BasicBlock *DominatedBlock = Usr->getBlock(); in applyInsertUpdates()
914 void MemorySSAUpdater::moveTo(MemoryUseOrDef *What, BasicBlock *BB, in moveTo()
948 void MemorySSAUpdater::moveToPlace(MemoryUseOrDef *What, BasicBlock *BB, in moveToPlace()
954 void MemorySSAUpdater::moveAllAccesses(BasicBlock *From, BasicBlock *To, in moveAllAccesses()
982 void MemorySSAUpdater::moveAllAfterSpliceBlocks(BasicBlock *From, in moveAllAfterSpliceBlocks()
983 BasicBlock *To, in moveAllAfterSpliceBlocks()
988 for (BasicBlock *Succ : successors(To)) in moveAllAfterSpliceBlocks()
993 void MemorySSAUpdater::moveAllAfterMergeBlocks(BasicBlock *From, BasicBlock *To, in moveAllAfterMergeBlocks()
998 for (BasicBlock *Succ : successors(From)) in moveAllAfterMergeBlocks()
1018 BasicBlock *Old, BasicBlock *New, ArrayRef<BasicBlock *> Preds, in wireOldPredecessorsToNewImmediatePredecessor()
1033 SmallPtrSet<BasicBlock *, 16> PredsSet(Preds.begin(), Preds.end()); in wireOldPredecessorsToNewImmediatePredecessor()
1040 Phi->unorderedDeleteIncomingIf([&](MemoryAccess *MA, BasicBlock *B) { in wireOldPredecessorsToNewImmediatePredecessor()
1104 const SmallPtrSetImpl<BasicBlock *> &DeadBlocks) { in removeBlocks()
1106 for (BasicBlock *BB : DeadBlocks) { in removeBlocks()
1109 for (BasicBlock *Succ : successors(TI)) in removeBlocks()
1123 for (BasicBlock *BB : DeadBlocks) { in removeBlocks()
1137 Instruction *I, MemoryAccess *Definition, const BasicBlock *BB, in createMemoryAccessInBB()