Lines Matching refs:Preheader
151 BasicBlock *Preheader; member
189 : Preheader(L->getLoopPreheader()), Header(L->getHeader()), in FusionCandidate()
236 return Preheader && Header && ExitingBlock && ExitBlock && Latch && L && in isValid()
244 assert(Preheader == L->getLoopPreheader() && "Preheader is out of sync"); in verify()
261 return Preheader; in getEntryBlock()
267 Preheader = L->getLoopPreheader(); in updateAfterPeeling()
288 return (GuardBranch->getSuccessor(0) == Preheader) in getNonLoopBlock()
302 << "\tPreheader: " << (Preheader ? Preheader->getName() : "nullptr") in dump()
322 if (!Preheader) in isEligibleForFusion()
374 assert(L && Preheader && "Fusion candidate not initialized properly!"); in reportInvalidCandidate()
378 L->getStartLoc(), Preheader) in reportInvalidCandidate()
379 << "[" << Preheader->getParent()->getName() << "]: " in reportInvalidCandidate()
443 OS << FC.Preheader->getName(); in operator <<()
635 assert(FC0.Preheader && FC1.Preheader && "Expecting valid preheaders"); in isControlFlowEquivalent()
784 PDT.recalculate(*FC0.Preheader->getParent()); in peelFusionCandidate()
797 FC0.GuardBranch ? FC0.ExitBlock->getUniqueSuccessor() : FC1.Preheader; in peelFusionCandidate()
917 if (!isSafeToMoveBefore(*FC1->Preheader, in fuseCandidates()
918 *FC0->Preheader->getTerminator(), DT, &PDT, in fuseCandidates()
1265 if (FC0.GuardBranch->getSuccessor(0) == FC0.Preheader) in haveIdenticalGuards()
1266 return (FC1.GuardBranch->getSuccessor(0) == FC1.Preheader); in haveIdenticalGuards()
1268 return (FC1.GuardBranch->getSuccessor(1) == FC1.Preheader); in haveIdenticalGuards()
1333 moveInstructionsToTheEnd(*FC1.Preheader, *FC0.Preheader, DT, PDT, DI); in performFusion()
1341 assert(FC1.Preheader == in performFusion()
1343 assert(FC1.Preheader->size() == 1 && in performFusion()
1344 FC1.Preheader->getSingleSuccessor() == FC1.Header); in performFusion()
1361 FC1.Preheader->replaceSuccessorsPhiUsesWith(FC0.Preheader); in performFusion()
1385 FC0.ExitingBlock->getTerminator()->replaceUsesOfWith(FC1.Preheader, in performFusion()
1388 DominatorTree::Delete, FC0.ExitingBlock, FC1.Preheader)); in performFusion()
1393 DominatorTree::Delete, FC0.ExitBlock, FC1.Preheader)); in performFusion()
1407 assert(pred_empty(FC1.Preheader)); in performFusion()
1408 FC1.Preheader->getTerminator()->eraseFromParent(); in performFusion()
1409 new UnreachableInst(FC1.Preheader->getContext(), FC1.Preheader); in performFusion()
1411 DominatorTree::Delete, FC1.Preheader, FC1.Header)); in performFusion()
1468 LI.removeBlock(FC1.Preheader); in performFusion()
1469 DTU.deleteBB(FC1.Preheader); in performFusion()
1535 assert(FC0.Preheader && FC1.Preheader && in reportLoopFusion()
1541 FC0.Preheader) in reportLoopFusion()
1542 << "[" << FC0.Preheader->getParent()->getName() in reportLoopFusion()
1543 << "]: " << NV("Cand1", StringRef(FC0.Preheader->getName())) in reportLoopFusion()
1544 << " and " << NV("Cand2", StringRef(FC1.Preheader->getName())) in reportLoopFusion()
1609 DominatorTree::Delete, FC1GuardBlock, FC1.Preheader)); in fuseGuardedLoops()
1651 FC1.Preheader->replaceSuccessorsPhiUsesWith(FC0.Preheader); in fuseGuardedLoops()
1688 assert(pred_empty(FC1.Preheader)); in fuseGuardedLoops()
1689 FC1.Preheader->getTerminator()->eraseFromParent(); in fuseGuardedLoops()
1690 new UnreachableInst(FC1.Preheader->getContext(), FC1.Preheader); in fuseGuardedLoops()
1692 DominatorTree::Delete, FC1.Preheader, FC1.Header)); in fuseGuardedLoops()
1758 LI.removeBlock(FC1.Preheader); in fuseGuardedLoops()
1765 DTU.deleteBB(FC1.Preheader); in fuseGuardedLoops()