Lines Matching refs:TheLoop
107 TheLoop(L), ORE(ORE) { in LoopVectorizeHints()
154 LLVMContext &Context = TheLoop->getHeader()->getContext(); in setAlreadyVectorized()
160 MDNode *LoopID = TheLoop->getLoopID(); in setAlreadyVectorized()
166 TheLoop->setLoopID(NewLoopID); in setAlreadyVectorized()
211 TheLoop->getStartLoc(), in emitRemarkWithHints()
212 TheLoop->getHeader()) in emitRemarkWithHints()
216 TheLoop->getStartLoc(), TheLoop->getHeader()); in emitRemarkWithHints()
251 MDNode *LoopID = TheLoop->getLoopID(); in getHintsFromMetadata()
411 static bool hasOutsideLoopUser(const Loop *TheLoop, Instruction *Inst, in hasOutsideLoopUser() argument
420 if (!TheLoop->contains(UI)) { in hasOutsideLoopUser()
453 Function *F = TheLoop->getHeader()->getParent(); in isConsecutivePtr()
455 llvm::shouldOptimizeForSize(TheLoop->getHeader(), PSI, BFI, in isConsecutivePtr()
458 int Stride = getPtrStride(PSE, AccessTy, Ptr, TheLoop, Strides, in isConsecutivePtr()
470 assert(!TheLoop->isInnermost() && "We are not vectorizing an outer loop."); in canVectorizeOuterLoop()
476 for (BasicBlock *BB : TheLoop->blocks()) { in canVectorizeOuterLoop()
483 "CFGNotUnderstood", ORE, TheLoop); in canVectorizeOuterLoop()
497 !TheLoop->isLoopInvariant(Br->getCondition()) && in canVectorizeOuterLoop()
502 "CFGNotUnderstood", ORE, TheLoop); in canVectorizeOuterLoop()
512 if (!isUniformLoopNest(TheLoop /*loop nest*/, in canVectorizeOuterLoop()
513 TheLoop /*context outer loop*/)) { in canVectorizeOuterLoop()
516 "CFGNotUnderstood", ORE, TheLoop); in canVectorizeOuterLoop()
527 "UnsupportedPhi", ORE, TheLoop); in canVectorizeOuterLoop()
583 AllowedExit.insert(Phi->getIncomingValueForBlock(TheLoop->getLoopLatch())); in addInductionPhi()
590 BasicBlock *Header = TheLoop->getHeader(); in setupOuterLoopInductions()
595 if (InductionDescriptor::isInductionPHI(&Phi, TheLoop, PSE, ID) && in setupOuterLoopInductions()
645 BasicBlock *Header = TheLoop->getHeader(); in canVectorizeInstrs()
648 for (BasicBlock *BB : TheLoop->blocks()) { in canVectorizeInstrs()
658 "CFGNotUnderstood", ORE, TheLoop); in canVectorizeInstrs()
679 "CFGNotUnderstood", ORE, TheLoop, Phi); in canVectorizeInstrs()
684 if (RecurrenceDescriptor::isReductionPHI(Phi, TheLoop, RedDes, DB, AC, in canVectorizeInstrs()
707 if (InductionDescriptor::isInductionPHI(Phi, TheLoop, PSE, ID)) { in canVectorizeInstrs()
713 if (RecurrenceDescriptor::isFirstOrderRecurrence(Phi, TheLoop, in canVectorizeInstrs()
722 if (InductionDescriptor::isInductionPHI(Phi, TheLoop, PSE, ID, true)) { in canVectorizeInstrs()
730 "NonReductionValueUsedOutsideLoop", ORE, TheLoop, Phi); in canVectorizeInstrs()
764 "CantVectorizeLibcall", ORE, TheLoop, CI); in canVectorizeInstrs()
768 "CantVectorizeLibcall", ORE, TheLoop, CI); in canVectorizeInstrs()
780 if (!SE->isLoopInvariant(PSE.getSCEV(CI->getOperand(i)), TheLoop)) { in canVectorizeInstrs()
783 "CantVectorizeIntrinsic", ORE, TheLoop, CI); in canVectorizeInstrs()
796 "CantVectorizeInstructionReturnType", ORE, TheLoop, &I); in canVectorizeInstrs()
806 "CantVectorizeStore", ORE, TheLoop, ST); in canVectorizeInstrs()
820 "CantVectorizeNontemporalStore", ORE, TheLoop, ST); in canVectorizeInstrs()
835 "CantVectorizeNontemporalLoad", ORE, TheLoop, LD); in canVectorizeInstrs()
853 if (hasOutsideLoopUser(TheLoop, &I, AllowedExit)) { in canVectorizeInstrs()
864 "ValueUsedOutsideLoop", ORE, TheLoop, &I); in canVectorizeInstrs()
874 "NoInductionVariable", ORE, TheLoop); in canVectorizeInstrs()
879 "NoIntegerInductionVariable", ORE, TheLoop); in canVectorizeInstrs()
890 BasicBlock *LoopLatch = TheLoop->getLoopLatch(); in canVectorizeInstrs()
908 LAI = &(*GetLAA)(*TheLoop); in canVectorizeMemory()
933 "CantVectorizeStoreToLoopInvariantAddress", ORE, TheLoop); in canVectorizeMemory()
976 "CantVectorizeStoreToLoopInvariantAddress", ORE, TheLoop); in canVectorizeMemory()
1078 return LoopAccessInfo::blockNeedsPredication(BB, TheLoop, DT); in blockNeedsPredication()
1134 ORE, TheLoop); in canVectorizeWithIfConvert()
1138 assert(TheLoop->getNumBlocks() > 1 && "Single block loops are vectorizable"); in canVectorizeWithIfConvert()
1148 for (BasicBlock *BB : TheLoop->blocks()) { in canVectorizeWithIfConvert()
1165 isDereferenceableAndAlignedInLoop(LI, TheLoop, SE, *DT)) in canVectorizeWithIfConvert()
1171 for (BasicBlock *BB : TheLoop->blocks()) { in canVectorizeWithIfConvert()
1176 "LoopContainsSwitch", ORE, TheLoop, in canVectorizeWithIfConvert()
1188 "NoCFGForSelect", ORE, TheLoop, in canVectorizeWithIfConvert()
1220 "CFGNotUnderstood", ORE, TheLoop); in canVectorizeLoopCFG()
1231 "CFGNotUnderstood", ORE, TheLoop); in canVectorizeLoopCFG()
1275 if (!canVectorizeLoopNestCFG(TheLoop, UseVPlanNativePath)) { in canVectorize()
1283 LLVM_DEBUG(dbgs() << "LV: Found a loop: " << TheLoop->getHeader()->getName() in canVectorize()
1288 if (!TheLoop->isInnermost()) { in canVectorize()
1295 ORE, TheLoop); in canVectorize()
1305 assert(TheLoop->isInnermost() && "Inner loop expected."); in canVectorize()
1307 unsigned NumBlocks = TheLoop->getNumBlocks(); in canVectorize()
1347 "TooManySCEVRunTimeChecks", ORE, TheLoop); in canVectorize()
1378 if (TheLoop->contains(UI)) in prepareToFoldTailByMasking()
1396 for (BasicBlock *BB : TheLoop->blocks()) { in prepareToFoldTailByMasking()