@@ -49,45 +49,51 @@ entry:
49
49
}
50
50
51
51
; CHECK: define internal void @nanos6_ol_task_region_foo0(%nanos6_task_args_foo0* %task_args, i8* %device_env, %nanos6_address_translation_entry_t* %address_translation_table) {
52
- ; CHECK-NEXT : entry:
52
+ ; CHECK: entry:
53
53
; CHECK-NEXT: %gep_n.addr = getelementptr %nanos6_task_args_foo0, %nanos6_task_args_foo0* %task_args, i32 0, i32 0
54
54
; CHECK-NEXT: %load_gep_n.addr = load i32*, i32** %gep_n.addr, align 8
55
55
; CHECK-NEXT: %gep_vla = getelementptr %nanos6_task_args_foo0, %nanos6_task_args_foo0* %task_args, i32 0, i32 1
56
56
; CHECK-NEXT: %load_gep_vla = load i32*, i32** %gep_vla, align 8
57
57
; CHECK-NEXT: %capt_gep = getelementptr %nanos6_task_args_foo0, %nanos6_task_args_foo0* %task_args, i32 0, i32 2
58
58
; CHECK-NEXT: %load_capt_gep = load i64, i64* %capt_gep, align 8
59
- ; CHECK-NEXT: %0 = icmp ne %nanos6_address_translation_entry_t* %address_translation_table, null
60
- ; CHECK-NEXT: br i1 %0, label %1, label %20
61
- ; CHECK: 1: ; preds = %entry
62
- ; CHECK-NEXT: %2 = call %struct._depend_unpack_t @compute_dep(i32* %load_gep_n.addr)
63
- ; CHECK-NEXT: %3 = extractvalue %struct._depend_unpack_t %2, 0
59
+ ; CHECK-NEXT: %tlate.load_gep_n.addr = alloca i32*, align 8
60
+ ; CHECK-NEXT: store i32* %load_gep_n.addr, i32** %tlate.load_gep_n.addr, align 8
61
+ ; CHECK-NEXT: %0 = load i32*, i32** %tlate.load_gep_n.addr, align 8
62
+ ; CHECK-NEXT: %tlate.load_gep_vla = alloca i32*, align 8
63
+ ; CHECK-NEXT: store i32* %load_gep_vla, i32** %tlate.load_gep_vla, align 8
64
+ ; CHECK-NEXT: %1 = load i32*, i32** %tlate.load_gep_vla, align 8
65
+ ; CHECK-NEXT: %2 = icmp ne %nanos6_address_translation_entry_t* %address_translation_table, null
66
+ ; CHECK-NEXT: br i1 %2, label %3, label %22
67
+ ; CHECK: 3: ; preds = %entry
68
+ ; CHECK-NEXT: %4 = call %struct._depend_unpack_t @compute_dep(i32* %0)
69
+ ; CHECK-NEXT: %5 = extractvalue %struct._depend_unpack_t %4, 0
64
70
; CHECK-NEXT: %local_lookup_n.addr = getelementptr %nanos6_address_translation_entry_t, %nanos6_address_translation_entry_t* %address_translation_table, i32 0, i32 0
65
- ; CHECK-NEXT: %4 = load i64, i64* %local_lookup_n.addr, align 8
71
+ ; CHECK-NEXT: %6 = load i64, i64* %local_lookup_n.addr, align 8
66
72
; CHECK-NEXT: %device_lookup_n.addr = getelementptr %nanos6_address_translation_entry_t, %nanos6_address_translation_entry_t* %address_translation_table, i32 0, i32 1
67
- ; CHECK-NEXT: %5 = load i64, i64* %device_lookup_n.addr, align 8
68
- ; CHECK-NEXT: %6 = bitcast i32* %3 to i8*
69
- ; CHECK-NEXT: %7 = sub i64 0, %4
70
- ; CHECK-NEXT: %8 = getelementptr i8, i8* %6 , i64 %7
71
- ; CHECK-NEXT: %9 = getelementptr i8, i8* %8 , i64 %5
72
- ; CHECK-NEXT: %10 = bitcast i8* %9 to i32*
73
- ; CHECK-NEXT: store i32* %10 , i32** %gep_n .addr, align 8
74
- ; CHECK-NEXT: %11 = call %struct._depend_unpack_t.0 @compute_dep.1(i32* %load_gep_vla , i64 %load_capt_gep)
75
- ; CHECK-NEXT: %12 = extractvalue %struct._depend_unpack_t.0 %11 , 0
73
+ ; CHECK-NEXT: %7 = load i64, i64* %device_lookup_n.addr, align 8
74
+ ; CHECK-NEXT: %8 = bitcast i32* %5 to i8*
75
+ ; CHECK-NEXT: %9 = sub i64 0, %6
76
+ ; CHECK-NEXT: %10 = getelementptr i8, i8* %8 , i64 %9
77
+ ; CHECK-NEXT: %11 = getelementptr i8, i8* %10 , i64 %7
78
+ ; CHECK-NEXT: %12 = bitcast i8* %11 to i32*
79
+ ; CHECK-NEXT: store i32* %12 , i32** %tlate.load_gep_n .addr, align 8
80
+ ; CHECK-NEXT: %13 = call %struct._depend_unpack_t.0 @compute_dep.1(i32* %1 , i64 %load_capt_gep)
81
+ ; CHECK-NEXT: %14 = extractvalue %struct._depend_unpack_t.0 %13 , 0
76
82
; CHECK-NEXT: %local_lookup_vla = getelementptr %nanos6_address_translation_entry_t, %nanos6_address_translation_entry_t* %address_translation_table, i32 1, i32 0
77
- ; CHECK-NEXT: %13 = load i64, i64* %local_lookup_vla, align 8
83
+ ; CHECK-NEXT: %15 = load i64, i64* %local_lookup_vla, align 8
78
84
; CHECK-NEXT: %device_lookup_vla = getelementptr %nanos6_address_translation_entry_t, %nanos6_address_translation_entry_t* %address_translation_table, i32 1, i32 1
79
- ; CHECK-NEXT: %14 = load i64, i64* %device_lookup_vla, align 8
80
- ; CHECK-NEXT: %15 = bitcast i32* %12 to i8*
81
- ; CHECK-NEXT: %16 = sub i64 0, %13
82
- ; CHECK-NEXT: %17 = getelementptr i8, i8* %15 , i64 %16
83
- ; CHECK-NEXT: %18 = getelementptr i8, i8* %17 , i64 %14
84
- ; CHECK-NEXT: %19 = bitcast i8* %18 to i32*
85
- ; CHECK-NEXT: store i32* %19 , i32** %gep_vla , align 8
86
- ; CHECK-NEXT: br label %20
87
- ; CHECK: 20 : ; preds = %1 , %entry
88
- ; CHECK-NEXT: %21 = load i32*, i32** %gep_n .addr, align 8
89
- ; CHECK-NEXT: %22 = load i32*, i32** %gep_vla , align 8
90
- ; CHECK-NEXT: call void @nanos6_unpacked_task_region_foo0(i32* %21 , i32* %22 , i64 %load_capt_gep, i8* %device_env, %nanos6_address_translation_entry_t* %address_translation_table)
85
+ ; CHECK-NEXT: %16 = load i64, i64* %device_lookup_vla, align 8
86
+ ; CHECK-NEXT: %17 = bitcast i32* %14 to i8*
87
+ ; CHECK-NEXT: %18 = sub i64 0, %15
88
+ ; CHECK-NEXT: %19 = getelementptr i8, i8* %17 , i64 %18
89
+ ; CHECK-NEXT: %20 = getelementptr i8, i8* %19 , i64 %16
90
+ ; CHECK-NEXT: %21 = bitcast i8* %20 to i32*
91
+ ; CHECK-NEXT: store i32* %21 , i32** %tlate.load_gep_vla , align 8
92
+ ; CHECK-NEXT: br label %22
93
+ ; CHECK: 22 : ; preds = %3 , %entry
94
+ ; CHECK-NEXT: %23 = load i32*, i32** %tlate.load_gep_n .addr, align 8
95
+ ; CHECK-NEXT: %24 = load i32*, i32** %tlate.load_gep_vla , align 8
96
+ ; CHECK-NEXT: call void @nanos6_unpacked_task_region_foo0(i32* %23 , i32* %24 , i64 %load_capt_gep, i8* %device_env, %nanos6_address_translation_entry_t* %address_translation_table)
91
97
; CHECK-NEXT: ret void
92
98
; CHECK-NEXT: }
93
99
@@ -238,45 +244,51 @@ entry:
238
244
}
239
245
240
246
; CHECK: define internal void @nanos6_ol_task_region_foo10(%nanos6_task_args_foo10* %task_args, i8* %device_env, %nanos6_address_translation_entry_t* %address_translation_table) {
241
- ; CHECK-NEXT : entry:
247
+ ; CHECK: entry:
242
248
; CHECK-NEXT: %gep_n.addr = getelementptr %nanos6_task_args_foo10, %nanos6_task_args_foo10* %task_args, i32 0, i32 0
243
249
; CHECK-NEXT: %load_gep_n.addr = load i32*, i32** %gep_n.addr, align 8
244
250
; CHECK-NEXT: %gep_vla = getelementptr %nanos6_task_args_foo10, %nanos6_task_args_foo10* %task_args, i32 0, i32 1
245
251
; CHECK-NEXT: %load_gep_vla = load i32*, i32** %gep_vla, align 8
246
252
; CHECK-NEXT: %capt_gep = getelementptr %nanos6_task_args_foo10, %nanos6_task_args_foo10* %task_args, i32 0, i32 2
247
253
; CHECK-NEXT: %load_capt_gep = load i64, i64* %capt_gep, align 8
248
- ; CHECK-NEXT: %0 = icmp ne %nanos6_address_translation_entry_t* %address_translation_table, null
249
- ; CHECK-NEXT: br i1 %0, label %1, label %20
250
- ; CHECK: 1: ; preds = %entry
251
- ; CHECK-NEXT: %2 = call %struct._depend_unpack_t.1 @compute_dep.4(i32* %load_gep_n.addr)
252
- ; CHECK-NEXT: %3 = extractvalue %struct._depend_unpack_t.1 %2, 0
254
+ ; CHECK-NEXT: %tlate.load_gep_n.addr = alloca i32*, align 8
255
+ ; CHECK-NEXT: store i32* %load_gep_n.addr, i32** %tlate.load_gep_n.addr, align 8
256
+ ; CHECK-NEXT: %0 = load i32*, i32** %tlate.load_gep_n.addr, align 8
257
+ ; CHECK-NEXT: %tlate.load_gep_vla = alloca i32*, align 8
258
+ ; CHECK-NEXT: store i32* %load_gep_vla, i32** %tlate.load_gep_vla, align 8
259
+ ; CHECK-NEXT: %1 = load i32*, i32** %tlate.load_gep_vla, align 8
260
+ ; CHECK-NEXT: %2 = icmp ne %nanos6_address_translation_entry_t* %address_translation_table, null
261
+ ; CHECK-NEXT: br i1 %2, label %3, label %22
262
+ ; CHECK: 3: ; preds = %entry
263
+ ; CHECK-NEXT: %4 = call %struct._depend_unpack_t.1 @compute_dep.4(i32* %0)
264
+ ; CHECK-NEXT: %5 = extractvalue %struct._depend_unpack_t.1 %4, 0
253
265
; CHECK-NEXT: %local_lookup_n.addr = getelementptr %nanos6_address_translation_entry_t, %nanos6_address_translation_entry_t* %address_translation_table, i32 0, i32 0
254
- ; CHECK-NEXT: %4 = load i64, i64* %local_lookup_n.addr, align 8
266
+ ; CHECK-NEXT: %6 = load i64, i64* %local_lookup_n.addr, align 8
255
267
; CHECK-NEXT: %device_lookup_n.addr = getelementptr %nanos6_address_translation_entry_t, %nanos6_address_translation_entry_t* %address_translation_table, i32 0, i32 1
256
- ; CHECK-NEXT: %5 = load i64, i64* %device_lookup_n.addr, align 8
257
- ; CHECK-NEXT: %6 = bitcast i32* %3 to i8*
258
- ; CHECK-NEXT: %7 = sub i64 0, %4
259
- ; CHECK-NEXT: %8 = getelementptr i8, i8* %6 , i64 %7
260
- ; CHECK-NEXT: %9 = getelementptr i8, i8* %8 , i64 %5
261
- ; CHECK-NEXT: %10 = bitcast i8* %9 to i32*
262
- ; CHECK-NEXT: store i32* %10 , i32** %gep_n .addr, align 8
263
- ; CHECK-NEXT: %11 = call %struct._depend_unpack_t.2 @compute_dep.5(i32* %load_gep_vla , i64 %load_capt_gep)
264
- ; CHECK-NEXT: %12 = extractvalue %struct._depend_unpack_t.2 %11 , 0
268
+ ; CHECK-NEXT: %7 = load i64, i64* %device_lookup_n.addr, align 8
269
+ ; CHECK-NEXT: %8 = bitcast i32* %5 to i8*
270
+ ; CHECK-NEXT: %9 = sub i64 0, %6
271
+ ; CHECK-NEXT: %10 = getelementptr i8, i8* %8 , i64 %9
272
+ ; CHECK-NEXT: %11 = getelementptr i8, i8* %10 , i64 %7
273
+ ; CHECK-NEXT: %12 = bitcast i8* %11 to i32*
274
+ ; CHECK-NEXT: store i32* %12 , i32** %tlate.load_gep_n .addr, align 8
275
+ ; CHECK-NEXT: %13 = call %struct._depend_unpack_t.2 @compute_dep.5(i32* %1 , i64 %load_capt_gep)
276
+ ; CHECK-NEXT: %14 = extractvalue %struct._depend_unpack_t.2 %13 , 0
265
277
; CHECK-NEXT: %local_lookup_vla = getelementptr %nanos6_address_translation_entry_t, %nanos6_address_translation_entry_t* %address_translation_table, i32 1, i32 0
266
- ; CHECK-NEXT: %13 = load i64, i64* %local_lookup_vla, align 8
278
+ ; CHECK-NEXT: %15 = load i64, i64* %local_lookup_vla, align 8
267
279
; CHECK-NEXT: %device_lookup_vla = getelementptr %nanos6_address_translation_entry_t, %nanos6_address_translation_entry_t* %address_translation_table, i32 1, i32 1
268
- ; CHECK-NEXT: %14 = load i64, i64* %device_lookup_vla, align 8
269
- ; CHECK-NEXT: %15 = bitcast i32* %12 to i8*
270
- ; CHECK-NEXT: %16 = sub i64 0, %13
271
- ; CHECK-NEXT: %17 = getelementptr i8, i8* %15 , i64 %16
272
- ; CHECK-NEXT: %18 = getelementptr i8, i8* %17 , i64 %14
273
- ; CHECK-NEXT: %19 = bitcast i8* %18 to i32*
274
- ; CHECK-NEXT: store i32* %19 , i32** %gep_vla , align 8
275
- ; CHECK-NEXT: br label %20
276
- ; CHECK: 20 : ; preds = %1 , %entry
277
- ; CHECK-NEXT: %21 = load i32*, i32** %gep_n .addr, align 8
278
- ; CHECK-NEXT: %22 = load i32*, i32** %gep_vla , align 8
279
- ; CHECK-NEXT: call void @nanos6_unpacked_task_region_foo10(i32* %21 , i32* %22 , i64 %load_capt_gep, i8* %device_env, %nanos6_address_translation_entry_t* %address_translation_table)
280
+ ; CHECK-NEXT: %16 = load i64, i64* %device_lookup_vla, align 8
281
+ ; CHECK-NEXT: %17 = bitcast i32* %14 to i8*
282
+ ; CHECK-NEXT: %18 = sub i64 0, %15
283
+ ; CHECK-NEXT: %19 = getelementptr i8, i8* %17 , i64 %18
284
+ ; CHECK-NEXT: %20 = getelementptr i8, i8* %19 , i64 %16
285
+ ; CHECK-NEXT: %21 = bitcast i8* %20 to i32*
286
+ ; CHECK-NEXT: store i32* %21 , i32** %tlate.load_gep_vla , align 8
287
+ ; CHECK-NEXT: br label %22
288
+ ; CHECK: 22 : ; preds = %3 , %entry
289
+ ; CHECK-NEXT: %23 = load i32*, i32** %tlate.load_gep_n .addr, align 8
290
+ ; CHECK-NEXT: %24 = load i32*, i32** %tlate.load_gep_vla , align 8
291
+ ; CHECK-NEXT: call void @nanos6_unpacked_task_region_foo10(i32* %23 , i32* %24 , i64 %load_capt_gep, i8* %device_env, %nanos6_address_translation_entry_t* %address_translation_table)
280
292
; CHECK-NEXT: ret void
281
293
; CHECK-NEXT: }
282
294
0 commit comments