Lines Matching defs:OuterLoop

225     // before and after swapping OuterLoop vs InnerLoop
266 Loop **OuterLoop = LoopList.begin();
269 (*OuterLoop)->getStartLoc(),
270 (*OuterLoop)->getHeader())
286 : OuterLoop(Outer), InnerLoop(Inner), SE(SE), ORE(ORE) {}
322 Loop *OuterLoop;
344 : OuterLoop(Outer), InnerLoop(Inner), SE(SE), ORE(ORE) {}
347 bool isProfitable(const Loop *InnerLoop, const Loop *OuterLoop,
362 Loop *OuterLoop;
378 : OuterLoop(Outer), InnerLoop(Inner), SE(SE), LI(LI), DT(DT), LIL(LIL) {}
380 /// Interchange OuterLoop and InnerLoop.
385 void removeChildLoop(Loop *OuterLoop, Loop *InnerLoop);
391 Loop *OuterLoop;
539 bool processLoop(Loop *InnerLoop, Loop *OuterLoop, unsigned InnerLoopId,
545 LoopInterchangeLegality LIL(OuterLoop, InnerLoop, SE, ORE);
551 LoopInterchangeProfitability LIP(OuterLoop, InnerLoop, SE, ORE);
552 if (!LIP.isProfitable(InnerLoop, OuterLoop, InnerLoopId, OuterLoopId,
565 LoopInterchangeTransform LIT(OuterLoop, InnerLoop, SE, LI, DT, LIL);
570 llvm::formLCSSARecursively(*OuterLoop, *DT, LI, SE);
583 bool LoopInterchangeLegality::tightlyNested(Loop *OuterLoop, Loop *InnerLoop) {
584 BasicBlock *OuterLoopHeader = OuterLoop->getHeader();
586 BasicBlock *OuterLoopLatch = OuterLoop->getLoopLatch();
655 !OuterLoop->isLoopInvariant(I)) {
722 if (!SE->isLoopInvariant(S, OuterLoop))
812 OuterLoop->getExitingBlock() != OuterLoop->getLoopLatch() ||
814 !isa<BranchInst>(OuterLoop->getLoopLatch()->getTerminator())) {
820 OuterLoop->getStartLoc(),
821 OuterLoop->getHeader())
829 if (!findInductionAndReductions(OuterLoop, Inductions, InnerLoop)) {
835 OuterLoop->getStartLoc(),
836 OuterLoop->getHeader())
847 Loop *CurLevelLoop = OuterLoop;
920 static bool areOuterLoopExitPHIsSupported(Loop *OuterLoop, Loop *InnerLoop) {
921 BasicBlock *LoopNestExit = OuterLoop->getUniqueExitBlock();
925 if (!IncomingI || IncomingI->getParent() != OuterLoop->getLoopLatch())
938 if (OuterLoop->getLoopLatch()->getUniquePredecessor() == nullptr)
953 static bool areInnerLoopLatchPHIsSupported(Loop *OuterLoop, Loop *InnerLoop) {
959 if (OuterLoop->getLoopLatch()->getUniquePredecessor() != nullptr)
995 for (auto *BB : OuterLoop->blocks())
1019 if (!areInnerLoopLatchPHIsSupported(OuterLoop, InnerLoop)) {
1039 if (!tightlyNested(OuterLoop, InnerLoop)) {
1051 if (!areInnerLoopExitPHIsSupported(OuterLoop, InnerLoop,
1063 if (!areOuterLoopExitPHIsSupported(OuterLoop, InnerLoop)) {
1067 OuterLoop->getStartLoc(),
1068 OuterLoop->getHeader())
1102 // We found an InnerLoop induction after OuterLoop induction. It is
1115 if (AR->getLoop() == OuterLoop) {
1116 // We found an OuterLoop induction after InnerLoop induction. It is
1138 if (CostMap.contains(InnerLoop) && CostMap.contains(OuterLoop)) {
1141 OuterIndex = CostMap.find(OuterLoop)->second;
1148 if (CC->getLoopCost(*OuterLoop) == CC->getLoopCost(*InnerLoop))
1190 const Loop *InnerLoop, const Loop *OuterLoop, unsigned InnerLoopId,
1232 void LoopInterchangeTransform::removeChildLoop(Loop *OuterLoop,
1234 for (Loop *L : *OuterLoop)
1236 OuterLoop->removeChildLoop(L);
1268 Loop *OuterLoopParent = OuterLoop->getParentLoop();
1408 BasicBlock *OuterLoopHeader = OuterLoop->getHeader();
1581 BasicBlock *OuterLoopPreHeader = OuterLoop->getLoopPreheader();
1584 assert(OuterLoopPreHeader != OuterLoop->getHeader() &&
1594 InsertPreheaderForLoop(OuterLoop, DT, LI, nullptr, true);
1595 if (InnerLoopPreHeader == OuterLoop->getHeader())
1601 BasicBlock *OuterLoopHeader = OuterLoop->getHeader();
1603 BasicBlock *OuterLoopLatch = OuterLoop->getLoopLatch();
1680 restructureLoops(OuterLoop, InnerLoop, InnerLoopPreHeader,
1741 BasicBlock *OuterLoopPreHeader = OuterLoop->getLoopPreheader();