annotate polly/test/Support/dumpfunction.ll @ 252:1f2b6ac9f198 llvm-original

LLVM16-1
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 18 Aug 2023 09:04:13 +0900
parents c4bab56944e8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
236
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
1 ; New pass manager
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
2 ; RUN: opt %loadNPMPolly -O3 -polly -polly-position=before-vectorizer -polly-dump-before --disable-output %s
236
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
3 ; RUN: FileCheck --input-file=dumpfunction-callee-before.ll --check-prefix=CHECK --check-prefix=CALLEE %s
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
4 ; RUN: FileCheck --input-file=dumpfunction-caller-before.ll --check-prefix=CHECK --check-prefix=CALLER %s
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
5 ;
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
6 ; RUN: opt %loadNPMPolly -O3 -polly -polly-position=before-vectorizer -polly-dump-after --disable-output %s
236
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
7 ; RUN: FileCheck --input-file=dumpfunction-callee-after.ll --check-prefix=CHECK --check-prefix=CALLEE %s
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
8 ; RUN: FileCheck --input-file=dumpfunction-caller-after.ll --check-prefix=CHECK --check-prefix=CALLER %s
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
9
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
10 ; void callee(int n, double A[], int i) {
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
11 ; for (int j = 0; j < n; j += 1)
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
12 ; A[i+j] = 42.0;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
13 ; }
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
14 ;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
15 ; void caller(int n, double A[]) {
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
16 ; for (int i = 0; i < n; i += 1)
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
17 ; callee(n, A, i);
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
18 ; }
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
19
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
20
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
21 %unrelated_type = type { i32 }
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
22
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
23 define internal void @callee(i32 %n, ptr noalias nonnull %A, i32 %i) #0 {
236
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
24 entry:
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
25 br label %for
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
26
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
27 for:
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
28 %j = phi i32 [0, %entry], [%j.inc, %inc]
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
29 %j.cmp = icmp slt i32 %j, %n
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
30 br i1 %j.cmp, label %body, label %exit
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
31
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
32 body:
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
33 %idx = add i32 %i, %j
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
34 %arrayidx = getelementptr inbounds double, ptr %A, i32 %idx
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
35 store double 42.0, ptr %arrayidx
236
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
36 br label %inc
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
37
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
38 inc:
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
39 %j.inc = add nuw nsw i32 %j, 1
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
40 br label %for
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
41
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
42 exit:
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
43 br label %return
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
44
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
45 return:
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
46 ret void
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
47 }
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
48
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
49
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
50 define void @caller(i32 %n, ptr noalias nonnull %A) #0 {
236
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
51 entry:
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
52 br label %for
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
53
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
54 for:
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
55 %i = phi i32 [0, %entry], [%j.inc, %inc]
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
56 %i.cmp = icmp slt i32 %i, %n
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
57 br i1 %i.cmp, label %body, label %exit
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
58
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
59 body:
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
60 call void @callee(i32 %n, ptr %A, i32 %i)
236
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
61 br label %inc
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
62
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
63 inc:
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
64 %j.inc = add nuw nsw i32 %i, 1
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
65 br label %for
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
66
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
67 exit:
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
68 br label %return
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
69
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
70 return:
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
71 ret void
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
72 }
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
73
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
74
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
75 declare void @unrelated_decl()
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
76
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
77
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
78 attributes #0 = { noinline }
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
79
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
80 !llvm.ident = !{!8}
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
81 !8 = !{!"xyxxy"}
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
82
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
83
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
84 ; CHECK-NOT: unrelated_type
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
85
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
86 ; CALLEE-LABEL: @callee(
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
87 ; CALLEE-NOT: @caller
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
88 ; CALLEE-NOT: @unrelated_decl
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
89
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
90 ; CALLER-NOT: define {{.*}} @callee(
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
91 ; CALLER-LABEL: @caller(
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
92
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
93 ; CHECK-NOT: @unrelated_decl
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
94 ; CHECK: xyxxy