| /llvm-project-15.0.7/mlir/lib/Dialect/Affine/Transforms/ |
| H A D | LoopUnroll.cpp | 75 SmallVectorImpl<AffineForOp> &loops) { in gatherInnermostLoops() argument 78 loops.push_back(forOp); in gatherInnermostLoops() 89 SmallVector<AffineForOp, 4> loops; in runOnOperation() local 97 loops.push_back(forOp); in runOnOperation() 99 for (auto forOp : loops) in runOnOperation() 105 SmallVector<AffineForOp, 4> loops; in runOnOperation() local 107 loops.clear(); in runOnOperation() 108 gatherInnermostLoops(func, loops); in runOnOperation() 109 if (loops.empty()) in runOnOperation() 112 for (auto forOp : loops) in runOnOperation()
|
| H A D | LoopCoalescing.cpp | 34 SmallVector<LoopOpTy, 4> loops; in walkLoop() local 35 getPerfectlyNestedLoops(loops, op); in walkLoop() 37 << "found a perfect nest of depth " << loops.size() << '\n'); in walkLoop() 43 SmallVector<unsigned, 4> operandsDefinedAbove(loops.size()); in walkLoop() 44 for (unsigned i = 0, e = loops.size(); i < e; ++i) { in walkLoop() 47 if (areValuesDefinedAbove(loops[i].getOperands(), in walkLoop() 48 loops[j].getRegion())) { in walkLoop() 61 for (unsigned end = loops.size(); end > 0; --end) { in walkLoop() 76 llvm::makeMutableArrayRef(loops.data() + start, end - start); in walkLoop()
|
| H A D | SuperVectorize.cpp | 1506 if (currentLevel == loops.size()) in getMatchedAffineLoopsRec() 1507 loops.emplace_back(); in getMatchedAffineLoopsRec() 1524 getMatchedAffineLoopsRec(match, /*currLoopDepth=*/0, loops); in getMatchedAffineLoops() 1533 AffineForOp rootLoop = loops[0][0]; in vectorizeLoopNest() 1773 if (loops.empty()) in verifyLoopNesting() 1777 if (loops[0].size() != 1) in verifyLoopNesting() 1781 for (int i = 1, end = loops.size(); i < end; ++i) { in verifyLoopNesting() 1782 for (AffineForOp loop : loops[i]) { in verifyLoopNesting() 1792 for (AffineForOp sibling : loops[i]) { in verifyLoopNesting() 1862 if (failed(verifyLoopNesting(loops))) in vectorizeAffineLoopNest() [all …]
|
| /llvm-project-15.0.7/llvm/test/CodeGen/PowerPC/ |
| H A D | ppc-passname-assert.ll | 3 ; Test pass name: ppc-ctr-loops-verify. 4 …werpc64le-unknown-unknown < %s -debug-pass=Structure -stop-before=ppc-ctr-loops-verify -o /dev/nul… 5 ; STOP-BEFORE-CTR-LOOPS-VERIFY-NOT: -ppc-ctr-loops-verify 6 ; STOP-BEFORE-CTR-LOOPS-VERIFY-NOT: "ppc-ctr-loops-verify" pass is not registered. 9 …owerpc64le-unknown-unknown < %s -debug-pass=Structure -stop-after=ppc-ctr-loops-verify -o /dev/nul… 10 ; STOP-AFTER-CTR-LOOPS-VERIFY: -ppc-ctr-loops-verify 11 ; STOP-AFTER-CTR-LOOPS-VERIFY-NOT: "ppc-ctr-loops-verify" pass is not registered.
|
| /llvm-project-15.0.7/mlir/lib/Dialect/SCF/Transforms/ |
| H A D | TileUsingInterface.cpp | 107 SmallVector<scf::ForOp> loops; in generateTileLoopNest() local 141 loops.push_back(loop); in generateTileLoopNest() 144 return loops; in generateTileLoopNest() 216 tilingResult.loops = generateTileLoopNest( in returningMatchAndRewrite() 226 if (!tilingResult.loops.empty()) { in returningMatchAndRewrite() 228 tilingResult.loops.front().dump(); in returningMatchAndRewrite() 234 if (!tilingResult.loops.empty()) in returningMatchAndRewrite() 246 if (!tilingResult.loops.empty()) { in returningMatchAndRewrite() 248 tilingResult.loops.front().dump(); in returningMatchAndRewrite() 262 if (tilingResult.loops.empty()) { in returningMatchAndRewrite() [all …]
|
| /llvm-project-15.0.7/llvm/test/Transforms/SimpleLoopUnswitch/ |
| H A D | exponential-nontrivial-unswitch.ll | 7 ; RUN: -passes='loop(simple-loop-unswitch<nontrivial>),print<loops>' -disable-output 2>&1 | Fil… 11 ; RUN: -passes='loop(simple-loop-unswitch<nontrivial>),print<loops>' -disable-output 2>&1 | Fil… 15 ; RUN: -passes='loop-mssa(simple-loop-unswitch<nontrivial>),print<loops>' -disable-output 2>&1 … 19 ; RUN: -passes='loop-mssa(simple-loop-unswitch<nontrivial>),print<loops>' -disable-output 2>&1 … 28 ; RUN: -passes='loop(simple-loop-unswitch<nontrivial>),print<loops>' -disable-output 2>&1 | Fil… 32 ; RUN: -passes='loop-mssa(simple-loop-unswitch<nontrivial>),print<loops>' -disable-output 2>&1 … 35 ; siblings multiplier for top-level loops (toplevel-div == 8) we should get 41 ; RUN: -passes='loop(simple-loop-unswitch<nontrivial>),print<loops>' -disable-output 2>&1 | Fil… 52 ; RUN: -passes='loop(simple-loop-unswitch<nontrivial>),print<loops>' -disable-output 2>&1 | Fil… 61 ; 5 loops, unswitched 4 times [all …]
|
| H A D | exponential-nontrivial-unswitch2.ll | 9 ; RUN: -passes='loop(simple-loop-unswitch<nontrivial>),print<loops>' -disable-output 2>&1 | Fil… 13 ; RUN: -passes='loop(simple-loop-unswitch<nontrivial>),print<loops>' -disable-output 2>&1 | Fil… 17 ; RUN: -passes='loop(simple-loop-unswitch<nontrivial>),print<loops>' -disable-output 2>&1 | Fil… 21 ; RUN: -passes='loop(simple-loop-unswitch<nontrivial>),print<loops>' -disable-output 2>&1 | Fil… 24 ; RUN: -passes='loop(simple-loop-unswitch<nontrivial>),print<loops>' -disable-output 2>&1 | Fil… 29 ; RUN: -passes='loop-mssa(simple-loop-unswitch<nontrivial>),print<loops>' -disable-output 2>&1 … 33 ; RUN: -passes='loop-mssa(simple-loop-unswitch<nontrivial>),print<loops>' -disable-output 2>&1 … 37 ; RUN: -passes='loop-mssa(simple-loop-unswitch<nontrivial>),print<loops>' -disable-output 2>&1 … 41 ; RUN: -passes='loop-mssa(simple-loop-unswitch<nontrivial>),print<loops>' -disable-output 2>&1 … 44 ; RUN: -passes='loop-mssa(simple-loop-unswitch<nontrivial>),print<loops>' -disable-output 2>&1 …
|
| H A D | exponential-nontrivial-unswitch-nested.ll | 7 ; RUN: -passes='loop-mssa(simple-loop-unswitch<nontrivial>),print<loops>' -disable-output 2>&1 … 11 ; RUN: -passes='loop(simple-loop-unswitch<nontrivial>),print<loops>' -disable-output 2>&1 | Fil… 15 ; RUN: -passes='loop-mssa(simple-loop-unswitch<nontrivial>),print<loops>' -disable-output 2>&1 … 19 ; RUN: -passes='loop-mssa(simple-loop-unswitch<nontrivial>),print<loops>' -disable-output 2>&1 … 31 ; RUN: -passes='loop-mssa(licm,simple-loop-unswitch<nontrivial>),print<loops>' -disable-output … 39 ; RUN: -passes='loop-mssa(licm,simple-loop-unswitch<nontrivial>),print<loops>' -disable-output … 47 ; RUN: -passes='loop-mssa(licm,simple-loop-unswitch<nontrivial>),print<loops>' -disable-output … 56 ; Half unswitched loop nests, with unscaled4 and div1 it gets less depth1 loops unswitched 63 ; Half unswitched loop nests, with unscaled4 and div2 it gets more depth1 loops unswitched
|
| H A D | exponential-nontrivial-unswitch-nested2.ll | 12 ; RUN: -passes='loop(simple-loop-unswitch<nontrivial>),print<loops>' -disable-output 2>&1 | Fil… 16 ; RUN: -passes='loop(simple-loop-unswitch<nontrivial>),print<loops>' -disable-output 2>&1 | Fil… 20 ; RUN: -passes='loop-mssa(simple-loop-unswitch<nontrivial>),print<loops>' -disable-output 2>&1 … 24 ; RUN: -passes='loop-mssa(simple-loop-unswitch<nontrivial>),print<loops>' -disable-output 2>&1 … 27 ; (unscaled candidates == 2) we start getting some unswitches in outer loops, 36 ; RUN: -passes='loop-mssa(licm,simple-loop-unswitch<nontrivial>),print<loops>' -disable-output … 44 ; RUN: -passes='loop-mssa(licm,simple-loop-unswitch<nontrivial>),print<loops>' -disable-output … 50 ; RUN: -passes='loop-mssa(licm,simple-loop-unswitch<nontrivial>),print<loops>' -disable-output … 61 ; Half unswitched loop nests, with unscaled3 and div1 it gets less depth1 loops unswitched 70 ; Half unswitched loop nests, with unscaled3 and div2 it gets more depth1 loops unswitched
|
| H A D | exponential-switch-unswitch.ll | 14 ; RUN: -passes='loop(simple-loop-unswitch<nontrivial>),print<loops>' -disable-output 2>&1 | Fil… 18 ; RUN: -passes='loop(simple-loop-unswitch<nontrivial>),print<loops>' -disable-output 2>&1 | Fil… 22 ; RUN: -passes='loop-mssa(simple-loop-unswitch<nontrivial>),print<loops>' -disable-output 2>&1 … 26 ; RUN: -passes='loop-mssa(simple-loop-unswitch<nontrivial>),print<loops>' -disable-output 2>&1 … 37 ; RUN: -passes='loop-mssa(licm,simple-loop-unswitch<nontrivial>),print<loops>' -disable-output … 41 ; siblings multiplier for top-level loops (toplevel-div == 8) we should get 46 ; RUN: -passes='loop-mssa(licm,simple-loop-unswitch<nontrivial>),print<loops>' -disable-output … 52 ; RUN: -passes='loop-mssa(licm,simple-loop-unswitch<nontrivial>),print<loops>' -disable-output …
|
| /llvm-project-15.0.7/mlir/include/mlir/Dialect/SCF/Transforms/ |
| H A D | Passes.td | 32 let summary = "Peel `for` loops at their upper bounds."; 37 "Do not peel loops inside of the last, partial iteration of another " 44 let summary = "Specialize `for` loops for vectorization"; 49 let summary = "Fuse adjacent parallel loops"; 54 let summary = "Collapse parallel loops to use less induction variables"; 68 let summary = "Specialize parallel loops for vectorization"; 73 let summary = "Tile parallel loops"; 77 "Factors to tile parallel loops by">, 81 "inside the internal loops"> 92 let summary = "Convert SCF for loops to SCF while loops";
|
| /llvm-project-15.0.7/mlir/lib/Dialect/SCF/Utils/ |
| H A D | Utils.cpp | 613 if (loops.size() < 2) in coalesceLoops() 621 for (auto loop : loops) in coalesceLoops() 660 scf::ForOp second = loops[1]; in coalesceLoops() 670 OpBuilder outsideBuilder(loops); in collapseParallelLoops() 671 Location loc = loops.getLoc(); in collapseParallelLoops() 685 loops.getLowerBound()[i], loops.getUpperBound()[i], in collapseParallelLoops() 686 loops.getStep()[i], loops.getBody()->getArgument(i)); in collapseParallelLoops() 744 loops.getBody()->back().erase(); in collapseParallelLoops() 748 loops.erase(); in collapseParallelLoops() 902 assert(loops.size() == 1); in tile() [all …]
|
| /llvm-project-15.0.7/llvm/test/MC/Hexagon/PacketRules/ |
| H A D | endloop_branches.s | 5 # CHECK: 4:1: error: Branches cannot be in a packet with hardware loops 9 # CHECK: 8:1: error: Branches cannot be in a packet with hardware loops 13 # CHECK: 12:1: error: Branches cannot be in a packet with hardware loops 17 # CHECK: 16:1: error: Branches cannot be in a packet with hardware loops
|
| /llvm-project-15.0.7/clang-tools-extra/docs/clang-tidy/checks/bugprone/ |
| H A D | infinite-loop.rst | 6 Finds obvious infinite loops (loops where the condition variable is not changed 9 Finding infinite loops is well-known to be impossible (halting problem). 10 However, it is possible to detect some obvious infinite loops, for example, if 11 the loop condition is not changed. This check detects such loops. A loop is
|
| /llvm-project-15.0.7/llvm/test/Transforms/HardwareLoops/ |
| H A D | unconditional-latch.ll | 1 ; RUN: opt -force-hardware-loops=true -hardware-loop-decrement=1 -hardware-loop-counter-bitwidth=32… 2 ; RUN: opt -force-hardware-loops=true -hardware-loop-decrement=1 -hardware-loop-counter-bitwidth=32… 3 … -force-hardware-loops=true -hardware-loop-decrement=1 -hardware-loop-counter-bitwidth=32 -force-h…
|
| H A D | unscevable.ll | 1 ; RUN: opt -hardware-loops -force-hardware-loops=true -hardware-loop-decrement=1 -hardware-loop-cou… 2 ; RUN: opt -hardware-loops -force-hardware-loops=true -hardware-loop-decrement=1 -hardware-loop-cou… 3 ; RUN: opt -hardware-loops -force-hardware-loops=true -hardware-loop-decrement=1 -hardware-loop-cou…
|
| /llvm-project-15.0.7/llvm/test/Transforms/LoopUnroll/ |
| H A D | revisit.ll | 1 ; This test checks that nested loops are revisited in various scenarios when 11 ; RUN: opt < %s -disable-output -debug-pass-manager -unroll-revisit-child-loops 2>&1 \ 16 ; loops, including the ones that used to be child loops. 60 ; Unrolling occurs, so we visit what were the inner loops twice over. First we 61 ; visit their clones, and then we visit the original loops re-parented. 81 ; duplicating child loops without changing their structure and so they aren't by 126 ; Partial unrolling occurs which introduces both new child loops and new sibling 127 ; loops. We only visit the child loops in a special mode, not by default.
|
| /llvm-project-15.0.7/polly/test/ScopDetect/ |
| H A D | non-affine-loop.ll | 1 ; RUN: opt %loadPolly -polly-allow-nonaffine-branches -polly-allow-nonaffine-loops=false … 2 ; RUN: opt %loadPolly -polly-allow-nonaffine-branches -polly-allow-nonaffine-loops=true … 3 ; RUN: opt %loadPolly -polly-allow-nonaffine-branches -polly-allow-nonaffine-loops=false -polly-all… 4 ; RUN: opt %loadPolly -polly-allow-nonaffine-branches -polly-allow-nonaffine-loops=true -polly-all… 5 ; RUN: opt %loadPolly -polly-allow-nonaffine-branches -polly-allow-nonaffine-loops=true -polly-all… 9 ; non-affine loops __and__ accesses __and__ allow regins without a (affine) loop we will
|
| /llvm-project-15.0.7/clang-tools-extra/docs/clang-tidy/checks/altera/ |
| H A D | unroll-loops.rst | 1 .. title:: clang-tidy - altera-unroll-loops 3 altera-unroll-loops 6 Finds inner loops that have not been unrolled, as well as fully unrolled loops 9 Unrolling inner loops could improve the performance of OpenCL kernels. However, 19 - In ``for`` loops, our check only works with simple arithmetic increments ( 32 for (int i = 0; i < 10; i++) { // ok: outer loops should not be unrolled
|
| /llvm-project-15.0.7/mlir/test/Dialect/GPU/ |
| H A D | promotion.mlir | 21 // Verify that loops for the copy are emitted. We only check the number of 22 // loops here since their bounds are produced by mapLoopToProcessorIds, 28 // Verify that the copy is emitted and uses only the last two loops. 37 // Verify that loops for the copy are emitted. We only check the number of 38 // loops here since their bounds are produced by mapLoopToProcessorIds, 44 // Verify that the copy is emitted and uses only the last two loops. 75 // Verify that loops for the copy are emitted. 90 // Verify that loop loops for the copy are emitted.
|
| /llvm-project-15.0.7/clang-tools-extra/docs/clang-tidy/checks/modernize/ |
| H A D | loop-convert.rst | 6 This check converts ``for(...; ...; ...)`` loops to use the new range-based 7 loops in C++11. 9 Three kinds of loops can be converted: 21 In loops where the container expression is more complex than just a 25 Transformations for these loops are marked as `risky`, and thus will only 61 Any other loops that do not match the above criteria to be marked as 124 The converter is also capable of transforming iterator loops which use 133 When set to true convert loops when in C++20 or later mode using 181 Range-based loops evaluate end() only once 308 applied to non-OpenMP for loops the usage of ``NOLINT`` (see [all …]
|
| /llvm-project-15.0.7/llvm/docs/ |
| H A D | CycleTerminology.rst | 13 Cycles are a generalization of LLVM :ref:`loops <loop-terminology>`, 39 follows the nesting of loops in the same function. The unique entry of 66 - If the CFG is reducible, the cycles are exactly the natural loops and 72 loops." ACM Transactions on Programming Languages 80 Irreducible cycle enclosing natural loops 106 The self-loops of ``A`` and ``B`` give rise to two single-block 107 natural loops. A possible hierarchy of cycles is:: 116 Irreducible union of two natural loops 146 There are two natural loops: ``{A, C}`` and ``{B, D}``. A possible 152 Irreducible cycle without natural loops [all …]
|
| H A D | Vectorizers.rst | 13 vectors while the Loop Vectorizer widens instructions in loops 89 Many loops cannot be vectorized including loops with complicated control flow, 92 and diagnose loops that are skipped by the loop-vectorizer. 96 ``-Rpass=loop-vectorize`` identifies loops that were successfully vectorized. 143 complex loops. 148 The Loop Vectorizer supports loops with an unknown trip count. 253 The Loop Vectorizer can vectorize loops that count backwards. 354 performing partial-unrolling of loops. 382 enhanced with a feature that allows it to vectorize epilogue loops with a 397 This benchmarks is a collection of loops from the GCC autovectorization [all …]
|
| /llvm-project-15.0.7/mlir/test/lib/Dialect/SCF/ |
| H A D | TestLoopUnrolling.cpp | 56 SmallVector<scf::ForOp, 4> loops; in runOnOperation() local 59 loops.push_back(forOp); in runOnOperation() 66 for (auto loop : loops) in runOnOperation()
|
| /llvm-project-15.0.7/mlir/include/mlir/Dialect/Affine/ |
| H A D | Passes.td | 37 Option<"skipNonUnitStrideLoops", "skip-non-unit-stride-loops", "bool", 193 "Use this tile size for all loops">, 201 let summary = "Unroll affine loops"; 205 "Use this unroll factor for all loops being unrolled">, 209 "Fully unroll loops">, 211 "Unroll innermost loops repeatedly this many times">, 214 "Unroll all loops with trip count less than or equal to this">, 219 let summary = "Unroll and jam affine loops"; 224 "Use this unroll jam factor for all loops (default 4)">, 372 "Maximum number of nested parallel loops to produce. " [all …]
|