Skip to content

Commit 8e13ddd

Browse files
committed
Update clang ir tests. Add dependency test that may throw an exception
Closes llvm#91
1 parent 0856e94 commit 8e13ddd

22 files changed

+1637
-1526
lines changed

clang/test/OmpSs/IR/lambda.cpp

+13-12
Original file line numberDiff line numberDiff line change
@@ -17,18 +17,19 @@ void bar(int x) {
1717
// CHECK-NEXT: store i32 %inc, i32* %1, align 4
1818
// CHECK-NEXT: call void @llvm.directive.region.exit(token %2)
1919

20-
// CHECK: define internal %struct._depend_unpack_t @compute_dep(i32* %0) {
20+
// CHECK: define internal %struct._depend_unpack_t @compute_dep(i32* %x)
2121
// CHECK: entry:
22-
// CHECK-NEXT: %return.val = alloca %struct._depend_unpack_t, align 8
23-
// CHECK-NEXT: %1 = getelementptr inbounds %struct._depend_unpack_t, %struct._depend_unpack_t* %return.val, i32 0, i32 0
24-
// CHECK-NEXT: store i32* %0, i32** %1, align 8
25-
// CHECK-NEXT: %2 = getelementptr inbounds %struct._depend_unpack_t, %struct._depend_unpack_t* %return.val, i32 0, i32 1
26-
// CHECK-NEXT: store i64 4, i64* %2, align 8
27-
// CHECK-NEXT: %3 = getelementptr inbounds %struct._depend_unpack_t, %struct._depend_unpack_t* %return.val, i32 0, i32 2
28-
// CHECK-NEXT: store i64 0, i64* %3, align 8
29-
// CHECK-NEXT: %4 = getelementptr inbounds %struct._depend_unpack_t, %struct._depend_unpack_t* %return.val, i32 0, i32 3
30-
// CHECK-NEXT: store i64 4, i64* %4, align 8
31-
// CHECK-NEXT: %5 = load %struct._depend_unpack_t, %struct._depend_unpack_t* %return.val, align 8
32-
// CHECK-NEXT: ret %struct._depend_unpack_t %5
22+
// CHECK-NEXT: %retval = alloca %struct._depend_unpack_t, align 8
23+
// CHECK: %0 = getelementptr inbounds %struct._depend_unpack_t, %struct._depend_unpack_t* %retval, i32 0, i32 0
24+
// CHECK-NEXT: store i32* %x, i32** %0, align 8
25+
// CHECK-NEXT: %1 = getelementptr inbounds %struct._depend_unpack_t, %struct._depend_unpack_t* %retval, i32 0, i32 1
26+
// CHECK-NEXT: store i64 4, i64* %1, align 8
27+
// CHECK-NEXT: %2 = getelementptr inbounds %struct._depend_unpack_t, %struct._depend_unpack_t* %retval, i32 0, i32 2
28+
// CHECK-NEXT: store i64 0, i64* %2, align 8
29+
// CHECK-NEXT: %3 = getelementptr inbounds %struct._depend_unpack_t, %struct._depend_unpack_t* %retval, i32 0, i32 3
30+
// CHECK-NEXT: store i64 4, i64* %3, align 8
31+
// CHECK-NEXT: %4 = load %struct._depend_unpack_t, %struct._depend_unpack_t* %retval, align 8
32+
// CHECK-NEXT: ret %struct._depend_unpack_t %4
3333
// CHECK-NEXT: }
3434

35+

clang/test/OmpSs/IR/multi_discrete.c

+51-51
Large diffs are not rendered by default.

clang/test/OmpSs/IR/multi_discrete.cpp

+41-40
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,12 @@ void f() {
2626
// CHECK: %0 = call token @llvm.directive.region.entry() [ "DIR.OSS"([5 x i8] c"TASK\00"), "QUAL.OSS.SHARED"([10 x [20 x i32]]* @v), "QUAL.OSS.PRIVATE"(i32* %i), "QUAL.OSS.PRIVATE"(i32* %j), "QUAL.OSS.FIRSTPRIVATE"(i32* %lb1), "QUAL.OSS.FIRSTPRIVATE"(i32* %lb2), "QUAL.OSS.MULTIDEP.RANGE.IN"(i32* %i, i32* %j, %struct._depend_unpack_t.1 (i32*, i32*, i32*, i32*)* @compute_dep.3, i32* %i, i32* %lb1, i32* %j, i32* %lb2, [10 x [20 x i32]]* @v, %struct._depend_unpack_t.2 (i32*, i32*, i32*, i32*, [10 x [20 x i32]]*)* @compute_dep.4, i32* %i, i32* %j, i32* %lb1, i32* %lb2, [10 x [20 x i32]]* @v) ]
2727
// CHECK: %0 = call token @llvm.directive.region.entry() [ "DIR.OSS"([5 x i8] c"TASK\00"), "QUAL.OSS.SHARED"([10 x [20 x i32]]* @v), "QUAL.OSS.PRIVATE"(i32* %i), "QUAL.OSS.PRIVATE"(i32* %j), "QUAL.OSS.FIRSTPRIVATE"(i16* %lb1), "QUAL.OSS.FIRSTPRIVATE"(i16* %lb2), "QUAL.OSS.MULTIDEP.RANGE.IN"(i32* %i, i32* %j, %struct._depend_unpack_t.3 (i32*, i16*, i32*, i16*)* @compute_dep.5, i32* %i, i16* %lb1, i32* %j, i16* %lb2, [10 x [20 x i32]]* @v, %struct._depend_unpack_t.4 (i32*, i32*, i16*, i16*, [10 x [20 x i32]]*)* @compute_dep.6, i32* %i, i32* %j, i16* %lb1, i16* %lb2, [10 x [20 x i32]]* @v) ]
2828

29-
// CHECK: define internal %struct._depend_unpack_t @compute_dep(i32* %i, i32* %j) {
29+
// CHECK: define internal %struct._depend_unpack_t @compute_dep(i32* %i, i32* %j)
3030
// CHECK: entry:
31-
// CHECK-NEXT: %return.val = alloca %struct._depend_unpack_t, align 4
32-
// CHECK-NEXT: %discrete.array = alloca [3 x i32], align 4
31+
// CHECK-NEXT: %retval = alloca %struct._depend_unpack_t, align 4
32+
// CHECK: %discrete.array = alloca [3 x i32], align 4
3333
// CHECK-NEXT: %discrete.array1 = alloca [3 x i32], align 4
34-
// CHECK-NEXT: %0 = bitcast [3 x i32]* %discrete.array to i8*
34+
// CHECK: %0 = bitcast [3 x i32]* %discrete.array to i8*
3535
// CHECK-NEXT: call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %0, i8* align 4 bitcast ([3 x i32]* @__const._Z9constantsIiEvv.discrete.array to i8*), i64 12, i1 false)
3636
// CHECK-NEXT: %1 = load i32, i32* %i, align 4
3737
// CHECK-NEXT: %discreteidx = getelementptr [3 x i32], [3 x i32]* %discrete.array, i32 0, i32 %1
@@ -41,32 +41,32 @@ void f() {
4141
// CHECK-NEXT: %4 = load i32, i32* %j, align 4
4242
// CHECK-NEXT: %discreteidx2 = getelementptr [3 x i32], [3 x i32]* %discrete.array1, i32 0, i32 %4
4343
// CHECK-NEXT: %5 = load i32, i32* %discreteidx2, align 8
44-
// CHECK-NEXT: %6 = getelementptr inbounds %struct._depend_unpack_t, %struct._depend_unpack_t* %return.val, i32 0, i32 0
44+
// CHECK-NEXT: %6 = getelementptr inbounds %struct._depend_unpack_t, %struct._depend_unpack_t* %retval, i32 0, i32 0
4545
// CHECK-NEXT: store i32 0, i32* %6, align 4
46-
// CHECK-NEXT: %7 = getelementptr inbounds %struct._depend_unpack_t, %struct._depend_unpack_t* %return.val, i32 0, i32 1
46+
// CHECK-NEXT: %7 = getelementptr inbounds %struct._depend_unpack_t, %struct._depend_unpack_t* %retval, i32 0, i32 1
4747
// CHECK-NEXT: store i32 %2, i32* %7, align 4
48-
// CHECK-NEXT: %8 = getelementptr inbounds %struct._depend_unpack_t, %struct._depend_unpack_t* %return.val, i32 0, i32 2
48+
// CHECK-NEXT: %8 = getelementptr inbounds %struct._depend_unpack_t, %struct._depend_unpack_t* %retval, i32 0, i32 2
4949
// CHECK-NEXT: store i32 2, i32* %8, align 4
50-
// CHECK-NEXT: %9 = getelementptr inbounds %struct._depend_unpack_t, %struct._depend_unpack_t* %return.val, i32 0, i32 3
50+
// CHECK-NEXT: %9 = getelementptr inbounds %struct._depend_unpack_t, %struct._depend_unpack_t* %retval, i32 0, i32 3
5151
// CHECK-NEXT: store i32 1, i32* %9, align 4
52-
// CHECK-NEXT: %10 = getelementptr inbounds %struct._depend_unpack_t, %struct._depend_unpack_t* %return.val, i32 0, i32 4
52+
// CHECK-NEXT: %10 = getelementptr inbounds %struct._depend_unpack_t, %struct._depend_unpack_t* %retval, i32 0, i32 4
5353
// CHECK-NEXT: store i32 0, i32* %10, align 4
54-
// CHECK-NEXT: %11 = getelementptr inbounds %struct._depend_unpack_t, %struct._depend_unpack_t* %return.val, i32 0, i32 5
54+
// CHECK-NEXT: %11 = getelementptr inbounds %struct._depend_unpack_t, %struct._depend_unpack_t* %retval, i32 0, i32 5
5555
// CHECK-NEXT: store i32 %5, i32* %11, align 4
56-
// CHECK-NEXT: %12 = getelementptr inbounds %struct._depend_unpack_t, %struct._depend_unpack_t* %return.val, i32 0, i32 6
56+
// CHECK-NEXT: %12 = getelementptr inbounds %struct._depend_unpack_t, %struct._depend_unpack_t* %retval, i32 0, i32 6
5757
// CHECK-NEXT: store i32 2, i32* %12, align 4
58-
// CHECK-NEXT: %13 = getelementptr inbounds %struct._depend_unpack_t, %struct._depend_unpack_t* %return.val, i32 0, i32 7
58+
// CHECK-NEXT: %13 = getelementptr inbounds %struct._depend_unpack_t, %struct._depend_unpack_t* %retval, i32 0, i32 7
5959
// CHECK-NEXT: store i32 1, i32* %13, align 4
60-
// CHECK-NEXT: %14 = load %struct._depend_unpack_t, %struct._depend_unpack_t* %return.val, align 4
60+
// CHECK-NEXT: %14 = load %struct._depend_unpack_t, %struct._depend_unpack_t* %retval, align 4
6161
// CHECK-NEXT: ret %struct._depend_unpack_t %14
6262
// CHECK-NEXT: }
6363

64-
// CHECK: define internal %struct._depend_unpack_t.1 @compute_dep.3(i32* %i, i32* %lb1, i32* %j, i32* %lb2) {
65-
// CHECK-NEXT: entry:
66-
// CHECK-NEXT: %return.val = alloca %struct._depend_unpack_t.1, align 4
67-
// CHECK-NEXT: %discrete.array = alloca [3 x i32], align 4
64+
// CHECK: define internal %struct._depend_unpack_t.1 @compute_dep.3(i32* %i, i32* %lb1, i32* %j, i32* %lb2)
65+
// CHECK: entry:
66+
// CHECK-NEXT: %retval = alloca %struct._depend_unpack_t.1, align 4
67+
// CHECK: %discrete.array = alloca [3 x i32], align 4
6868
// CHECK-NEXT: %discrete.array3 = alloca [3 x i32], align 4
69-
// CHECK-NEXT: %arrayinit.begin = getelementptr inbounds [3 x i32], [3 x i32]* %discrete.array, i64 0, i64 0
69+
// CHECK: %arrayinit.begin = getelementptr inbounds [3 x i32], [3 x i32]* %discrete.array, i64 0, i64 0
7070
// CHECK-NEXT: %0 = load i32, i32* %lb1, align 4
7171
// CHECK-NEXT: store i32 %0, i32* %arrayinit.begin, align 4
7272
// CHECK-NEXT: %arrayinit.element = getelementptr inbounds i32, i32* %arrayinit.begin, i64 1
@@ -94,32 +94,33 @@ void f() {
9494
// CHECK-NEXT: %8 = load i32, i32* %j, align 4
9595
// CHECK-NEXT: %discreteidx9 = getelementptr [3 x i32], [3 x i32]* %discrete.array3, i32 0, i32 %8
9696
// CHECK-NEXT: %9 = load i32, i32* %discreteidx9, align 8
97-
// CHECK-NEXT: %10 = getelementptr inbounds %struct._depend_unpack_t.1, %struct._depend_unpack_t.1* %return.val, i32 0, i32 0
97+
// CHECK-NEXT: %10 = getelementptr inbounds %struct._depend_unpack_t.1, %struct._depend_unpack_t.1* %retval, i32 0, i32 0
9898
// CHECK-NEXT: store i32 0, i32* %10, align 4
99-
// CHECK-NEXT: %11 = getelementptr inbounds %struct._depend_unpack_t.1, %struct._depend_unpack_t.1* %return.val, i32 0, i32 1
99+
// CHECK-NEXT: %11 = getelementptr inbounds %struct._depend_unpack_t.1, %struct._depend_unpack_t.1* %retval, i32 0, i32 1
100100
// CHECK-NEXT: store i32 %4, i32* %11, align 4
101-
// CHECK-NEXT: %12 = getelementptr inbounds %struct._depend_unpack_t.1, %struct._depend_unpack_t.1* %return.val, i32 0, i32 2
101+
// CHECK-NEXT: %12 = getelementptr inbounds %struct._depend_unpack_t.1, %struct._depend_unpack_t.1* %retval, i32 0, i32 2
102102
// CHECK-NEXT: store i32 2, i32* %12, align 4
103-
// CHECK-NEXT: %13 = getelementptr inbounds %struct._depend_unpack_t.1, %struct._depend_unpack_t.1* %return.val, i32 0, i32 3
103+
// CHECK-NEXT: %13 = getelementptr inbounds %struct._depend_unpack_t.1, %struct._depend_unpack_t.1* %retval, i32 0, i32 3
104104
// CHECK-NEXT: store i32 1, i32* %13, align 4
105-
// CHECK-NEXT: %14 = getelementptr inbounds %struct._depend_unpack_t.1, %struct._depend_unpack_t.1* %return.val, i32 0, i32 4
105+
// CHECK-NEXT: %14 = getelementptr inbounds %struct._depend_unpack_t.1, %struct._depend_unpack_t.1* %retval, i32 0, i32 4
106106
// CHECK-NEXT: store i32 0, i32* %14, align 4
107-
// CHECK-NEXT: %15 = getelementptr inbounds %struct._depend_unpack_t.1, %struct._depend_unpack_t.1* %return.val, i32 0, i32 5
107+
// CHECK-NEXT: %15 = getelementptr inbounds %struct._depend_unpack_t.1, %struct._depend_unpack_t.1* %retval, i32 0, i32 5
108108
// CHECK-NEXT: store i32 %9, i32* %15, align 4
109-
// CHECK-NEXT: %16 = getelementptr inbounds %struct._depend_unpack_t.1, %struct._depend_unpack_t.1* %return.val, i32 0, i32 6
109+
// CHECK-NEXT: %16 = getelementptr inbounds %struct._depend_unpack_t.1, %struct._depend_unpack_t.1* %retval, i32 0, i32 6
110110
// CHECK-NEXT: store i32 2, i32* %16, align 4
111-
// CHECK-NEXT: %17 = getelementptr inbounds %struct._depend_unpack_t.1, %struct._depend_unpack_t.1* %return.val, i32 0, i32 7
111+
// CHECK-NEXT: %17 = getelementptr inbounds %struct._depend_unpack_t.1, %struct._depend_unpack_t.1* %retval, i32 0, i32 7
112112
// CHECK-NEXT: store i32 1, i32* %17, align 4
113-
// CHECK-NEXT: %18 = load %struct._depend_unpack_t.1, %struct._depend_unpack_t.1* %return.val, align 4
113+
// CHECK-NEXT: %18 = load %struct._depend_unpack_t.1, %struct._depend_unpack_t.1* %retval, align 4
114114
// CHECK-NEXT: ret %struct._depend_unpack_t.1 %18
115115
// CHECK-NEXT: }
116116

117-
// CHECK: define internal %struct._depend_unpack_t.3 @compute_dep.5(i32* %i, i16* %lb1, i32* %j, i16* %lb2) {
117+
118+
// CHECK: define internal %struct._depend_unpack_t.3 @compute_dep.5(i32* %i, i16* %lb1, i32* %j, i16* %lb2)
118119
// CHECK: entry:
119-
// CHECK-NEXT: %return.val = alloca %struct._depend_unpack_t.3, align 4
120-
// CHECK-NEXT: %discrete.array = alloca [3 x i32], align 4
120+
// CHECK-NEXT: %retval = alloca %struct._depend_unpack_t.3, align 4
121+
// CHECK: %discrete.array = alloca [3 x i32], align 4
121122
// CHECK-NEXT: %discrete.array5 = alloca [3 x i32], align 4
122-
// CHECK-NEXT: %arrayinit.begin = getelementptr inbounds [3 x i32], [3 x i32]* %discrete.array, i64 0, i64 0
123+
// CHECK: %arrayinit.begin = getelementptr inbounds [3 x i32], [3 x i32]* %discrete.array, i64 0, i64 0
123124
// CHECK-NEXT: %0 = load i16, i16* %lb1, align 2
124125
// CHECK-NEXT: %conv = sext i16 %0 to i32
125126
// CHECK-NEXT: store i32 %conv, i32* %arrayinit.begin, align 4
@@ -153,23 +154,23 @@ void f() {
153154
// CHECK-NEXT: %8 = load i32, i32* %j, align 4
154155
// CHECK-NEXT: %discreteidx14 = getelementptr [3 x i32], [3 x i32]* %discrete.array5, i32 0, i32 %8
155156
// CHECK-NEXT: %9 = load i32, i32* %discreteidx14, align 8
156-
// CHECK-NEXT: %10 = getelementptr inbounds %struct._depend_unpack_t.3, %struct._depend_unpack_t.3* %return.val, i32 0, i32 0
157+
// CHECK-NEXT: %10 = getelementptr inbounds %struct._depend_unpack_t.3, %struct._depend_unpack_t.3* %retval, i32 0, i32 0
157158
// CHECK-NEXT: store i32 0, i32* %10, align 4
158-
// CHECK-NEXT: %11 = getelementptr inbounds %struct._depend_unpack_t.3, %struct._depend_unpack_t.3* %return.val, i32 0, i32 1
159+
// CHECK-NEXT: %11 = getelementptr inbounds %struct._depend_unpack_t.3, %struct._depend_unpack_t.3* %retval, i32 0, i32 1
159160
// CHECK-NEXT: store i32 %4, i32* %11, align 4
160-
// CHECK-NEXT: %12 = getelementptr inbounds %struct._depend_unpack_t.3, %struct._depend_unpack_t.3* %return.val, i32 0, i32 2
161+
// CHECK-NEXT: %12 = getelementptr inbounds %struct._depend_unpack_t.3, %struct._depend_unpack_t.3* %retval, i32 0, i32 2
161162
// CHECK-NEXT: store i32 2, i32* %12, align 4
162-
// CHECK-NEXT: %13 = getelementptr inbounds %struct._depend_unpack_t.3, %struct._depend_unpack_t.3* %return.val, i32 0, i32 3
163+
// CHECK-NEXT: %13 = getelementptr inbounds %struct._depend_unpack_t.3, %struct._depend_unpack_t.3* %retval, i32 0, i32 3
163164
// CHECK-NEXT: store i32 1, i32* %13, align 4
164-
// CHECK-NEXT: %14 = getelementptr inbounds %struct._depend_unpack_t.3, %struct._depend_unpack_t.3* %return.val, i32 0, i32 4
165+
// CHECK-NEXT: %14 = getelementptr inbounds %struct._depend_unpack_t.3, %struct._depend_unpack_t.3* %retval, i32 0, i32 4
165166
// CHECK-NEXT: store i32 0, i32* %14, align 4
166-
// CHECK-NEXT: %15 = getelementptr inbounds %struct._depend_unpack_t.3, %struct._depend_unpack_t.3* %return.val, i32 0, i32 5
167+
// CHECK-NEXT: %15 = getelementptr inbounds %struct._depend_unpack_t.3, %struct._depend_unpack_t.3* %retval, i32 0, i32 5
167168
// CHECK-NEXT: store i32 %9, i32* %15, align 4
168-
// CHECK-NEXT: %16 = getelementptr inbounds %struct._depend_unpack_t.3, %struct._depend_unpack_t.3* %return.val, i32 0, i32 6
169+
// CHECK-NEXT: %16 = getelementptr inbounds %struct._depend_unpack_t.3, %struct._depend_unpack_t.3* %retval, i32 0, i32 6
169170
// CHECK-NEXT: store i32 2, i32* %16, align 4
170-
// CHECK-NEXT: %17 = getelementptr inbounds %struct._depend_unpack_t.3, %struct._depend_unpack_t.3* %return.val, i32 0, i32 7
171+
// CHECK-NEXT: %17 = getelementptr inbounds %struct._depend_unpack_t.3, %struct._depend_unpack_t.3* %retval, i32 0, i32 7
171172
// CHECK-NEXT: store i32 1, i32* %17, align 4
172-
// CHECK-NEXT: %18 = load %struct._depend_unpack_t.3, %struct._depend_unpack_t.3* %return.val, align 4
173+
// CHECK-NEXT: %18 = load %struct._depend_unpack_t.3, %struct._depend_unpack_t.3* %retval, align 4
173174
// CHECK-NEXT: ret %struct._depend_unpack_t.3 %18
174175
// CHECK-NEXT: }
175176

0 commit comments

Comments
 (0)