Lines Matching refs:Preheader
151 BasicBlock *Preheader; member
188 : Preheader(L->getLoopPreheader()), Header(L->getHeader()), in FusionCandidate()
235 return Preheader && Header && ExitingBlock && ExitBlock && Latch && L && in isValid()
243 assert(Preheader == L->getLoopPreheader() && "Preheader is out of sync"); in verify()
260 return Preheader; in getEntryBlock()
266 Preheader = L->getLoopPreheader(); in updateAfterPeeling()
287 return (GuardBranch->getSuccessor(0) == Preheader) in getNonLoopBlock()
301 << "\tPreheader: " << (Preheader ? Preheader->getName() : "nullptr") in dump()
321 if (!Preheader) in isEligibleForFusion()
373 assert(L && Preheader && "Fusion candidate not initialized properly!"); in reportInvalidCandidate()
377 L->getStartLoc(), Preheader) in reportInvalidCandidate()
378 << "[" << Preheader->getParent()->getName() << "]: " in reportInvalidCandidate()
468 OS << FC.Preheader->getName(); in operator <<()
659 assert(FC0.Preheader && FC1.Preheader && "Expecting valid preheaders"); in isControlFlowEquivalent()
808 PDT.recalculate(*FC0.Preheader->getParent()); in peelFusionCandidate()
821 FC0.GuardBranch ? FC0.ExitBlock->getUniqueSuccessor() : FC1.Preheader; in peelFusionCandidate()
1077 const BasicBlock *FC0PreheaderTarget = FC0.Preheader->getSingleSuccessor(); in canHoistInst()
1185 BasicBlock *FC1Preheader = FC1.Preheader; in collectMovablePreheaderInsts()
1446 return FC.Preheader->size() == 1; in isEmptyPreheader()
1456 assert(HoistInsts.size() + SinkInsts.size() == FC1.Preheader->size() - 1 && in movePreheaderInsts()
1475 assert(I->getParent() == FC1.Preheader); in movePreheaderInsts()
1476 I->moveBefore(*FC0.Preheader, in movePreheaderInsts()
1477 FC0.Preheader->getTerminator()->getIterator()); in movePreheaderInsts()
1481 assert(I->getParent() == FC1.Preheader); in movePreheaderInsts()
1513 if (FC0.GuardBranch->getSuccessor(0) == FC0.Preheader) in haveIdenticalGuards()
1514 return (FC1.GuardBranch->getSuccessor(0) == FC1.Preheader); in haveIdenticalGuards()
1516 return (FC1.GuardBranch->getSuccessor(1) == FC1.Preheader); in haveIdenticalGuards()
1581 moveInstructionsToTheEnd(*FC1.Preheader, *FC0.Preheader, DT, PDT, DI); in performFusion()
1589 assert(FC1.Preheader == in performFusion()
1591 assert(FC1.Preheader->size() == 1 && in performFusion()
1592 FC1.Preheader->getSingleSuccessor() == FC1.Header); in performFusion()
1609 FC1.Preheader->replaceSuccessorsPhiUsesWith(FC0.Preheader); in performFusion()
1633 FC0.ExitingBlock->getTerminator()->replaceUsesOfWith(FC1.Preheader, in performFusion()
1636 DominatorTree::Delete, FC0.ExitingBlock, FC1.Preheader)); in performFusion()
1641 DominatorTree::Delete, FC0.ExitBlock, FC1.Preheader)); in performFusion()
1655 assert(pred_empty(FC1.Preheader)); in performFusion()
1656 FC1.Preheader->getTerminator()->eraseFromParent(); in performFusion()
1657 new UnreachableInst(FC1.Preheader->getContext(), FC1.Preheader); in performFusion()
1659 DominatorTree::Delete, FC1.Preheader, FC1.Header)); in performFusion()
1717 LI.removeBlock(FC1.Preheader); in performFusion()
1718 DTU.deleteBB(FC1.Preheader); in performFusion()
1785 assert(FC0.Preheader && FC1.Preheader && in reportLoopFusion()
1791 FC0.Preheader) in reportLoopFusion()
1792 << "[" << FC0.Preheader->getParent()->getName() in reportLoopFusion()
1793 << "]: " << NV("Cand1", StringRef(FC0.Preheader->getName())) in reportLoopFusion()
1794 << " and " << NV("Cand2", StringRef(FC1.Preheader->getName())) in reportLoopFusion()
1859 DominatorTree::Delete, FC1GuardBlock, FC1.Preheader)); in fuseGuardedLoops()
1901 FC1.Preheader->replaceSuccessorsPhiUsesWith(FC0.Preheader); in fuseGuardedLoops()
1938 assert(pred_empty(FC1.Preheader)); in fuseGuardedLoops()
1939 FC1.Preheader->getTerminator()->eraseFromParent(); in fuseGuardedLoops()
1940 new UnreachableInst(FC1.Preheader->getContext(), FC1.Preheader); in fuseGuardedLoops()
1942 DominatorTree::Delete, FC1.Preheader, FC1.Header)); in fuseGuardedLoops()
2009 LI.removeBlock(FC1.Preheader); in fuseGuardedLoops()
2016 DTU.deleteBB(FC1.Preheader); in fuseGuardedLoops()