| /llvm-project-15.0.7/llvm/include/llvm/Transforms/Utils/ |
| H A D | LoopUtils.h | 32 class Loop; variable 122 SinkAndHoistLICMFlags(bool IsSink, Loop *L = nullptr, 214 Loop *, MemorySSAUpdater &, ICFLoopSafetyInfo *, 230 getOptionalElementCountLoopAttribute(const Loop *TheLoop); 262 bool hasDisableAllTransformsHint(const Loop *L); 265 bool hasDisableLICMTransformsHint(const Loop *L); 315 getLoopEstimatedTripCount(Loop *L, 471 void setProfileInfoAfterUnrolling(Loop *OrigLoop, Loop *UnrolledLoop, 501 Loop *cloneLoop(Loop *L, Loop *PL, ValueToValueMapTy &VM, 507 addRuntimeChecks(Instruction *Loc, Loop *TheLoop, [all …]
|
| H A D | UnrollLoop.h | 29 class Loop; variable 38 using NewLoopsMap = SmallDenseMap<const Loop *, Loop *, 4>; 49 const Loop* addClonedBlockToLoopInfo(BasicBlock *OriginalBB, 82 Loop **RemainderLoop = nullptr); 85 Loop *L, unsigned Count, bool AllowExpensiveTripCount, 89 Loop **ResultLoop = nullptr); 97 Loop **EpilogueLoop = nullptr); 102 bool computeUnrollCount(Loop *L, const TargetTransformInfo &TTI, 112 void simplifyLoopAfterUnroll(Loop *L, bool SimplifyIVs, LoopInfo *LI, 120 Loop *L, ScalarEvolution &SE, const TargetTransformInfo &TTI, [all …]
|
| /llvm-project-15.0.7/llvm/lib/CodeGen/ |
| H A D | MachineLoopUtils.cpp | 30 MachineFunction &MF = *Loop->getParent(); in PeelSingleBlockLoop() 32 if (Preheader == Loop) in PeelSingleBlockLoop() 35 if (Exit == Loop) in PeelSingleBlockLoop() 36 Exit = *std::next(Loop->succ_begin()); in PeelSingleBlockLoop() 40 MF.insert(Loop->getIterator(), NewBB); in PeelSingleBlockLoop() 46 for (MachineInstr &MI : *Loop) { in PeelSingleBlockLoop() 111 NewBB->addSuccessor(Loop); in PeelSingleBlockLoop() 113 Preheader->updateTerminator(Loop); in PeelSingleBlockLoop() 117 Loop->replaceSuccessor(Exit, NewBB); in PeelSingleBlockLoop() 118 Exit->replacePhiUsesWith(Loop, NewBB); in PeelSingleBlockLoop() [all …]
|
| /llvm-project-15.0.7/llvm/include/llvm/Analysis/ |
| H A D | LoopNestAnalysis.h | 23 using LoopVectorTy = SmallVector<Loop *, 8>; 33 LoopNest(Loop &Root, ScalarEvolution &SE); 51 static bool arePerfectlyNested(const Loop &OuterLoop, const Loop &InnerLoop, 80 Loop &getOutermostLoop() const { return *Loops.front(); } in getOutermostLoop() 85 Loop *getInnermostLoop() const { in getInnermostLoop() 92 Loop *LastLoop = Loops.back(); in getInnermostLoop() 100 Loop *getLoop(unsigned Index) const { in getLoop() 106 unsigned getLoopIndex(const Loop &L) const { in getLoopIndex() 117 ArrayRef<Loop *> getLoops() const { return Loops; } in getLoops() 125 Loop *L = getLoop(I); in getLoopsAtDepth() [all …]
|
| H A D | ScalarEvolution.h | 58 class Loop; variable 920 void forgetLoop(const Loop *L); 926 void forgetTopmostLoop(const Loop *L); 938 void forgetLoopDispositions(const Loop *L); 1177 const SCEV *S, const Loop *L, 1201 bool loopHasNoAbnormalExits(const Loop *L) { 1207 bool loopIsFiniteByAssumption(const Loop *L); 1510 bool loopHasNoSideEffects(const Loop *L) { 1684 const Loop *L; 1969 const Loop *L); [all …]
|
| H A D | LoopCacheAnalysis.h | 28 class Loop; variable 34 using LoopVectorTy = SmallVector<Loop *, 8>; 95 CacheCostTy computeRefCost(const Loop &L, unsigned CLS) const; 106 bool isLoopInvariant(const Loop &L) const; 120 int getSubscriptIndex(const Loop &L) const; 128 const Loop &L) const; 190 using LoopTripCountTy = std::pair<const Loop *, unsigned>; 214 CacheCostTy getLoopCost(const Loop &L) const { in getLoopCost() 236 CacheCostTy computeLoopCacheCost(const Loop &L, 250 const Loop &L) const; [all …]
|
| H A D | DependenceAnalysis.h | 50 class Loop; variable 388 const Loop *AssociatedLoop; 433 const Loop *getAssociatedLoop() const; 538 const Loop *LoopNest, 544 const Loop *LoopNest, 550 const Loop *LoopNest, 651 const Loop *CurrentLoop, 688 const Loop *CurrentLoop, 741 const Loop *SrcLoop, 742 const Loop *DstLoop, [all …]
|
| /llvm-project-15.0.7/llvm/test/Analysis/ScalarEvolution/ |
| H A D | trip-count9.ll | 19 ; CHECK: Loop %loop: Trip multiple is 1 59 ; CHECK: Loop %loop: Trip multiple is 1 99 ; CHECK: Loop %loop: Trip multiple is 1 139 ; CHECK: Loop %loop: Trip multiple is 1 168 ; CHECK: Loop %loop: Trip multiple is 1 189 ; CHECK: Loop %loop: Trip multiple is 1 210 ; CHECK: Loop %loop: Trip multiple is 1 231 ; CHECK: Loop %loop: Trip multiple is 1 252 ; CHECK: Loop %loop: Trip multiple is 1 273 ; CHECK: Loop %loop: Trip multiple is 2 [all …]
|
| H A D | trip-count-andor.ll | 14 ; CHECK: Loop %loop: Trip multiple is 1 37 ; CHECK: Loop %loop: Trip multiple is 1 60 ; CHECK: Loop %loop: Trip multiple is 1 83 ; CHECK: Loop %loop: Trip multiple is 1 148 ; CHECK: Loop %loop: Trip multiple is 1 171 ; CHECK: Loop %loop: Trip multiple is 1 194 ; CHECK: Loop %loop: Trip multiple is 1 217 ; CHECK: Loop %loop: Trip multiple is 1 282 ; CHECK: Loop %loop: Trip multiple is 1 305 ; CHECK: Loop %loop: Trip multiple is 1 [all …]
|
| H A D | trip-count-andor-selectform.ll | 14 ; CHECK: Loop %loop: Trip multiple is 1 37 ; CHECK: Loop %loop: Trip multiple is 1 60 ; CHECK: Loop %loop: Trip multiple is 1 83 ; CHECK: Loop %loop: Trip multiple is 1 148 ; CHECK: Loop %loop: Trip multiple is 1 171 ; CHECK: Loop %loop: Trip multiple is 1 194 ; CHECK: Loop %loop: Trip multiple is 1 217 ; CHECK: Loop %loop: Trip multiple is 1 282 ; CHECK: Loop %loop: Trip multiple is 1 305 ; CHECK: Loop %loop: Trip multiple is 1 [all …]
|
| H A D | trip-count-negative-stride.ll | 63 ; CHECK: Loop %for.body: Trip multiple is 2 87 ; CHECK: Loop %for.body: Trip multiple is 1 109 ; CHECK: Loop %for.body: Trip multiple is 1 159 ; CHECK: Loop %for.body: Trip multiple is 3 183 ; CHECK: Loop %for.body: Trip multiple is 1 207 ; CHECK: Loop %for.body: Trip multiple is 2 229 ; CHECK: Loop %for.body: Trip multiple is 2 349 ; CHECK: Loop %for.body: Trip multiple is 1 373 ; CHECK: Loop %for.body: Trip multiple is 1 441 ; CHECK: Loop %for.body: Trip multiple is 1 [all …]
|
| H A D | trip-multiple-guard-info.ll | 11 ; CHECK: Loop %for.body: Trip multiple is 4 37 ; CHECK: Loop %for.body: Trip multiple is 4 63 ; CHECK: Loop %for.body: Trip multiple is 2 88 ; CHECK: Loop %for.body: Trip multiple is 4 114 ; CHECK: Loop %for.body: Trip multiple is 2 139 ; CHECK: Loop %for.body: Trip multiple is 4 165 ; CHECK: Loop %for.body: Trip multiple is 1 191 ; CHECK: Loop %for.body: Trip multiple is 4 216 ; CHECK: Loop %for.body: Trip multiple is 1 242 ; CHECK: Loop %for.body: Trip multiple is 4 [all …]
|
| H A D | ne-overflow.ll | 13 ; CHECK-NEXT: Loop %for.body: backedge-taken count is ((-2 + %N) /u 2) 14 ; CHECK-NEXT: Loop %for.body: max backedge-taken count is 2147483647 17 ; CHECK: Loop %for.body: Trip multiple is 1 35 ; CHECK-NEXT: Loop %for.body: backedge-taken count is (%N /u 2) 39 ; CHECK: Loop %for.body: Trip multiple is 1 60 ; CHECK-NEXT: Loop %for.body: Unpredictable backedge-taken count. 81 ; CHECK-NEXT: Loop %for.body: Unpredictable backedge-taken count. 128 ; CHECK: Loop %for.body: Trip multiple is 1 147 ; CHECK-NEXT: Loop %for.body: max backedge-taken count is -1 150 ; CHECK: Loop %for.body: Trip multiple is 1 [all …]
|
| H A D | trip-count10.ll | 9 ; CHECK-NEXT: Loop %loop: Unpredictable backedge-taken count. 29 ; CHECK-NEXT: Loop %loop: backedge-taken count is false 30 ; CHECK-NEXT: Loop %loop: max backedge-taken count is false 33 ; CHECK: Loop %loop: Trip multiple is 1 51 ; CHECK-NEXT: Loop %loop: backedge-taken count is false 52 ; CHECK-NEXT: Loop %loop: max backedge-taken count is false 55 ; CHECK: Loop %loop: Trip multiple is 1 129 ; CHECK-NEXT: Loop %loop: backedge-taken count is 1 130 ; CHECK-NEXT: Loop %loop: max backedge-taken count is 1 133 ; CHECK: Loop %loop: Trip multiple is 2 [all …]
|
| H A D | overflow-intrinsics-trip-count.ll | 18 ; CHECK: Loop %for.body: Trip multiple is 36 44 ; CHECK: Loop %for.body: Trip multiple is 68 70 ; CHECK: Loop %for.body: Trip multiple is 51 96 ; CHECK: Loop %for.body: Trip multiple is 69 122 ; CHECK: Loop %for.body: Trip multiple is 15 148 ; CHECK: Loop %for.body: Trip multiple is 16 174 ; CHECK: Loop %for.body: Trip multiple is 1 200 ; CHECK: Loop %for.body: Trip multiple is 1 275 ; CHECK: Loop %for.body: Trip multiple is 1 301 ; CHECK: Loop %for.body: Trip multiple is 1 [all …]
|
| /llvm-project-15.0.7/llvm/lib/Analysis/ |
| H A D | LoopInfo.cpp | 197 Optional<Loop::LoopBounds> Loop::LoopBounds::getBounds(const Loop &L, in getBounds() 283 Optional<Loop::LoopBounds> Loop::getBounds(ScalarEvolution &SE) const { in getBounds() 497 MDNode *Loop::getLoopID() const { in getLoopID() 629 Loop::LocRange Loop::getLocRange() const { in getLocRange() 678 Loop &Unloop; 687 DenseMap<Loop *, Loop *> SubloopParents; 703 Loop *getNearestLoop(BasicBlock *BB, Loop *BBLoop); 797 Loop *UnloopUpdater::getNearestLoop(BasicBlock *BB, Loop *BBLoop) { in getNearestLoop() 801 Loop *NearLoop = BBLoop; in getNearestLoop() 803 Loop *Subloop = nullptr; in getNearestLoop() [all …]
|
| /llvm-project-15.0.7/llvm/include/llvm/Transforms/Scalar/ |
| H A D | LoopPassManager.h | 204 static const Loop &getLoopFromIR(Loop &L) { return L; } in getLoopFromIR() 205 static const Loop &getLoopFromIR(LoopNest &LN) { in getLoopFromIR() 291 void setParentLoop(Loop *L) { 311 for (Loop *NewL : NewChildLoops) 332 for (Loop *NewL : NewSibLoops) 363 SmallPriorityWorklist<Loop *, 4> &Worklist; 368 Loop *CurrentL; 375 Loop *ParentL; 389 const Loop &L = getLoopFromIR(IR); 392 if (!PI.runBeforePass<Loop>(*Pass, L)) [all …]
|
| /llvm-project-15.0.7/llvm/test/Analysis/BasicAA/ |
| H A D | store-promote.ll | 14 br label %Loop 16 Loop: ; preds = %Loop, %0 19 br i1 %c, label %Out, label %Loop 21 Out: ; preds = %Loop 30 ; CHECK: Loop: 31 ; CHECK-NEXT: br i1 %c, label %Out, label %Loop 36 br label %Loop 38 Loop: ; preds = %Loop, %0 45 br i1 %c, label %Out, label %Loop 47 Out: ; preds = %Loop [all …]
|
| /llvm-project-15.0.7/llvm/test/Transforms/IndVarSimplify/ |
| H A D | exit_value_tests.ll | 14 br label %Loop 16 Loop: ; preds = %Loop, %0 24 Out: ; preds = %Loop 35 br label %Loop 37 Loop: ; preds = %Loop, %0 62 br label %Loop 64 Loop: ; preds = %Loop, %0 82 br label %Loop 84 Loop: ; preds = %Loop, %0 121 br label %Loop [all …]
|
| /llvm-project-15.0.7/llvm/test/CodeGen/RISCV/ |
| H A D | atomic-cmpxchg-branch-on-result.ll | 14 ; CHECK-NEXT: # =>This Loop Header: Depth=1 15 ; CHECK-NEXT: # Child Loop BB0_3 Depth 2 17 ; CHECK-NEXT: # Parent Loop BB0_1 Depth=1 22 ; CHECK-NEXT: # in Loop: Header=BB0_3 Depth=2 44 ; CHECK-NEXT: # =>This Loop Header: Depth=1 45 ; CHECK-NEXT: # Child Loop BB1_3 Depth 2 47 ; CHECK-NEXT: # Parent Loop BB1_1 Depth=1 83 ; RV32IA-NEXT: # Child Loop BB2_3 Depth 2 85 ; RV32IA-NEXT: # Parent Loop BB2_1 Depth=1 116 ; RV64IA-NEXT: # Child Loop BB2_3 Depth 2 [all …]
|
| /llvm-project-15.0.7/llvm/test/Transforms/LoopStrengthReduce/ |
| H A D | dont_insert_redundant_ops.ll | 12 br label %Loop 13 Loop: ; preds = %Loop, %0 14 %INDVAR = phi i32 [ 0, %0 ], [ %INDVAR2, %Loop ] ; <i32> [#uses=3] 21 br i1 %cond, label %Loop, label %Out 22 Out: ; preds = %Loop 28 br label %Loop 29 Loop: ; preds = %Loop, %0 30 %INDVAR = phi i32 [ 0, %0 ], [ %INDVAR2, %Loop ] ; <i32> [#uses=3] 37 br i1 %cond, label %Loop, label %Out 38 Out: ; preds = %Loop
|
| /llvm-project-15.0.7/llvm/test/DebugInfo/MIR/InstrRef/ |
| H A D | follow-spill-of-live-value.mir | 37 …_Deque_iterator" = type { %"class.llvm::Loop"**, %"class.llvm::Loop"**, %"class.llvm::Loop"**, %"c… 41 %0 = load %"class.llvm::Loop"**, %"class.llvm::Loop"*** undef, align 8, !dbg !7 44 %2 = load %"class.llvm::Loop"**, %"class.llvm::Loop"*** undef, align 8, !dbg !7 60 store %"class.llvm::Loop"** %6, %"class.llvm::Loop"*** undef, align 8, !dbg !7 64 store %"class.llvm::Loop"*** %5, %"class.llvm::Loop"**** %8, align 8, !dbg !7 68 %11 = load %"class.llvm::Loop"**, %"class.llvm::Loop"*** %10, align 8, !dbg !7 69 %12 = load %"class.llvm::Loop"**, %"class.llvm::Loop"*** undef, align 8, !dbg !7 73 %15 = load %"class.llvm::Loop"***, %"class.llvm::Loop"**** %14, align 8, !dbg !7 108 %18 = load %"class.llvm::Loop"*, %"class.llvm::Loop"** %11, align 8, !dbg !7 119 store %"class.llvm::Loop"** %2, %"class.llvm::Loop"*** undef, align 8, !dbg !7 [all …]
|
| /llvm-project-15.0.7/llvm/test/Analysis/MemorySSA/ |
| H A D | multi-edges.ll | 12 br i1 %a, label %Loop.Body, label %Loop.End 14 Loop.Body: 15 ; CHECK: 4 = MemoryPhi({entry,1},{Loop.End,3}) 19 br i1 %a, label %Loop.End, label %Loop.End ; WhyDoWeEvenHaveThatLever.gif 21 Loop.End: 22 ; CHECK: 3 = MemoryPhi({entry,1},{Loop.Body,2},{Loop.Body,2}) 27 br i1 %2, label %Ret, label %Loop.Body
|
| /llvm-project-15.0.7/llvm/tools/llvm-exegesis/lib/ |
| H A D | SnippetRepetitor.cpp | 63 auto Loop = Filler.addBasicBlock(); in Repeat() local 82 Entry.MBB->addSuccessor(Loop.MBB, BranchProbability::getOne()); in Repeat() 83 Loop.MBB->addSuccessor(Loop.MBB, BranchProbability::getOne()); in Repeat() 86 Loop.MBB->addLiveIn(LoopCounter); in Repeat() 88 Loop.MBB->addLiveIn(Reg); in Repeat() 90 Loop.MBB->addLiveIn(LiveIn); in Repeat() 93 Loop.addInstructions(Instructions); in Repeat() 95 ET.decrementLoopCounterAndJump(*Loop.MBB, *Loop.MBB, in Repeat() 99 Loop.MBB->addSuccessor(Exit.MBB, BranchProbability::getZero()); in Repeat() 124 case InstructionBenchmark::Loop: in Create()
|
| /llvm-project-15.0.7/llvm/test/Transforms/LoopSimplify/ |
| H A D | hardertest.ll | 6 br label %Loop 8 br label %Loop 9 Loop: ; preds = %L2, %Loop, %F, %T 10 %Val = phi i32 [ 0, %T ], [ 1, %F ], [ 2, %Loop ], [ 3, %L2 ] ; <i32> [#uses=0] 11 br i1 %C, label %Loop, label %L2 12 L2: ; preds = %Loop 13 br label %Loop
|