Lines Matching refs:Loop
1 //===-- LoopUtils.cpp - Loop Utility functions -------------------------===//
57 bool llvm::formDedicatedExitBlocks(Loop *L, DominatorTree *DT, LoopInfo *LI,
123 SmallVector<Instruction *, 8> llvm::findDefsUsedOutsideOfLoop(Loop *L) {
163 // Loop passes are designed to run inside of a loop pass manager which means
203 static MDNode *createStringMetadata(Loop *TheLoop, StringRef Name, unsigned V) {
214 void llvm::addStringMetadataToLoop(Loop *TheLoop, const char *StringMD,
250 llvm::getOptionalElementCountLoopAttribute(const Loop *TheLoop) {
344 bool llvm::hasDisableAllTransformsHint(const Loop *L) {
348 bool llvm::hasDisableLICMTransformsHint(const Loop *L) {
352 TransformationMode llvm::hasUnrollTransformation(const Loop *L) {
373 TransformationMode llvm::hasUnrollAndJamTransformation(const Loop *L) {
391 TransformationMode llvm::hasVectorizeTransformation(const Loop *L) {
427 TransformationMode llvm::hasDistributeTransformation(const Loop *L) {
437 TransformationMode llvm::hasLICMVersioningTransformation(const Loop *L) {
450 llvm::collectChildrenInLoop(DomTreeNode *N, const Loop *CurLoop) {
483 void llvm::deleteDeadLoop(Loop *L, DominatorTree *DT, ScalarEvolution *SE,
543 assert(L->hasDedicatedExits() && "Loop should have dedicated exits!");
585 "Loop should have either zero or one exit blocks.");
662 // be be replaced with undef. Loop invariant values will still be available.
711 if (Loop *ParentLoop = L->getParentLoop()) {
712 Loop::iterator I = find(*ParentLoop, L);
716 Loop::iterator I = find(*LI, L);
724 void llvm::breakLoopBackedge(Loop *L, DominatorTree &DT, ScalarEvolution &SE,
729 Loop *OutermostLoop = L->getOutermostLoop();
804 static BranchInst *getExpectedExitLoopLatchBranch(Loop *L) {
823 Loop *L,
849 llvm::getLoopEstimatedTripCount(Loop *L,
867 bool llvm::setLoopEstimatedTripCount(Loop *L, unsigned EstimatedTripCount,
899 bool llvm::hasIterationCountInvariantInParent(Loop *InnerLoop,
901 Loop *OuterL = InnerLoop->getParentLoop();
1328 bool llvm::isKnownNegativeInLoop(const SCEV *S, const Loop *L,
1335 bool llvm::isKnownNonNegativeInLoop(const SCEV *S, const Loop *L,
1342 bool llvm::isKnownPositiveInLoop(const SCEV *S, const Loop *L,
1349 bool llvm::isKnownNonPositiveInLoop(const SCEV *S, const Loop *L,
1356 bool llvm::cannotBeMinInLoop(const SCEV *S, const Loop *L, ScalarEvolution &SE,
1367 bool llvm::cannotBeMaxInLoop(const SCEV *S, const Loop *L, ScalarEvolution &SE,
1383 static bool hasHardUserWithinLoop(const Loop *L, const Instruction *I) {
1424 static bool canLoopBeDeleted(Loop *L, SmallVector<RewritePhi, 8> &RewritePhiSet) {
1430 // In LoopDeletion pass Loop can be deleted when ExitingBlocks.size() > 1.
1478 static bool checkIsIndPhi(PHINode *Phi, Loop *L, ScalarEvolution *SE,
1489 int llvm::rewriteLoopExitValues(Loop *L, LoopInfo *LI, TargetLibraryInfo *TLI,
1701 void llvm::setProfileInfoAfterUnrolling(Loop *OrigLoop, Loop *UnrolledLoop,
1702 Loop *RemainderLoop, uint64_t UF) {
1730 RangeT &&Loops, SmallPriorityWorklist<Loop *, 4> &Worklist) {
1733 SmallVector<Loop *, 4> PreOrderLoops, PreOrderWorklist;
1737 for (Loop *RootL : Loops) {
1743 Loop *L = PreOrderWorklist.pop_back_val();
1755 SmallPriorityWorklist<Loop *, 4> &Worklist) {
1759 template void llvm::appendLoopsToWorklist<ArrayRef<Loop *> &>(
1760 ArrayRef<Loop *> &Loops, SmallPriorityWorklist<Loop *, 4> &Worklist);
1763 llvm::appendLoopsToWorklist<Loop &>(Loop &L,
1764 SmallPriorityWorklist<Loop *, 4> &Worklist);
1767 SmallPriorityWorklist<Loop *, 4> &Worklist) {
1771 Loop *llvm::cloneLoop(Loop *L, Loop *PL, ValueToValueMapTy &VM,
1773 Loop &New = *LI->AllocateLoop();
1788 for (Loop *I : *L)
1807 Loop *TheLoop, Instruction *Loc,
1830 const Loop *OuterLoop = TheLoop->getParentLoop();
1876 expandBounds(const SmallVectorImpl<RuntimePointerCheck> &PointerChecks, Loop *L,
1895 Instruction *Loc, Loop *TheLoop,
2000 llvm::hasPartialIVCondition(const Loop &L, unsigned MSSAThreshold,