blob: 3fef7a4a5082c84a17e8dab12c14c464b5bb1df2 [file] [log] [blame]
Chandler Carruthf4252922017-02-10 08:26:58 +00001; Test that the loop PM infrastructure is invalidated appropriately.
2;
3; Check that we always nuke the LPM stuff when the loops themselves are
4; invalidated.
5; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
6; RUN: -passes='loop(no-op-loop),invalidate<loops>,loop(no-op-loop)' \
7; RUN: | FileCheck %s --check-prefix=CHECK-LOOP-INV
8;
9; If we ended up building the standard analyses, their invalidation should nuke
10; stuff as well.
11; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
12; RUN: -passes='loop(no-op-loop),invalidate<scalar-evolution>,loop(no-op-loop)' \
13; RUN: | FileCheck %s --check-prefix=CHECK-SCEV-INV
14;
15; Also provide a test that can delete loops after populating analyses for them.
16; RUN: opt -disable-output -disable-verify -debug-pass-manager %s 2>&1 \
17; RUN: -passes='loop(no-op-loop,loop-deletion),invalidate<scalar-evolution>,loop(no-op-loop)' \
18; RUN: | FileCheck %s --check-prefix=CHECK-SCEV-INV-AFTER-DELETE
19
20define void @no_loops() {
Yuanfang Chen555cf422020-07-28 17:08:24 -070021; CHECK-LOOP-INV: Starting {{.*}}Function pass manager run
Fedor Sergeev02e7f022017-12-29 08:16:06 +000022; CHECK-LOOP-INV-NEXT: Starting {{.*}}Function pass manager run
23; CHECK-LOOP-INV-NEXT: Running pass: LoopSimplifyPass
Chandler Carruthf4252922017-02-10 08:26:58 +000024; CHECK-LOOP-INV-NEXT: Running analysis: LoopAnalysis
25; CHECK-LOOP-INV-NEXT: Running analysis: DominatorTreeAnalysis
26; CHECK-LOOP-INV-NEXT: Running analysis: AssumptionAnalysis
Fedor Sergeev02e7f022017-12-29 08:16:06 +000027; CHECK-LOOP-INV-NEXT: Running pass: LCSSAPass
28; CHECK-LOOP-INV-NEXT: Finished {{.*}}Function pass manager run
Chandler Carruthf4252922017-02-10 08:26:58 +000029; CHECK-LOOP-INV-NEXT: Running pass: InvalidateAnalysisPass<{{.*}}LoopAnalysis
30; CHECK-LOOP-INV-NEXT: Invalidating all non-preserved analyses
31; CHECK-LOOP-INV-NEXT: Invalidating analysis: LoopAnalysis
Fedor Sergeev02e7f022017-12-29 08:16:06 +000032; CHECK-LOOP-INV-NEXT: Starting {{.*}}Function pass manager run
33; CHECK-LOOP-INV-NEXT: Running pass: LoopSimplifyPass
Chandler Carruthf4252922017-02-10 08:26:58 +000034; CHECK-LOOP-INV-NEXT: Running analysis: LoopAnalysis
Fedor Sergeev02e7f022017-12-29 08:16:06 +000035; CHECK-LOOP-INV-NEXT: Running pass: LCSSAPass
36; CHECK-LOOP-INV-NEXT: Finished {{.*}}Function pass manager run
Chandler Carruthf4252922017-02-10 08:26:58 +000037; CHECK-LOOP-INV-NEXT: Finished {{.*}}Function pass manager run.
38;
Yuanfang Chen555cf422020-07-28 17:08:24 -070039; CHECK-SCEV-INV: Starting {{.*}}Function pass manager run
Fedor Sergeev02e7f022017-12-29 08:16:06 +000040; CHECK-SCEV-INV-NEXT: Starting {{.*}}Function pass manager run
41; CHECK-SCEV-INV-NEXT: Running pass: LoopSimplifyPass
Chandler Carruthf4252922017-02-10 08:26:58 +000042; CHECK-SCEV-INV-NEXT: Running analysis: LoopAnalysis
43; CHECK-SCEV-INV-NEXT: Running analysis: DominatorTreeAnalysis
44; CHECK-SCEV-INV-NEXT: Running analysis: AssumptionAnalysis
Fedor Sergeev02e7f022017-12-29 08:16:06 +000045; CHECK-SCEV-INV-NEXT: Running pass: LCSSAPass
46; CHECK-SCEV-INV-NEXT: Finished {{.*}}Function pass manager run
Chandler Carruthf4252922017-02-10 08:26:58 +000047; CHECK-SCEV-INV-NEXT: Running pass: InvalidateAnalysisPass<{{.*}}ScalarEvolutionAnalysis
48; CHECK-SCEV-INV-NEXT: Invalidating all non-preserved analyses
Fedor Sergeev02e7f022017-12-29 08:16:06 +000049; CHECK-SCEV-INV-NEXT: Starting {{.*}}Function pass manager run
50; CHECK-SCEV-INV-NEXT: Running pass: LoopSimplifyPass
51; CHECK-SCEV-INV-NEXT: Running pass: LCSSAPass
52; CHECK-SCEV-INV-NEXT: Finished {{.*}}Function pass manager run
Chandler Carruthf4252922017-02-10 08:26:58 +000053; CHECK-SCEV-INV-NEXT: Finished {{.*}}Function pass manager run.
54
55entry:
56 ret void
57}
58
59define void @one_loop(i1* %ptr) {
Yuanfang Chen555cf422020-07-28 17:08:24 -070060; CHECK-LOOP-INV: Starting {{.*}}Function pass manager run
Fedor Sergeev02e7f022017-12-29 08:16:06 +000061; CHECK-LOOP-INV-NEXT: Starting {{.*}}Function pass manager run
62; CHECK-LOOP-INV-NEXT: Running pass: LoopSimplifyPass
Chandler Carruthf4252922017-02-10 08:26:58 +000063; CHECK-LOOP-INV-NEXT: Running analysis: LoopAnalysis
64; CHECK-LOOP-INV-NEXT: Running analysis: DominatorTreeAnalysis
65; CHECK-LOOP-INV-NEXT: Running analysis: AssumptionAnalysis
Fedor Sergeev02e7f022017-12-29 08:16:06 +000066; CHECK-LOOP-INV-NEXT: Running pass: LCSSAPass
67; CHECK-LOOP-INV-NEXT: Finished {{.*}}Function pass manager run
Chandler Carruthf4252922017-02-10 08:26:58 +000068; CHECK-LOOP-INV-NEXT: Running analysis: AAManager
69; CHECK-LOOP-INV-NEXT: Running analysis: TargetLibraryAnalysis
70; CHECK-LOOP-INV-NEXT: Running analysis: ScalarEvolutionAnalysis
71; CHECK-LOOP-INV-NEXT: Running analysis: TargetIRAnalysis
Chandler Carruth7bc60282017-02-10 08:48:50 +000072; CHECK-LOOP-INV-NEXT: Running analysis: InnerAnalysisManagerProxy<{{.*}}Loop
Chandler Carruthf4252922017-02-10 08:26:58 +000073; CHECK-LOOP-INV-NEXT: Starting {{.*}}Loop pass manager run.
74; CHECK-LOOP-INV-NEXT: Running pass: NoOpLoopPass
75; CHECK-LOOP-INV-NEXT: Finished {{.*}}Loop pass manager run.
76; CHECK-LOOP-INV-NEXT: Running pass: InvalidateAnalysisPass<{{.*}}LoopAnalysis
77; CHECK-LOOP-INV-NEXT: Invalidating all non-preserved analyses
Sanjoy Das005b88c2017-10-04 22:02:27 +000078; CHECK-LOOP-INV-NEXT: Clearing all analysis results for: <possibly invalidated loop>
Chandler Carruthf4252922017-02-10 08:26:58 +000079; CHECK-LOOP-INV-NEXT: Invalidating analysis: LoopAnalysis
80; CHECK-LOOP-INV-NEXT: Invalidating analysis: ScalarEvolutionAnalysis
Chandler Carruth7bc60282017-02-10 08:48:50 +000081; CHECK-LOOP-INV-NEXT: Invalidating analysis: InnerAnalysisManagerProxy<{{.*}}Loop
Fedor Sergeev02e7f022017-12-29 08:16:06 +000082; CHECK-LOOP-INV-NEXT: Starting {{.*}}Function pass manager run
83; CHECK-LOOP-INV-NEXT: Running pass: LoopSimplifyPass
Chandler Carruthf4252922017-02-10 08:26:58 +000084; CHECK-LOOP-INV-NEXT: Running analysis: LoopAnalysis
Fedor Sergeev02e7f022017-12-29 08:16:06 +000085; CHECK-LOOP-INV-NEXT: Running pass: LCSSAPass
86; CHECK-LOOP-INV-NEXT: Finished {{.*}}Function pass manager run
Chandler Carruthf4252922017-02-10 08:26:58 +000087; CHECK-LOOP-INV-NEXT: Running analysis: ScalarEvolutionAnalysis
Chandler Carruth7bc60282017-02-10 08:48:50 +000088; CHECK-LOOP-INV-NEXT: Running analysis: InnerAnalysisManagerProxy<{{.*}}Loop
Chandler Carruthf4252922017-02-10 08:26:58 +000089; CHECK-LOOP-INV-NEXT: Starting {{.*}}Loop pass manager run.
90; CHECK-LOOP-INV-NEXT: Running pass: NoOpLoopPass
91; CHECK-LOOP-INV-NEXT: Finished {{.*}}Loop pass manager run.
92; CHECK-LOOP-INV-NEXT: Finished {{.*}}Function pass manager run.
93;
Yuanfang Chen555cf422020-07-28 17:08:24 -070094; CHECK-SCEV-INV: Starting {{.*}}Function pass manager run
Fedor Sergeev02e7f022017-12-29 08:16:06 +000095; CHECK-SCEV-INV-NEXT: Starting {{.*}}Function pass manager run
96; CHECK-SCEV-INV-NEXT: Running pass: LoopSimplifyPass
Chandler Carruthf4252922017-02-10 08:26:58 +000097; CHECK-SCEV-INV-NEXT: Running analysis: LoopAnalysis
98; CHECK-SCEV-INV-NEXT: Running analysis: DominatorTreeAnalysis
99; CHECK-SCEV-INV-NEXT: Running analysis: AssumptionAnalysis
Fedor Sergeev02e7f022017-12-29 08:16:06 +0000100; CHECK-SCEV-INV-NEXT: Running pass: LCSSAPass
101; CHECK-SCEV-INV-NEXT: Finished {{.*}}Function pass manager run
Chandler Carruthf4252922017-02-10 08:26:58 +0000102; CHECK-SCEV-INV-NEXT: Running analysis: AAManager
103; CHECK-SCEV-INV-NEXT: Running analysis: TargetLibraryAnalysis
104; CHECK-SCEV-INV-NEXT: Running analysis: ScalarEvolutionAnalysis
105; CHECK-SCEV-INV-NEXT: Running analysis: TargetIRAnalysis
Chandler Carruth7bc60282017-02-10 08:48:50 +0000106; CHECK-SCEV-INV-NEXT: Running analysis: InnerAnalysisManagerProxy<{{.*}}Loop
Chandler Carruthf4252922017-02-10 08:26:58 +0000107; CHECK-SCEV-INV-NEXT: Starting {{.*}}Loop pass manager run.
108; CHECK-SCEV-INV-NEXT: Running pass: NoOpLoopPass
109; CHECK-SCEV-INV-NEXT: Finished {{.*}}Loop pass manager run.
110; CHECK-SCEV-INV-NEXT: Running pass: InvalidateAnalysisPass<{{.*}}ScalarEvolutionAnalysis
111; CHECK-SCEV-INV-NEXT: Invalidating all non-preserved analyses
Sanjoy Das005b88c2017-10-04 22:02:27 +0000112; CHECK-SCEV-INV-NEXT: Clearing all analysis results for: <possibly invalidated loop>
Chandler Carruthf4252922017-02-10 08:26:58 +0000113; CHECK-SCEV-INV-NEXT: Invalidating analysis: ScalarEvolutionAnalysis
Chandler Carruth7bc60282017-02-10 08:48:50 +0000114; CHECK-SCEV-INV-NEXT: Invalidating analysis: InnerAnalysisManagerProxy<{{.*}}Loop
Fedor Sergeev02e7f022017-12-29 08:16:06 +0000115; CHECK-SCEV-INV-NEXT: Starting {{.*}}Function pass manager run
116; CHECK-SCEV-INV-NEXT: Running pass: LoopSimplifyPass
117; CHECK-SCEV-INV-NEXT: Running pass: LCSSAPass
118; CHECK-SCEV-INV-NEXT: Finished {{.*}}Function pass manager run
Chandler Carruthf4252922017-02-10 08:26:58 +0000119; CHECK-SCEV-INV-NEXT: Running analysis: ScalarEvolutionAnalysis
Chandler Carruth7bc60282017-02-10 08:48:50 +0000120; CHECK-SCEV-INV-NEXT: Running analysis: InnerAnalysisManagerProxy<{{.*}}Loop
Chandler Carruthf4252922017-02-10 08:26:58 +0000121; CHECK-SCEV-INV-NEXT: Starting {{.*}}Loop pass manager run.
122; CHECK-SCEV-INV-NEXT: Running pass: NoOpLoopPass
123; CHECK-SCEV-INV-NEXT: Finished {{.*}}Loop pass manager run.
124; CHECK-SCEV-INV-NEXT: Finished {{.*}}Function pass manager run.
125
126entry:
127 br label %l0.header
128
129l0.header:
130 %flag0 = load volatile i1, i1* %ptr
131 br i1 %flag0, label %l0.header, label %exit
132
133exit:
134 ret void
135}
136
137define void @nested_loops(i1* %ptr) {
Yuanfang Chen555cf422020-07-28 17:08:24 -0700138; CHECK-LOOP-INV: Starting {{.*}}Function pass manager run
Fedor Sergeev02e7f022017-12-29 08:16:06 +0000139; CHECK-LOOP-INV-NEXT: Starting {{.*}}Function pass manager run
140; CHECK-LOOP-INV-NEXT: Running pass: LoopSimplifyPass
Chandler Carruthf4252922017-02-10 08:26:58 +0000141; CHECK-LOOP-INV-NEXT: Running analysis: LoopAnalysis
142; CHECK-LOOP-INV-NEXT: Running analysis: DominatorTreeAnalysis
143; CHECK-LOOP-INV-NEXT: Running analysis: AssumptionAnalysis
Fedor Sergeev02e7f022017-12-29 08:16:06 +0000144; CHECK-LOOP-INV-NEXT: Running pass: LCSSAPass
145; CHECK-LOOP-INV-NEXT: Finished {{.*}}Function pass manager run
Chandler Carruthf4252922017-02-10 08:26:58 +0000146; CHECK-LOOP-INV-NEXT: Running analysis: AAManager
147; CHECK-LOOP-INV-NEXT: Running analysis: TargetLibraryAnalysis
148; CHECK-LOOP-INV-NEXT: Running analysis: ScalarEvolutionAnalysis
149; CHECK-LOOP-INV-NEXT: Running analysis: TargetIRAnalysis
Chandler Carruth7bc60282017-02-10 08:48:50 +0000150; CHECK-LOOP-INV-NEXT: Running analysis: InnerAnalysisManagerProxy<{{.*}}Loop
Chandler Carruthf4252922017-02-10 08:26:58 +0000151; CHECK-LOOP-INV-NEXT: Starting {{.*}}Loop pass manager run.
152; CHECK-LOOP-INV-NEXT: Running pass: NoOpLoopPass
153; CHECK-LOOP-INV-NEXT: Finished {{.*}}Loop pass manager run.
154; CHECK-LOOP-INV-NEXT: Starting {{.*}}Loop pass manager run.
155; CHECK-LOOP-INV-NEXT: Running pass: NoOpLoopPass
156; CHECK-LOOP-INV: Finished {{.*}}Loop pass manager run.
157; CHECK-LOOP-INV-NEXT: Running pass: InvalidateAnalysisPass<{{.*}}LoopAnalysis
158; CHECK-LOOP-INV-NEXT: Invalidating all non-preserved analyses
Sanjoy Das005b88c2017-10-04 22:02:27 +0000159; CHECK-LOOP-INV-NEXT: Clearing all analysis results for: <possibly invalidated loop>
160; CHECK-LOOP-INV-NEXT: Clearing all analysis results for: <possibly invalidated loop>
Chandler Carruthf4252922017-02-10 08:26:58 +0000161; CHECK-LOOP-INV-NEXT: Invalidating analysis: LoopAnalysis
162; CHECK-LOOP-INV-NEXT: Invalidating analysis: ScalarEvolutionAnalysis
Chandler Carruth7bc60282017-02-10 08:48:50 +0000163; CHECK-LOOP-INV-NEXT: Invalidating analysis: InnerAnalysisManagerProxy<{{.*}}Loop
Fedor Sergeev02e7f022017-12-29 08:16:06 +0000164; CHECK-LOOP-INV-NEXT: Starting {{.*}}Function pass manager run
165; CHECK-LOOP-INV-NEXT: Running pass: LoopSimplifyPass
Chandler Carruthf4252922017-02-10 08:26:58 +0000166; CHECK-LOOP-INV-NEXT: Running analysis: LoopAnalysis
Fedor Sergeev02e7f022017-12-29 08:16:06 +0000167; CHECK-LOOP-INV-NEXT: Running pass: LCSSAPass
168; CHECK-LOOP-INV-NEXT: Finished {{.*}}Function pass manager run
Chandler Carruthf4252922017-02-10 08:26:58 +0000169; CHECK-LOOP-INV-NEXT: Running analysis: ScalarEvolutionAnalysis
Chandler Carruth7bc60282017-02-10 08:48:50 +0000170; CHECK-LOOP-INV-NEXT: Running analysis: InnerAnalysisManagerProxy<{{.*}}Loop
Chandler Carruthf4252922017-02-10 08:26:58 +0000171; CHECK-LOOP-INV-NEXT: Starting {{.*}}Loop pass manager run.
172; CHECK-LOOP-INV-NEXT: Running pass: NoOpLoopPass
173; CHECK-LOOP-INV-NEXT: Finished {{.*}}Loop pass manager run.
174; CHECK-LOOP-INV-NEXT: Starting {{.*}}Loop pass manager run.
175; CHECK-LOOP-INV-NEXT: Running pass: NoOpLoopPass
176; CHECK-LOOP-INV: Finished {{.*}}Loop pass manager run.
177; CHECK-LOOP-INV-NEXT: Finished {{.*}}Function pass manager run.
178;
Yuanfang Chen555cf422020-07-28 17:08:24 -0700179; CHECK-SCEV-INV: Starting {{.*}}Function pass manager run
Fedor Sergeev02e7f022017-12-29 08:16:06 +0000180; CHECK-SCEV-INV-NEXT: Starting {{.*}}Function pass manager run
181; CHECK-SCEV-INV-NEXT: Running pass: LoopSimplifyPass
Chandler Carruthf4252922017-02-10 08:26:58 +0000182; CHECK-SCEV-INV-NEXT: Running analysis: LoopAnalysis
183; CHECK-SCEV-INV-NEXT: Running analysis: DominatorTreeAnalysis
184; CHECK-SCEV-INV-NEXT: Running analysis: AssumptionAnalysis
Fedor Sergeev02e7f022017-12-29 08:16:06 +0000185; CHECK-SCEV-INV-NEXT: Running pass: LCSSAPass
186; CHECK-SCEV-INV-NEXT: Finished {{.*}}Function pass manager run
Chandler Carruthf4252922017-02-10 08:26:58 +0000187; CHECK-SCEV-INV-NEXT: Running analysis: AAManager
188; CHECK-SCEV-INV-NEXT: Running analysis: TargetLibraryAnalysis
189; CHECK-SCEV-INV-NEXT: Running analysis: ScalarEvolutionAnalysis
190; CHECK-SCEV-INV-NEXT: Running analysis: TargetIRAnalysis
Chandler Carruth7bc60282017-02-10 08:48:50 +0000191; CHECK-SCEV-INV-NEXT: Running analysis: InnerAnalysisManagerProxy<{{.*}}Loop
Chandler Carruthf4252922017-02-10 08:26:58 +0000192; CHECK-SCEV-INV-NEXT: Starting {{.*}}Loop pass manager run.
193; CHECK-SCEV-INV-NEXT: Running pass: NoOpLoopPass
194; CHECK-SCEV-INV-NEXT: Finished {{.*}}Loop pass manager run.
195; CHECK-SCEV-INV-NEXT: Starting {{.*}}Loop pass manager run.
196; CHECK-SCEV-INV-NEXT: Running pass: NoOpLoopPass
197; CHECK-SCEV-INV: Finished {{.*}}Loop pass manager run.
198; CHECK-SCEV-INV-NEXT: Running pass: InvalidateAnalysisPass<{{.*}}ScalarEvolutionAnalysis
199; CHECK-SCEV-INV-NEXT: Invalidating all non-preserved analyses
Sanjoy Das005b88c2017-10-04 22:02:27 +0000200; CHECK-SCEV-INV-NEXT: Clearing all analysis results for: <possibly invalidated loop>
201; CHECK-SCEV-INV-NEXT: Clearing all analysis results for: <possibly invalidated loop>
Chandler Carruthf4252922017-02-10 08:26:58 +0000202; CHECK-SCEV-INV-NEXT: Invalidating analysis: ScalarEvolutionAnalysis
Chandler Carruth7bc60282017-02-10 08:48:50 +0000203; CHECK-SCEV-INV-NEXT: Invalidating analysis: InnerAnalysisManagerProxy<{{.*}}Loop
Fedor Sergeev02e7f022017-12-29 08:16:06 +0000204; CHECK-SCEV-INV-NEXT: Starting {{.*}}Function pass manager run
205; CHECK-SCEV-INV-NEXT: Running pass: LoopSimplifyPass
206; CHECK-SCEV-INV-NEXT: Running pass: LCSSAPass
207; CHECK-SCEV-INV-NEXT: Finished {{.*}}Function pass manager run
Chandler Carruthf4252922017-02-10 08:26:58 +0000208; CHECK-SCEV-INV-NEXT: Running analysis: ScalarEvolutionAnalysis
Chandler Carruth7bc60282017-02-10 08:48:50 +0000209; CHECK-SCEV-INV-NEXT: Running analysis: InnerAnalysisManagerProxy<{{.*}}Loop
Chandler Carruthf4252922017-02-10 08:26:58 +0000210; CHECK-SCEV-INV-NEXT: Starting {{.*}}Loop pass manager run.
211; CHECK-SCEV-INV-NEXT: Running pass: NoOpLoopPass
212; CHECK-SCEV-INV-NEXT: Finished {{.*}}Loop pass manager run.
213; CHECK-SCEV-INV-NEXT: Starting {{.*}}Loop pass manager run.
214; CHECK-SCEV-INV-NEXT: Running pass: NoOpLoopPass
215; CHECK-SCEV-INV: Finished {{.*}}Loop pass manager run.
216; CHECK-SCEV-INV-NEXT: Finished {{.*}}Function pass manager run.
217
218entry:
219 br label %l.0.header
220
221l.0.header:
222 br label %l.0.0.header
223
224l.0.0.header:
225 %flag.0.0 = load volatile i1, i1* %ptr
226 br i1 %flag.0.0, label %l.0.0.header, label %l.0.latch
227
228l.0.latch:
229 %flag.0 = load volatile i1, i1* %ptr
230 br i1 %flag.0, label %l.0.header, label %exit
231
232exit:
233 ret void
234}
235
236define void @dead_loop() {
Yuanfang Chen555cf422020-07-28 17:08:24 -0700237; CHECK-LOOP-INV: Starting {{.*}}Function pass manager run
Fedor Sergeev02e7f022017-12-29 08:16:06 +0000238; CHECK-LOOP-INV-NEXT: Starting {{.*}}Function pass manager run
239; CHECK-LOOP-INV-NEXT: Running pass: LoopSimplifyPass
Chandler Carruthf4252922017-02-10 08:26:58 +0000240; CHECK-LOOP-INV-NEXT: Running analysis: LoopAnalysis
241; CHECK-LOOP-INV-NEXT: Running analysis: DominatorTreeAnalysis
242; CHECK-LOOP-INV-NEXT: Running analysis: AssumptionAnalysis
Fedor Sergeev02e7f022017-12-29 08:16:06 +0000243; CHECK-LOOP-INV-NEXT: Running pass: LCSSAPass
244; CHECK-LOOP-INV-NEXT: Finished {{.*}}Function pass manager run
Chandler Carruthf4252922017-02-10 08:26:58 +0000245; CHECK-LOOP-INV-NEXT: Running analysis: AAManager
246; CHECK-LOOP-INV-NEXT: Running analysis: TargetLibraryAnalysis
247; CHECK-LOOP-INV-NEXT: Running analysis: ScalarEvolutionAnalysis
248; CHECK-LOOP-INV-NEXT: Running analysis: TargetIRAnalysis
Chandler Carruth7bc60282017-02-10 08:48:50 +0000249; CHECK-LOOP-INV-NEXT: Running analysis: InnerAnalysisManagerProxy<{{.*}}Loop
Chandler Carruthf4252922017-02-10 08:26:58 +0000250; CHECK-LOOP-INV-NEXT: Starting {{.*}}Loop pass manager run.
251; CHECK-LOOP-INV-NEXT: Running pass: NoOpLoopPass
252; CHECK-LOOP-INV-NEXT: Finished {{.*}}Loop pass manager run.
253; CHECK-LOOP-INV-NEXT: Running pass: InvalidateAnalysisPass<{{.*}}LoopAnalysis
254; CHECK-LOOP-INV-NEXT: Invalidating all non-preserved analyses
Sanjoy Das005b88c2017-10-04 22:02:27 +0000255; CHECK-LOOP-INV-NEXT: Clearing all analysis results for: <possibly invalidated loop>
Chandler Carruthf4252922017-02-10 08:26:58 +0000256; CHECK-LOOP-INV-NEXT: Invalidating analysis: LoopAnalysis
257; CHECK-LOOP-INV-NEXT: Invalidating analysis: ScalarEvolutionAnalysis
Chandler Carruth7bc60282017-02-10 08:48:50 +0000258; CHECK-LOOP-INV-NEXT: Invalidating analysis: InnerAnalysisManagerProxy<{{.*}}Loop
Fedor Sergeev02e7f022017-12-29 08:16:06 +0000259; CHECK-LOOP-INV-NEXT: Starting {{.*}}Function pass manager run
260; CHECK-LOOP-INV-NEXT: Running pass: LoopSimplifyPass
Chandler Carruthf4252922017-02-10 08:26:58 +0000261; CHECK-LOOP-INV-NEXT: Running analysis: LoopAnalysis
Fedor Sergeev02e7f022017-12-29 08:16:06 +0000262; CHECK-LOOP-INV-NEXT: Running pass: LCSSAPass
263; CHECK-LOOP-INV-NEXT: Finished {{.*}}Function pass manager run
Chandler Carruthf4252922017-02-10 08:26:58 +0000264; CHECK-LOOP-INV-NEXT: Running analysis: ScalarEvolutionAnalysis
Chandler Carruth7bc60282017-02-10 08:48:50 +0000265; CHECK-LOOP-INV-NEXT: Running analysis: InnerAnalysisManagerProxy<{{.*}}Loop
Chandler Carruthf4252922017-02-10 08:26:58 +0000266; CHECK-LOOP-INV-NEXT: Starting {{.*}}Loop pass manager run.
267; CHECK-LOOP-INV-NEXT: Running pass: NoOpLoopPass
268; CHECK-LOOP-INV-NEXT: Finished {{.*}}Loop pass manager run.
269; CHECK-LOOP-INV-NEXT: Finished {{.*}}Function pass manager run.
270;
Yuanfang Chen555cf422020-07-28 17:08:24 -0700271; CHECK-SCEV-INV: Starting {{.*}}Function pass manager run
Fedor Sergeev02e7f022017-12-29 08:16:06 +0000272; CHECK-SCEV-INV-NEXT: Starting {{.*}}Function pass manager run
273; CHECK-SCEV-INV-NEXT: Running pass: LoopSimplifyPass
Chandler Carruthf4252922017-02-10 08:26:58 +0000274; CHECK-SCEV-INV-NEXT: Running analysis: LoopAnalysis
275; CHECK-SCEV-INV-NEXT: Running analysis: DominatorTreeAnalysis
276; CHECK-SCEV-INV-NEXT: Running analysis: AssumptionAnalysis
Fedor Sergeev02e7f022017-12-29 08:16:06 +0000277; CHECK-SCEV-INV-NEXT: Running pass: LCSSAPass
278; CHECK-SCEV-INV-NEXT: Finished {{.*}}Function pass manager run
Chandler Carruthf4252922017-02-10 08:26:58 +0000279; CHECK-SCEV-INV-NEXT: Running analysis: AAManager
280; CHECK-SCEV-INV-NEXT: Running analysis: TargetLibraryAnalysis
281; CHECK-SCEV-INV-NEXT: Running analysis: ScalarEvolutionAnalysis
282; CHECK-SCEV-INV-NEXT: Running analysis: TargetIRAnalysis
Chandler Carruth7bc60282017-02-10 08:48:50 +0000283; CHECK-SCEV-INV-NEXT: Running analysis: InnerAnalysisManagerProxy<{{.*}}Loop
Chandler Carruthf4252922017-02-10 08:26:58 +0000284; CHECK-SCEV-INV-NEXT: Starting {{.*}}Loop pass manager run.
285; CHECK-SCEV-INV-NEXT: Running pass: NoOpLoopPass
286; CHECK-SCEV-INV-NEXT: Finished {{.*}}Loop pass manager run.
287; CHECK-SCEV-INV-NEXT: Running pass: InvalidateAnalysisPass<{{.*}}ScalarEvolutionAnalysis
288; CHECK-SCEV-INV-NEXT: Invalidating all non-preserved analyses
Sanjoy Das005b88c2017-10-04 22:02:27 +0000289; CHECK-SCEV-INV-NEXT: Clearing all analysis results for: <possibly invalidated loop>
Chandler Carruthf4252922017-02-10 08:26:58 +0000290; CHECK-SCEV-INV-NEXT: Invalidating analysis: ScalarEvolutionAnalysis
Chandler Carruth7bc60282017-02-10 08:48:50 +0000291; CHECK-SCEV-INV-NEXT: Invalidating analysis: InnerAnalysisManagerProxy<{{.*}}Loop
Fedor Sergeev02e7f022017-12-29 08:16:06 +0000292; CHECK-SCEV-INV-NEXT: Starting {{.*}}Function pass manager run
293; CHECK-SCEV-INV-NEXT: Running pass: LoopSimplifyPass
294; CHECK-SCEV-INV-NEXT: Running pass: LCSSAPass
295; CHECK-SCEV-INV-NEXT: Finished {{.*}}Function pass manager run
Chandler Carruthf4252922017-02-10 08:26:58 +0000296; CHECK-SCEV-INV-NEXT: Running analysis: ScalarEvolutionAnalysis
Chandler Carruth7bc60282017-02-10 08:48:50 +0000297; CHECK-SCEV-INV-NEXT: Running analysis: InnerAnalysisManagerProxy<{{.*}}Loop
Chandler Carruthf4252922017-02-10 08:26:58 +0000298; CHECK-SCEV-INV-NEXT: Starting {{.*}}Loop pass manager run.
299; CHECK-SCEV-INV-NEXT: Running pass: NoOpLoopPass
300; CHECK-SCEV-INV-NEXT: Finished {{.*}}Loop pass manager run.
301; CHECK-SCEV-INV-NEXT: Finished {{.*}}Function pass manager run.
302;
Yuanfang Chen555cf422020-07-28 17:08:24 -0700303; CHECK-SCEV-INV-AFTER-DELETE-LABEL: Running pass: LoopSimplifyPass on dead_loop
Chandler Carruthf4252922017-02-10 08:26:58 +0000304; CHECK-SCEV-INV-AFTER-DELETE-NEXT: Running analysis: LoopAnalysis
305; CHECK-SCEV-INV-AFTER-DELETE-NEXT: Running analysis: DominatorTreeAnalysis
306; CHECK-SCEV-INV-AFTER-DELETE-NEXT: Running analysis: AssumptionAnalysis
Fedor Sergeev02e7f022017-12-29 08:16:06 +0000307; CHECK-SCEV-INV-AFTER-DELETE-NEXT: Running pass: LCSSAPass
308; CHECK-SCEV-INV-AFTER-DELETE-NEXT: Finished {{.*}}Function pass manager run
Chandler Carruthf4252922017-02-10 08:26:58 +0000309; CHECK-SCEV-INV-AFTER-DELETE-NEXT: Running analysis: AAManager
310; CHECK-SCEV-INV-AFTER-DELETE-NEXT: Running analysis: TargetLibraryAnalysis
311; CHECK-SCEV-INV-AFTER-DELETE-NEXT: Running analysis: ScalarEvolutionAnalysis
312; CHECK-SCEV-INV-AFTER-DELETE-NEXT: Running analysis: TargetIRAnalysis
Chandler Carruth7bc60282017-02-10 08:48:50 +0000313; CHECK-SCEV-INV-AFTER-DELETE-NEXT: Running analysis: InnerAnalysisManagerProxy<{{.*}}Loop
Chandler Carruthf4252922017-02-10 08:26:58 +0000314; CHECK-SCEV-INV-AFTER-DELETE-NEXT: Starting {{.*}}Loop pass manager run.
315; CHECK-SCEV-INV-AFTER-DELETE-NEXT: Running pass: NoOpLoopPass
316; CHECK-SCEV-INV-AFTER-DELETE-NEXT: Running pass: LoopDeletionPass
317; CHECK-SCEV-INV-AFTER-DELETE-NEXT: Clearing all analysis results for:
318; CHECK-SCEV-INV-AFTER-DELETE-NEXT: Finished {{.*}}Loop pass manager run.
319; CHECK-SCEV-INV-AFTER-DELETE-NEXT: Invalidating all non-preserved analyses
320; CHECK-SCEV-INV-AFTER-DELETE-NEXT: Running pass: InvalidateAnalysisPass<{{.*}}ScalarEvolutionAnalysis
321; CHECK-SCEV-INV-AFTER-DELETE-NEXT: Invalidating all non-preserved analyses
322; CHECK-SCEV-INV-AFTER-DELETE-NEXT: Invalidating analysis: ScalarEvolutionAnalysis
Chandler Carruth7bc60282017-02-10 08:48:50 +0000323; CHECK-SCEV-INV-AFTER-DELETE-NEXT: Invalidating analysis: InnerAnalysisManagerProxy<{{.*}}Loop
Fedor Sergeev02e7f022017-12-29 08:16:06 +0000324; CHECK-SCEV-INV-AFTER-DELETE-NEXT: Starting {{.*}}Function pass manager run
325; CHECK-SCEV-INV-AFTER-DELETE-NEXT: Running pass: LoopSimplifyPass
326; CHECK-SCEV-INV-AFTER-DELETE-NEXT: Running pass: LCSSAPass
327; CHECK-SCEV-INV-AFTER-DELETE-NEXT: Finished {{.*}}Function pass manager run
Chandler Carruthf4252922017-02-10 08:26:58 +0000328; CHECK-SCEV-INV-AFTER-DELETE-NEXT: Finished {{.*}}Function pass manager run.
329
330entry:
331 br label %l0.header
332
333l0.header:
334 br i1 false, label %l0.header, label %exit
335
336exit:
337 ret void
338}