xref: /llvm-project/polly/test/ScopDetect/only_func_flag.ll (revision e1f056f692d869708c1898d9d65a69ac5584a0ed)
1; RUN: opt %loadNPMPolly -polly-only-func=f,g '-passes=print<polly-function-scops>' -disable-output < %s 2>&1 | FileCheck %s
2;
3; Check that the flag `-polly-only-func` limits analysis to `f` and `g`.
4;
5; CHECK:      Function: f
6; CHECK-NEXT:    Region: %for.cond---%for.end
7;
8; CHECK:      Function: g
9; CHECK-NEXT:    Region: %for.cond---%for.end
10;
11; CHECK-NOT:      Function: h
12;
13; void f(int* sum) {
14;   for (int i = 0; i <= 100; i++)
15;     sum += i * 3;
16; }
17; void g(int* sum) {
18;   for (int i = 0; i <= 100; i++)
19;     sum += i * 3;
20; }
21; void h(int* sum) {
22;   for (int i = 0; i <= 100; i++)
23;     sum += i * 3;
24; }
25target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-n32-S64"
26
27define void @f(ptr %sum) {
28entry:
29  br label %entry.split1
30
31entry.split1:                                     ; preds = %entry
32  br label %entry.split
33
34entry.split:                                      ; preds = %entry.split1
35  br label %for.cond
36
37for.cond:                                         ; preds = %for.cond, %entry.split
38  %i1.0 = phi i32 [ 0, %entry.split ], [ %inc, %for.cond ]
39  %sum.reload = load i32, ptr %sum
40  %mul = mul nsw i32 %i1.0, 3
41  %add = add nsw i32 %sum.reload, %mul
42  %inc = add nsw i32 %i1.0, 1
43  store i32 %add, ptr %sum
44  %cmp = icmp slt i32 %i1.0, 100
45  br i1 %cmp, label %for.cond, label %for.end
46
47for.end:                                          ; preds = %for.cond
48  ret void
49}
50
51
52define void @g(ptr %sum) {
53entry:
54  br label %entry.split1
55
56entry.split1:                                     ; preds = %entry
57  br label %entry.split
58
59entry.split:                                      ; preds = %entry.split1
60  br label %for.cond
61
62for.cond:                                         ; preds = %for.cond, %entry.split
63  %i1.0 = phi i32 [ 0, %entry.split ], [ %inc, %for.cond ]
64  %sum.reload = load i32, ptr %sum
65  %mul = mul nsw i32 %i1.0, 3
66  %add = add nsw i32 %sum.reload, %mul
67  %inc = add nsw i32 %i1.0, 1
68  store i32 %add, ptr %sum
69  %cmp = icmp slt i32 %i1.0, 100
70  br i1 %cmp, label %for.cond, label %for.end
71
72for.end:                                          ; preds = %for.cond
73  ret void
74}
75
76
77define void @h(ptr %sum) {
78entry:
79  br label %entry.split1
80
81entry.split1:                                     ; preds = %entry
82  br label %entry.split
83
84entry.split:                                      ; preds = %entry.split1
85  br label %for.cond
86
87for.cond:                                         ; preds = %for.cond, %entry.split
88  %i1.0 = phi i32 [ 0, %entry.split ], [ %inc, %for.cond ]
89  %sum.reload = load i32, ptr %sum
90  %mul = mul nsw i32 %i1.0, 3
91  %add = add nsw i32 %sum.reload, %mul
92  %inc = add nsw i32 %i1.0, 1
93  store i32 %add, ptr %sum
94  %cmp = icmp slt i32 %i1.0, 100
95  br i1 %cmp, label %for.cond, label %for.end
96
97for.end:                                          ; preds = %for.cond
98  ret void
99}
100
101