OSDN Git Service

[PM] Rewrite the loop pass manager to use a worklist and augmented run
[android-x86/external-llvm.git] / test / Other / loop-pass-ordering.ll
1 ; RUN: opt -disable-output -debug-pass-manager \
2 ; RUN:     -passes='no-op-loop' %s 2>&1 \
3 ; RUN:     | FileCheck %s
4
5 ;            @f()
6 ;           /    \
7 ;       loop.0   loop.1
8 ;      /      \        \
9 ; loop.0.0  loop.0.1  loop.1.0
10 ;
11 ; CHECK: Running pass: NoOpLoopPass on Loop at depth 2 containing: %loop.0.0
12 ; CHECK: Running pass: NoOpLoopPass on Loop at depth 2 containing: %loop.0.1
13 ; CHECK: Running pass: NoOpLoopPass on Loop at depth 1 containing: %loop.0
14 ; CHECK: Running pass: NoOpLoopPass on Loop at depth 2 containing: %loop.1.0
15 ; CHECK: Running pass: NoOpLoopPass on Loop at depth 1 containing: %loop.1
16
17 define void @f() {
18 entry:
19   br label %loop.0
20 loop.0:
21   br i1 undef, label %loop.0.0, label %loop.1
22 loop.0.0:
23   br i1 undef, label %loop.0.0, label %loop.0.1
24 loop.0.1:
25   br i1 undef, label %loop.0.1, label %loop.0
26 loop.1:
27   br i1 undef, label %loop.1, label %loop.1.bb1
28 loop.1.bb1:
29   br i1 undef, label %loop.1, label %loop.1.bb2
30 loop.1.bb2:
31   br i1 undef, label %end, label %loop.1.0
32 loop.1.0:
33   br i1 undef, label %loop.1.0, label %loop.1
34 end:
35   ret void
36 }