reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

lib/Transforms/Scalar/LoopIdiomRecognize.cpp
  353   CurLoop = L;
  383   const SCEV *BECount = SE->getBackedgeTakenCount(CurLoop);
  395   CurLoop->getUniqueExitBlocks(ExitBlocks);
  398                     << CurLoop->getHeader()->getParent()->getName()
  399                     << "] Countable Loop %" << CurLoop->getHeader()->getName()
  407   SafetyInfo.computeLoopSafetyInfo(CurLoop);
  412   for (auto *BB : CurLoop->getBlocks()) {
  414     if (LI->getLoopFor(BB) != CurLoop)
  502   if (!StoreEv || StoreEv->getLoop() != CurLoop || !StoreEv->isAffine())
  526       CurLoop->isLoopInvariant(SplatValue)) {
  561     if (!LoadEv || LoadEv->getLoop() != CurLoop || !LoadEv->isAffine())
  822   if (!Ev || Ev->getLoop() != CurLoop || !Ev->isAffine())
  843   if (!SplatValue || !CurLoop->isLoopInvariant(SplatValue))
  958   BasicBlock *Preheader = CurLoop->getLoopPreheader();
  982   if (mayLoopAccessLocation(BasePtr, ModRefInfo::ModRef, CurLoop, BECount,
  996       getNumBytes(BECount, IntPtr, StoreSize, CurLoop, DL, SE);
 1078   BasicBlock *Preheader = CurLoop->getLoopPreheader();
 1101   if (mayLoopAccessLocation(StoreBasePtr, ModRefInfo::ModRef, CurLoop, BECount,
 1121   if (mayLoopAccessLocation(LoadBasePtr, ModRefInfo::Mod, CurLoop, BECount,
 1136       getNumBytes(BECount, IntPtrTy, StoreSize, CurLoop, DL, SE);
 1196   if (ApplyCodeSizeHeuristics && CurLoop->getNumBlocks() > 1) {
 1197     if (!CurLoop->getParentLoop() && (!IsMemset || !IsLoopMemset)) {
 1198       LLVM_DEBUG(dbgs() << "  " << CurLoop->getHeader()->getParent()->getName()
 1210                     << CurLoop->getHeader()->getParent()->getName()
 1212                     << CurLoop->getHeader()->getName() << "\n");
 1496   if (CurLoop->getNumBackEdges() != 1 || CurLoop->getNumBlocks() != 1)
 1496   if (CurLoop->getNumBackEdges() != 1 || CurLoop->getNumBlocks() != 1)
 1508   if (!detectShiftUntilZeroIdiom(CurLoop, *DL, IntrinID, InitX,
 1514     if (!CurLoop->contains(cast<Instruction>(U))) {
 1520     if (!CurLoop->contains(cast<Instruction>(U))) {
 1535   BasicBlock *PH = CurLoop->getLoopPreheader();
 1569   auto InstWithoutDebugIt = CurLoop->getHeader()->instructionsWithoutDebug();
 1598   if (CurLoop->getNumBackEdges() != 1 || CurLoop->getNumBlocks() != 1)
 1598   if (CurLoop->getNumBackEdges() != 1 || CurLoop->getNumBlocks() != 1)
 1601   BasicBlock *LoopBody = *(CurLoop->block_begin());
 1608   BasicBlock *PH = CurLoop->getLoopPreheader();
 1627   if (!detectPopcountIdiom(CurLoop, PreCondBB, CntInst, CntPhi, Val))
 1750   BasicBlock *Body = *(CurLoop->block_begin());
 1780   SE->forgetLoop(CurLoop);
 1786   BasicBlock *PreHead = CurLoop->getLoopPreheader();
 1856   BasicBlock *Body = *(CurLoop->block_begin());
 1886   SE->forgetLoop(CurLoop);
 1914   if (!match(CurLoop->getHeader()->getTerminator(),
 1918       !match(CurLoop->getLoopLatch()->getTerminator(),
 1960   BasicBlock *LoopHeaderBB = CurLoop->getHeader();
 1961   BasicBlock *LoopLatchBB = CurLoop->getLoopLatch();
 1973   CurLoop->getUniqueExitBlocks(ExitBlocks);
 1992   assert(CurLoop->isLCSSAForm(*DT) && "Should only get LCSSA-form loops here.");
 2000              return CurLoop->contains(PredecessorBB);
 2004         if (I && CurLoop->contains(I)) {
 2016   for (BasicBlock *LoopBB : CurLoop->blocks()) {
 2040       SE->getSCEVAtScope(CmpOfLoads.LoadSrcA, CurLoop));
 2042       SE->getSCEVAtScope(CmpOfLoads.LoadSrcB, CurLoop));
 2055       ScevForSrcA->getLoop() != CurLoop || ScevForSrcB->getLoop() != CurLoop ||
 2055       ScevForSrcA->getLoop() != CurLoop || ScevForSrcB->getLoop() != CurLoop ||
 2075       !SE->isAvailableAtLoopEntry(SrcA, CurLoop) ||
 2076       !SE->isAvailableAtLoopEntry(SrcB, CurLoop)) {
 2091       SE->getExitCount(CurLoop, CurLoop->getLoopLatch());
 2091       SE->getExitCount(CurLoop, CurLoop->getLoopLatch());
 2099       !SE->isAvailableAtLoopEntry(LoopExitCount, CurLoop)) {
 2133   if (!CurLoop->isLoopSimplifyForm() || CurLoop->getNumBlocks() > 2) {
 2133   if (!CurLoop->isLoopSimplifyForm() || CurLoop->getNumBlocks() > 2) {
 2209                                       CurLoop->getHeader())
 2218                                       CurLoop->getStartLoc(),
 2219                                       CurLoop->getHeader())
 2231   BasicBlock *PreheaderBB = CurLoop->getLoopPreheader();
 2232   BasicBlock *HeaderBB = CurLoop->getHeader();
 2233   BasicBlock *LoopLatchBB = CurLoop->getLoopLatch();
 2234   SmallString<32> LoopName = CurLoop->getName();
 2239   SE->forgetLoop(CurLoop);
 2329     assert(CurLoop->contains(OldBB) && "Only for loop's basic blocks.");
 2330     if (OldBB == CurLoop->getLoopLatch()) // "all elements compared equal".
 2332     if (OldBB == CurLoop->getHeader()) // "element compared unequal".
 2339   CurLoop->getExitEdges(LoopExitEdges);
 2346     assert(CurLoop->contains(OldLoopBB) && !CurLoop->contains(SuccessorBB) &&
 2346     assert(CurLoop->contains(OldLoopBB) && !CurLoop->contains(SuccessorBB) &&
 2404   Loop *ParentLoop = CurLoop->getParentLoop();
 2406   LoopDeleter.markLoopAsDeleted(CurLoop); // Mark as deleted *BEFORE* deleting!
 2407   deleteDeadLoop(CurLoop, DT, SE, LI);    // And actually delete the loop.
 2408   CurLoop = nullptr;
 2597   IRBuilder<> Builder(CurLoop->getLoopPreheader()->getTerminator());