reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
216 return Preheader && Header && ExitingBlock && ExitBlock && Latch && L && 217 !L->isInvalid() && Valid; 223 assert(!L->isInvalid() && "Loop is invalid!"); 224 assert(Preheader == L->getLoopPreheader() && "Preheader is out of sync"); 225 assert(Header == L->getHeader() && "Header is out of sync"); 226 assert(ExitingBlock == L->getExitingBlock() && 228 assert(ExitBlock == L->getExitBlock() && "Exit block is out of sync"); 229 assert(Latch == L->getLoopLatch() && "Latch is out of sync"); 261 assert(L && "Expecting loop to be valid."); 263 return L->isLoopExiting(Latch); 300 if (L->isInvalid()) 307 if (!SE.hasLoopInvariantBackedgeTakenCount(L)) { 308 LLVM_DEBUG(dbgs() << "Loop " << L->getName() 313 if (!L->isLoopSimplifyForm()) { 314 LLVM_DEBUG(dbgs() << "Loop " << L->getName() 337 assert(L && Preheader && "Fusion candidate not initialized properly!"); 340 L->getStartLoc(), Preheader) 669 const SCEV *TripCount0 = SE.getBackedgeTakenCount(FC0.L); 676 const SCEV *TripCount1 = SE.getBackedgeTakenCount(FC1.L); 708 assert(!LDT.isRemovedLoop(FC0->L) && 712 assert(!LDT.isRemovedLoop(FC1->L) && 813 LDT.removeLoop(FC1->L); 943 return accessDiffIsPositive(*FC0.L, *FC1.L, I0, I1, AnyDep); 943 return accessDiffIsPositive(*FC0.L, *FC1.L, I0, I1, AnyDep); 982 assert(FC0.L->getLoopDepth() == FC1.L->getLoopDepth()); 982 assert(FC0.L->getLoopDepth() == FC1.L->getLoopDepth()); 1021 for (BasicBlock *BB : FC1.L->blocks()) 1025 if (FC0.L->contains(Def->getParent())) { 1271 SE.forgetLoop(FC1.L); 1272 SE.forgetLoop(FC0.L); 1275 SmallVector<BasicBlock *, 8> Blocks(FC1.L->block_begin(), 1276 FC1.L->block_end()); 1278 FC0.L->addBlockEntry(BB); 1279 FC1.L->removeBlockFromLoop(BB); 1280 if (LI.getLoopFor(BB) != FC1.L) 1282 LI.changeLoopFor(BB, FC0.L); 1284 while (!FC1.L->empty()) { 1285 const auto &ChildLoopIt = FC1.L->begin(); 1287 FC1.L->removeChildLoop(ChildLoopIt); 1288 FC0.L->addChildLoop(ChildLoop); 1292 LI.erase(FC1.L); 1304 return FC0.L; 1326 ORE.emit(RemarkKind(DEBUG_TYPE, Stat.getName(), FC0.L->getStartLoc(), 1524 SE.forgetLoop(FC1.L); 1525 SE.forgetLoop(FC0.L); 1528 SmallVector<BasicBlock *, 8> Blocks(FC1.L->block_begin(), 1529 FC1.L->block_end()); 1531 FC0.L->addBlockEntry(BB); 1532 FC1.L->removeBlockFromLoop(BB); 1533 if (LI.getLoopFor(BB) != FC1.L) 1535 LI.changeLoopFor(BB, FC0.L); 1537 while (!FC1.L->empty()) { 1538 const auto &ChildLoopIt = FC1.L->begin(); 1540 FC1.L->removeChildLoop(ChildLoopIt); 1541 FC0.L->addChildLoop(ChildLoop); 1545 LI.erase(FC1.L); 1557 return FC0.L;