Lines Matching refs:OuterLoop
245 : OuterLoop(Outer), InnerLoop(Inner), SE(SE), ORE(ORE) {} in LoopInterchangeLegality()
281 Loop *OuterLoop; member in __anon815ea8750211::LoopInterchangeLegality
303 : OuterLoop(Outer), InnerLoop(Inner), SE(SE), ORE(ORE) {} in LoopInterchangeProfitability()
306 bool isProfitable(const Loop *InnerLoop, const Loop *OuterLoop,
321 Loop *OuterLoop; member in __anon815ea8750211::LoopInterchangeProfitability
337 : OuterLoop(Outer), InnerLoop(Inner), SE(SE), LI(LI), DT(DT), LIL(LIL) {} in LoopInterchangeTransform()
344 void removeChildLoop(Loop *OuterLoop, Loop *InnerLoop);
350 Loop *OuterLoop; member in __anon815ea8750211::LoopInterchangeTransform
503 bool processLoop(Loop *InnerLoop, Loop *OuterLoop, unsigned InnerLoopId, in processLoop()
509 LoopInterchangeLegality LIL(OuterLoop, InnerLoop, SE, ORE); in processLoop()
515 LoopInterchangeProfitability LIP(OuterLoop, InnerLoop, SE, ORE); in processLoop()
516 if (!LIP.isProfitable(InnerLoop, OuterLoop, InnerLoopId, OuterLoopId, in processLoop()
529 LoopInterchangeTransform LIT(OuterLoop, InnerLoop, SE, LI, DT, LIL); in processLoop()
534 llvm::formLCSSARecursively(*OuterLoop, *DT, LI, SE); in processLoop()
547 bool LoopInterchangeLegality::tightlyNested(Loop *OuterLoop, Loop *InnerLoop) { in tightlyNested() argument
548 BasicBlock *OuterLoopHeader = OuterLoop->getHeader(); in tightlyNested()
550 BasicBlock *OuterLoopLatch = OuterLoop->getLoopLatch(); in tightlyNested()
619 !OuterLoop->isLoopInvariant(I)) { in isLoopStructureUnderstood()
686 if (!SE->isLoopInvariant(S, OuterLoop)) in isLoopStructureUnderstood()
776 OuterLoop->getExitingBlock() != OuterLoop->getLoopLatch() || in currentLimitations()
778 !isa<BranchInst>(OuterLoop->getLoopLatch()->getTerminator())) { in currentLimitations()
784 OuterLoop->getStartLoc(), in currentLimitations()
785 OuterLoop->getHeader()) in currentLimitations()
793 if (!findInductionAndReductions(OuterLoop, Inductions, InnerLoop)) { in currentLimitations()
799 OuterLoop->getStartLoc(), in currentLimitations()
800 OuterLoop->getHeader()) in currentLimitations()
811 Loop *CurLevelLoop = OuterLoop; in currentLimitations()
884 static bool areOuterLoopExitPHIsSupported(Loop *OuterLoop, Loop *InnerLoop) { in areOuterLoopExitPHIsSupported() argument
885 BasicBlock *LoopNestExit = OuterLoop->getUniqueExitBlock(); in areOuterLoopExitPHIsSupported()
889 if (!IncomingI || IncomingI->getParent() != OuterLoop->getLoopLatch()) in areOuterLoopExitPHIsSupported()
902 if (OuterLoop->getLoopLatch()->getUniquePredecessor() == nullptr) in areOuterLoopExitPHIsSupported()
917 static bool areInnerLoopLatchPHIsSupported(Loop *OuterLoop, Loop *InnerLoop) { in areInnerLoopLatchPHIsSupported() argument
923 if (OuterLoop->getLoopLatch()->getUniquePredecessor() != nullptr) in areInnerLoopLatchPHIsSupported()
959 for (auto *BB : OuterLoop->blocks()) in canInterchangeLoops()
983 if (!areInnerLoopLatchPHIsSupported(OuterLoop, InnerLoop)) { in canInterchangeLoops()
1003 if (!tightlyNested(OuterLoop, InnerLoop)) { in canInterchangeLoops()
1015 if (!areInnerLoopExitPHIsSupported(OuterLoop, InnerLoop, in canInterchangeLoops()
1027 if (!areOuterLoopExitPHIsSupported(OuterLoop, InnerLoop)) { in canInterchangeLoops()
1031 OuterLoop->getStartLoc(), in canInterchangeLoops()
1032 OuterLoop->getHeader()) in canInterchangeLoops()
1079 if (AR->getLoop() == OuterLoop) { in getInstrOrderCost()
1102 if (CostMap.contains(InnerLoop) && CostMap.contains(OuterLoop)) { in isProfitablePerLoopCacheAnalysis()
1105 OuterIndex = CostMap.find(OuterLoop)->second; in isProfitablePerLoopCacheAnalysis()
1112 if (CC->getLoopCost(*OuterLoop) == CC->getLoopCost(*InnerLoop)) in isProfitablePerLoopCacheAnalysis()
1154 const Loop *InnerLoop, const Loop *OuterLoop, unsigned InnerLoopId, in isProfitable() argument
1196 void LoopInterchangeTransform::removeChildLoop(Loop *OuterLoop, in removeChildLoop() argument
1198 for (Loop *L : *OuterLoop) in removeChildLoop()
1200 OuterLoop->removeChildLoop(L); in removeChildLoop()
1232 Loop *OuterLoopParent = OuterLoop->getParentLoop(); in restructureLoops()
1371 BasicBlock *OuterLoopHeader = OuterLoop->getHeader(); in transform()
1544 BasicBlock *OuterLoopPreHeader = OuterLoop->getLoopPreheader(); in adjustLoopBranches()
1547 assert(OuterLoopPreHeader != OuterLoop->getHeader() && in adjustLoopBranches()
1557 InsertPreheaderForLoop(OuterLoop, DT, LI, nullptr, true); in adjustLoopBranches()
1558 if (InnerLoopPreHeader == OuterLoop->getHeader()) in adjustLoopBranches()
1564 BasicBlock *OuterLoopHeader = OuterLoop->getHeader(); in adjustLoopBranches()
1566 BasicBlock *OuterLoopLatch = OuterLoop->getLoopLatch(); in adjustLoopBranches()
1643 restructureLoops(OuterLoop, InnerLoop, InnerLoopPreHeader, in adjustLoopBranches()
1704 BasicBlock *OuterLoopPreHeader = OuterLoop->getLoopPreheader(); in adjustLoopLinks()