Lines Matching defs:InitBB
413 MustBeExecutedContextExplorer::findForwardJoinPoint(const BasicBlock *InitBB) {
414 const LoopInfo *LI = LIGetter(*InitBB->getParent());
415 const PostDominatorTree *PDT = PDTGetter(*InitBB->getParent());
417 LLVM_DEBUG(dbgs() << "\tFind forward join point for " << InitBB->getName()
420 const Function &F = *InitBB->getParent();
421 const Loop *L = LI ? LI->getLoopFor(InitBB) : nullptr;
422 const BasicBlock *HeaderBB = L ? L->getHeader() : InitBB;
433 for (const BasicBlock *SuccBB : successors(InitBB)) {
455 if (const auto *InitNode = PDT->getNode(InitBB))
464 if (Succ0UniqueSucc == InitBB) {
465 // InitBB -> Succ0 -> InitBB
466 // InitBB -> Succ1 = JoinBB
468 } else if (Succ1UniqueSucc == InitBB) {
469 // InitBB -> Succ1 -> InitBB
470 // InitBB -> Succ0 = JoinBB
473 // InitBB -> Succ0 = JoinBB
474 // InitBB -> Succ1 -> Succ0 = JoinBB
477 // InitBB -> Succ0 -> Succ1 = JoinBB
478 // InitBB -> Succ1 = JoinBB
481 // InitBB -> Succ0 -> JoinBB
482 // InitBB -> Succ1 -> JoinBB
496 // InitBB, thus it can not be "stopped" along the way. Ways to "stop" control
549 MustBeExecutedContextExplorer::findBackwardJoinPoint(const BasicBlock *InitBB) {
550 const LoopInfo *LI = LIGetter(*InitBB->getParent());
551 const DominatorTree *DT = DTGetter(*InitBB->getParent());
552 LLVM_DEBUG(dbgs() << "\tFind backward join point for " << InitBB->getName()
559 if (const auto *InitNode = DT->getNode(InitBB))
563 const Loop *L = LI ? LI->getLoopFor(InitBB) : nullptr;
568 for (const BasicBlock *PredBB : predecessors(InitBB)) {
570 (PredBB == InitBB) || (HeaderBB == InitBB && L->contains(PredBB));
592 // InitBB <- Pred0 = JoinBB
593 // InitBB <- Pred1 <- Pred0 = JoinBB
596 // InitBB <- Pred0 <- Pred1 = JoinBB
597 // InitBB <- Pred1 = JoinBB
600 // InitBB <- Pred0 <- JoinBB
601 // InitBB <- Pred1 <- JoinBB