/llvm-project/llvm/docs/ |
H A D | CycleTerminology.rst | 18 1. In a directed graph G that is a function CFG or a subgraph of it, a *cycle* 21 ensures that a single basic block is a cycle only if there is an edge 23 2. A basic block in a cycle that can be reached from the entry of 25 in the cycle is called an *entry* of the cycle. 26 A cycle can have multiple entries. 28 first node of a cycle to be visited is called the *header* of this cycle 33 5. The *child cycles* (or simply cycles) nested inside a cycle C with 37 Thus, cycles form an implementation-defined forest where each cycle C is 40 a reducible cycle (an LLVM loop) L dominates all its other nodes, and 41 is always chosen as the header of some cycle C regardless of the DFS [all …]
|
H A D | ConvergenceAndUniformity.rst | 84 Described in :ref:`cycle-terminology`. 87 Described in :ref:`cycle-closed-path`. 223 The maximal converged-with relation is defined in terms of cycle 225 "iteration" of the cycle. Informally, two threads execute the same iteration of 226 a cycle if they both previously executed the cycle header the same number of 227 times after they entered that cycle. In general, this needs to account for the 236 - ``X`` is not contained in any cycle, or, 237 - For every cycle ``C`` with header ``H`` that contains ``X``: 248 cycle hierarchy for the same CFG results in a different maximal 253 relation for the given cycle hierarchy". [all …]
|
/llvm-project/lldb/scripts/ |
H A D | analyze-project-deps.py | 136 cycle = cur_path[new_index:] 137 if not is_existing_cycle(cycle, cycles): 138 cycles.append(cycle) 169 for cycle in cycles: 170 cycle.append(cycle[0]) 171 zipper = list(zip(cycle[0:-1], cycle[1:])) 192 for total, smallest, cycle in counted: 194 sys.stdout.write(cycle[0][0]) 195 for first, count, last in cycle: 199 for cycle in cycles: [all …]
|
/llvm-project/mlir/lib/Conversion/PDLToPDLInterp/ |
H A D | RootOrdering.cpp | 29 SmallVector<Value> cycle; in getCycle() local 32 cycle.push_back(node); in getCycle() 36 return cycle; in getCycle() 48 static void contract(RootOrderingGraph &graph, ArrayRef<Value> cycle, in contract() argument 52 Value rep = cycle.front(); in contract() 53 DenseSet<Value> cycleSet(cycle.begin(), cycle.end()); in contract() 170 SmallVector<Value> cycle = getCycle(parents, node); in solve() local 177 contract(graph, cycle, parentDepths, actualSource, actualTarget); in solve() 190 cycle.push_back(node); // complete the cycle in solve() 191 for (size_t i = 0, e = cycle.size() - 1; i < e; ++i) { in solve() [all …]
|
/llvm-project/llvm/test/Transforms/GVNSink/ |
H A D | cycles.ll | 167 ; CHECK: cycle.1: 171 ; CHECK: cycle.2: 177 br i1 %c, label %then, label %cycle.2 181 br label %cycle.1 183 cycle.1: 185 br i1 %cmp, label %exit, label %cycle.2 187 cycle.2: 189 br label %cycle.1 202 ; CHECK: cycle.1: 207 ; CHECK: cycle.2: [all …]
|
/llvm-project/llvm/lib/CodeGen/ |
H A D | ScoreboardHazardRecognizer.cpp | 117 int cycle = Stalls; in getHazardType() local 134 int StageCycle = cycle + (int)i; in getHazardType() 165 cycle += IS->getNextCycles(); in getHazardType() 184 unsigned cycle = 0; in EmitInstruction() local 193 assert(((cycle + i) < RequiredScoreboard.getDepth()) && in EmitInstruction() 200 freeUnits &= ~ReservedScoreboard[cycle + i]; in EmitInstruction() 204 freeUnits &= ~RequiredScoreboard[cycle + i]; in EmitInstruction() 216 RequiredScoreboard[cycle + i] |= freeUnit; in EmitInstruction() 218 ReservedScoreboard[cycle + i] |= freeUnit; in EmitInstruction() 222 cycle += IS->getNextCycles(); in EmitInstruction()
|
/llvm-project/llvm/utils/gn/secondary/lldb/source/Core/ |
H A D | BUILD.gn | 23 #"//lldb/source/Breakpoint", # Dependency cycle. 24 #"//lldb/source/DataFormatters", # Dependency cycle. 25 #"//lldb/source/Expression", # Dependency cycle. 29 #"//lldb/source/Interpreter", # Dependency cycle. 30 #"//lldb/source/Symbol", # Dependency cycle. 31 #"//lldb/source/Target", # Dependency cycle. 37 #"//lldb/source/Plugins/Language/CPlusPlus", # 3-hop dependency cycle. 38 #"//lldb/source/Plugins/Language/ObjC", # Many-hop dependency cycle.
|
/llvm-project/clang/test/SemaObjC/ |
H A D | warn-retain-cycle.m | 12 …]; // expected-warning {{capturing 'x' strongly in this block is likely to lead to a retain cycle}} 14 …}; // expected-warning {{capturing 'x' strongly in this block is likely to lead to a retain cycle}} 17 …]; // expected-warning {{capturing 'x' strongly in this block is likely to lead to a retain cycle}} 30 … // expected-warning {{capturing 'x' strongly in this block is likely to lead to a retain cycle}} \ 47 …x->owner.strong = ^{ (void) x; }; // expected-warning {{retain cycle}} expected-note {{block will … 48 …x.owner.strong = ^{ (void) x; }; // expected-warning {{retain cycle}} expected-note {{block will b… 62 …self.owner.strong = ^{ (void) owner; }; // expected-warning {{retain cycle}} expected-note {{block… 68 …owner.strong = ^{ (void) owner; }; // expected-warning {{retain cycle}} expected-note {{block will… 70 …owner.strong = ^{ ^{ (void) owner; }(); }; // expected-warning {{retain cycle}} expected-note {{bl… 73 …// expected-warning {{capturing 'self' strongly in this block is likely to lead to a retain cycle}} [all …]
|
/llvm-project/llvm/test/MachineVerifier/convergencectrl/AMDGPU/ |
H A D | cycles.mir | 20 ; CHECK: Cycle heart must dominate all blocks in the cycle. 21 ; Irreducible cycle: entries(bb.4 bb.3) 36 ; CHECK: Cycle heart must dominate all blocks in the cycle. 37 ; Reducible cycle: entries(bb.6) bb.7 42 …; CHECK: Two static convergence token uses in a cycle that does not contain either token's definit… 48 …used by an instruction other than llvm.experimental.convergence.loop in a cycle that does not cont…
|
/llvm-project/libc/benchmarks/ |
H A D | LibcBenchmarkTest.cpp | 150 EXPECT_THAT(cycle(array, 0), ElementsAre()); in TEST() 151 EXPECT_THAT(cycle(array, 1), ElementsAre(1)); in TEST() 152 EXPECT_THAT(cycle(array, 2), ElementsAre(1, 2)); in TEST() 153 EXPECT_THAT(cycle(array, 3), ElementsAre(1, 2, 1)); in TEST() 154 EXPECT_THAT(cycle(array, 4), ElementsAre(1, 2, 1, 2)); in TEST() 155 EXPECT_THAT(cycle(array, 5), ElementsAre(1, 2, 1, 2, 1)); in TEST() 172 EXPECT_THAT(cycle(TwoValues, 5), ElementsAre(1, 2, 1, 2, 1)); in TEST()
|
/llvm-project/llvm/test/tools/llvm-readobj/COFF/ |
H A D | codeview-merging-cycle.test | 1 ; RUN: not llvm-readobj --codeview-merged-types %S/Inputs/codeview-cycle.obj 2>&1 | FileCheck %s 5 ; To reproduce codeview-cycle.obj: 6 ; $ cat codeview-cycle.asm 19 ; $ ml -c -Zi codeview-cycle.asm
|
/llvm-project/llvm/utils/gn/secondary/lldb/source/Commands/ |
H A D | BUILD.gn | 18 #"//lldb/source/Breakpoint", # FIXME: many-hop dependency cycle. 22 #"//lldb/source/Expression", # FIXME: 2-hop dependency cycle. 25 #"//lldb/source/Interpreter", # FIXME: Dependency cycle. 26 #"//lldb/source/Symbol", # FIXME: many-hop dependency cycle. 27 #"//lldb/source/Target", # FIXME: 2-hop dependency cycle.
|
/llvm-project/llvm/utils/gn/secondary/lldb/source/DataFormatters/ |
H A D | BUILD.gn | 7 #"//lldb/source/Interpreter", # FIXME: Dependency cycle. 8 #"//lldb/source/Symbol", # FIXME: 3-hop Dependency cycle (DataFormatters->Symbol->Expression->Interpreter->DataFormatters) 9 #"//lldb/source/Target", # FIXME: 3-hop Dependency cycle (DataFormatters->Target->Expression->Interpreter->DataFormatters)
|
/llvm-project/llvm/utils/gn/secondary/lldb/source/Expression/ |
H A D | BUILD.gn | 9 #"//lldb/source/Symbol", # FIXME: Dependency cycle. 10 #"//lldb/source/Target", # FIXME: Dependency cycle. 17 #"//lldb/source/Plugins/Language/CPlusPlus", # 4-hop dependency cycle.
|
/llvm-project/llvm/test/Analysis/UniformityAnalysis/AMDGPU/irreducible/ |
H A D | diverged-entry-headers.ll | 4 ; that affect cycle-info. There is a minor functional difference in 9 ;; The cycle has a header (T) that does not dominate the join, hence 10 ;; the entire cycle is reported as converged. 58 ;; The cycle has a header (P) that dominates the join, hence 59 ;; the cycle is reported as converged.
|
H A D | diverged-entry-headers-nested.ll | 4 ; that affect cycle-info. There is a minor functional difference in 9 ;; The inner cycle has a header (P) that dominates the join, hence 66 ;; Same as previous, but the outer cycle has a different header (A). 67 ;; The inner cycle has a header (P) that dominates the join, hence 124 ;; The inner cycle has a header (T) that does not dominate the join. 125 ;; The outer cycle has a header (B) that dominates the join. Hence 126 ;; only the inner cycle is reported as diverged. 185 ;; Hence the outermost cycle is reported as diverged.
|
H A D | reducible-headers.ll | 24 ; The divergent branch is at Q that exits an irreducible cycle with 25 ; entries T and P nested inside a reducible cycle with header H. R is 28 ; join, making the inner cycle divergent. P is always executed 30 ; by threads that are still executing the inner cycle. Thus, any PHI 112 ; This is a reducible cycle with a divergent branch at T. Disjoint 180 ; This is a reducible cycle with a divergent branch at H2. Disjoint
|
/llvm-project/llvm/docs/AMDGPU/ |
H A D | gfx11_delay.rst | 57 FMA_ACCUM_CYCLE_1 Single cycle penalty for FMA accumulation. 58 SALU_CYCLE_1 1 cycle penalty for a prior SALU instruction. 59 SALU_CYCLE_2 2 cycle penalty for a prior SALU instruction. 60 SALU_CYCLE_3 3 cycle penalty for a prior SALU instruction.
|
/llvm-project/llvm/lib/Target/ARM/ |
H A D | ARMScheduleA8.td | 95 // Result written in E5, but that is relative to the last cycle of multicycle, 124 // FIXME: lsl by 2 takes 1 cycle. 151 // FIXME: A8_LSPipe cycle time is dynamic, this assumes 3 to 4 registers. 229 // FIXME: A8_LSPipe cycle time is dynamic, this assumes 3 to 4 registers. 393 // FIXME: A8_LSPipe cycle time is dynamic, this assumes 3 to 4 registers. 779 // Result written in N5, but that is relative to the last cycle of multicycle, 798 // Result written in N5, but that is relative to the last cycle of multicycle, 820 // Result written in N2, but that is relative to the last cycle of multicycle, 854 // Result written in N2, but that is relative to the last cycle of multicycle, 859 // Quad-register Permute (3 cycle issue) [all …]
|
/llvm-project/llvm/lib/Target/AArch64/ |
H A D | AArch64SchedOryon.td | 288 // b. Link Register Update on pipes 0 and 1 taking 1 cycle 289 // c. Indirect branch on pipe 0 taking 1 cycle 301 // 1 cycle on I012345 304 // 1 cycle on I0123 307 // 1 cycle on 2 of I012345 311 // 2 cycle on 2 of I0123 with ReleaseAtCycles 318 // 2 cycle on 2 of I012345 325 // 3 cycle on 2 of I45 332 // 3 cycle on I45 337 // 7 cycle on I2 32-bit integer division [all …]
|
/llvm-project/llvm/lib/Target/PowerPC/ |
H A D | PPCScheduleP9.td | 161 // Each execution and branch slice can receive up to two iops per cycle 192 // However, the ALU unit is only ever busy for 1 cycle at a time and may 193 // receive new instructions each cycle. 324 // Three cycle permute operations. 331 // Stores are listed as having a single cycle of latency. This is not 332 // completely accurate since it takes more than 1 cycle to actually store 334 // considered complete after one cycle. 384 // 2 or 5 cycle latencies for the branch unit. 393 // 6 cycle latency for the crypto unit
|
/llvm-project/polly/docs/ |
H A D | Architecture.rst | 26 executed in the so-called **Inliner cycle**, This is again a set of **Scalar 31 the inliner cycle, the LLVM inliner step-by-step tries to inline functions, runs 34 optimizations are executed as part of the inliner cycle. Even though they 39 loops completely. Only after the inliner cycle has been finished, a last 53 with the loop optimizations in the inliner cycle. We only discuss the first two 77 cycle has been run and as a result even heavily templated C++ code could
|
/llvm-project/clang-tools-extra/docs/clang-tidy/checks/misc/ |
H A D | header-include-cycle.rst | 1 .. title:: clang-tidy - misc-header-include-cycle 3 misc-header-include-cycle 33 An include cycle occurs when a header file `A` includes header file `B`, 35 resulting in a circular dependency cycle.
|
/llvm-project/clang/test/ARCMT/ |
H A D | rewrite-block-var.m | 14 __block Foo *x = p; // __block used just to break cycle. 38 __block Foo *x = p; // __block used just to break cycle.
|
H A D | rewrite-block-var.m.result | 14 __weak Foo *x = p; // __block used just to break cycle. 38 __weak Foo *x = p; // __block used just to break cycle.
|