Lines Matching refs:InnerLoop
245 : OuterLoop(Outer), InnerLoop(Inner), SE(SE), ORE(ORE) {} in LoopInterchangeLegality()
279 Loop *InnerLoop);
282 Loop *InnerLoop; member in __anon815ea8750211::LoopInterchangeLegality
303 : OuterLoop(Outer), InnerLoop(Inner), SE(SE), ORE(ORE) {} in LoopInterchangeProfitability()
306 bool isProfitable(const Loop *InnerLoop, const Loop *OuterLoop,
322 Loop *InnerLoop; 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);
351 Loop *InnerLoop; 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()
524 InnerLoop->getStartLoc(), in processLoop()
525 InnerLoop->getHeader()) in processLoop()
529 LoopInterchangeTransform LIT(OuterLoop, InnerLoop, SE, LI, DT, LIL); in processLoop()
547 bool LoopInterchangeLegality::tightlyNested(Loop *OuterLoop, Loop *InnerLoop) { in tightlyNested() argument
549 BasicBlock *InnerLoopPreHeader = InnerLoop->getLoopPreheader(); in tightlyNested()
563 if (Succ != InnerLoopPreHeader && Succ != InnerLoop->getHeader() && in tightlyNested()
581 BasicBlock *InnerLoopExit = InnerLoop->getExitBlock(); in tightlyNested()
603 BasicBlock *InnerLoopPreheader = InnerLoop->getLoopPreheader(); in isLoopStructureUnderstood()
631 BasicBlock *InnerLoopLatch = InnerLoop->getLoopLatch(); in isLoopStructureUnderstood()
730 Loop *L, SmallVector<PHINode *, 8> &Inductions, Loop *InnerLoop) { in findInductionAndReductions() argument
740 if (!InnerLoop) { in findInductionAndReductions()
752 PHINode *InnerRedPhi = findInnerReductionPhi(InnerLoop, V); in findInductionAndReductions()
771 BasicBlock *InnerLoopLatch = InnerLoop->getLoopLatch(); in currentLimitations()
775 if (InnerLoop->getExitingBlock() != InnerLoopLatch || in currentLimitations()
793 if (!findInductionAndReductions(OuterLoop, Inductions, InnerLoop)) { in currentLimitations()
835 InnerLoop->getStartLoc(), in currentLimitations()
836 InnerLoop->getHeader()) in currentLimitations()
884 static bool areOuterLoopExitPHIsSupported(Loop *OuterLoop, Loop *InnerLoop) { in areOuterLoopExitPHIsSupported() argument
917 static bool areInnerLoopLatchPHIsSupported(Loop *OuterLoop, Loop *InnerLoop) { in areInnerLoopLatchPHIsSupported() argument
918 if (InnerLoop->getSubLoops().empty()) in areInnerLoopLatchPHIsSupported()
932 BasicBlock *InnerLoopLatch = InnerLoop->getLoopLatch(); in areInnerLoopLatchPHIsSupported()
952 InnerLoop->getStartLoc(), in canInterchangeLoops()
953 InnerLoop->getHeader()) in canInterchangeLoops()
978 if (!findInductions(InnerLoop, InnerLoopInductions)) { in canInterchangeLoops()
983 if (!areInnerLoopLatchPHIsSupported(OuterLoop, InnerLoop)) { in canInterchangeLoops()
987 InnerLoop->getStartLoc(), in canInterchangeLoops()
988 InnerLoop->getHeader()) in canInterchangeLoops()
1003 if (!tightlyNested(OuterLoop, InnerLoop)) { in canInterchangeLoops()
1007 InnerLoop->getStartLoc(), in canInterchangeLoops()
1008 InnerLoop->getHeader()) in canInterchangeLoops()
1015 if (!areInnerLoopExitPHIsSupported(OuterLoop, InnerLoop, in canInterchangeLoops()
1020 InnerLoop->getStartLoc(), in canInterchangeLoops()
1021 InnerLoop->getHeader()) in canInterchangeLoops()
1027 if (!areOuterLoopExitPHIsSupported(OuterLoop, InnerLoop)) { in canInterchangeLoops()
1044 for (BasicBlock *BB : InnerLoop->blocks()) { in getInstrOrderCost()
1065 if (AR->getLoop() == InnerLoop) { in getInstrOrderCost()
1102 if (CostMap.contains(InnerLoop) && CostMap.contains(OuterLoop)) { in isProfitablePerLoopCacheAnalysis()
1104 InnerIndex = CostMap.find(InnerLoop)->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
1177 InnerLoop->getStartLoc(), in isProfitable()
1178 InnerLoop->getHeader()) in isProfitable()
1186 InnerLoop->getStartLoc(), in isProfitable()
1187 InnerLoop->getHeader()) in isProfitable()
1197 Loop *InnerLoop) { in removeChildLoop() argument
1199 if (L == InnerLoop) { in removeChildLoop()
1288 if (InnerLoop->getSubLoops().empty()) { in transform()
1289 BasicBlock *InnerLoopPreHeader = InnerLoop->getLoopPreheader(); in transform()
1312 SplitBlock(InnerLoop->getLoopLatch(), in transform()
1313 InnerLoop->getLoopLatch()->getTerminator(), DT, LI); in transform()
1328 if (!InnerLoop->contains(UserI->getParent()) || in transform()
1338 this->LI->getLoopFor(OpI->getParent()) != this->InnerLoop || in transform()
1348 cast<BranchInst>(InnerLoop->getLoopLatch()->getTerminator()) in transform()
1359 BasicBlock *InnerLoopHeader = InnerLoop->getHeader(); in transform()
1370 BasicBlock *InnerLoopPreHeader = InnerLoop->getLoopPreheader(); in transform()
1447 Loop *InnerLoop, LoopInfo *LI) { in moveLCSSAPhis() argument
1516 if (!I || LI->getLoopFor(I->getParent()) == InnerLoop) in moveLCSSAPhis()
1545 BasicBlock *InnerLoopPreHeader = InnerLoop->getLoopPreheader(); in adjustLoopBranches()
1548 InnerLoopPreHeader != InnerLoop->getHeader() && OuterLoopPreHeader && in adjustLoopBranches()
1560 InsertPreheaderForLoop(InnerLoop, DT, LI, nullptr, true); in adjustLoopBranches()
1563 BasicBlock *InnerLoopHeader = InnerLoop->getHeader(); in adjustLoopBranches()
1565 BasicBlock *InnerLoopLatch = InnerLoop->getLoopLatch(); in adjustLoopBranches()
1643 restructureLoops(OuterLoop, InnerLoop, InnerLoopPreHeader, in adjustLoopBranches()
1647 OuterLoopHeader, OuterLoopLatch, InnerLoop->getExitBlock(), in adjustLoopBranches()
1648 InnerLoop, LI); in adjustLoopBranches()
1705 BasicBlock *InnerLoopPreHeader = InnerLoop->getLoopPreheader(); in adjustLoopLinks()