1
1
// RUN: %target-swift-frontend %s -emit-ir -g -o - \
2
2
// RUN: -module-name M -enable-experimental-concurrency \
3
- // RUN: -parse-as-library | %FileCheck %s --check-prefix=CHECK \
4
- // RUN: --check-prefix=CHECK-%target-cpu
3
+ // RUN: -parse-as-library | %FileCheck %s
5
4
// REQUIRES: concurrency
6
5
7
6
// REQUIRES: rdar74551043
@@ -13,122 +12,23 @@ func withGenericArg<T>(_ msg: T) async {
13
12
// This odd debug info is part of a contract with CoroSplit/CoroFrame to fix
14
13
// this up after coroutine splitting.
15
14
// CHECK-LABEL: {{^define .*}} @"$s1M14withGenericArgyyxYlF"(%swift.task* %0, %swift.executor* %1, %swift.context* swiftasync %2)
16
- // CHECK: call void @llvm.dbg.declare(metadata %swift.context** %[[ALLOCA:[^,]+]],
17
- // CHECK-SAME: metadata ![[TAU:[0-9]+]], metadata !DIExpression(
18
- // CHECK-SAME: DW_OP_deref, DW_OP_plus_uconst, {{[0-9]+}}))
19
- // CHECK: call void @llvm.dbg.declare(metadata %swift.context** %[[ALLOCA]],
15
+ // CHECK: call void @llvm.dbg.declare(metadata %swift.context* %2,
20
16
// CHECK-SAME: metadata ![[MSG:[0-9]+]], metadata !DIExpression(
21
- // CHECK-SAME: DW_OP_deref, DW_OP_plus_uconst, {{[0-9]+}}, DW_OP_deref))
22
- // CHECK: store %swift.context* %2, %swift.context** %[[ALLOCA]], align
17
+ // CHECK-SAME: DW_OP_plus_uconst, {{[0-9]+}}, DW_OP_deref))
18
+ // CHECK: call void @llvm.dbg.declare(metadata %swift.context* %2,
19
+ // CHECK-SAME: metadata ![[TAU:[0-9]+]], metadata !DIExpression(
20
+ // CHECK-SAME: DW_OP_plus_uconst, {{[0-9]+}}))
23
21
24
22
await forceSplit ( )
25
23
// CHECK-LABEL: {{^define .*}} @"$s1M14withGenericArgyyxYlF.resume.0"(i8* %0, i8* %1, i8* swiftasync %2)
26
-
27
- // CHECK-arm64e: [[CTXT_PTR:%[0-9]+]] = bitcast i8* %2 to i8**
28
- // CHECK-arm64e: [[SIGNED_CTXT:%[0-9]+]] = load i8*, i8** [[CTXT_PTR]]
29
- // CHECK-arm64e: [[CTXT_PTR_INT:%[0-9]+]] = ptrtoint i8** [[CTXT_PTR]] to i64
30
- // CHECK-arm64e: [[PTRAUTH_BLEND:%[0-9]+]] = call i64 @llvm.ptrauth.blend.i64(i64 [[CTXT_PTR_INT]], i64 48546)
31
- // CHECK-arm64e: [[SIGNED_CTXT_INT:%[0-9]+]] = ptrtoint i8* [[SIGNED_CTXT]]
32
- // CHECK-arm64e: [[CTXT:%[0-9]+]] = call i64 @llvm.ptrauth.auth.i64(i64 [[SIGNED_CTXT_INT]], i32 2, i64 [[PTRAUTH_BLEND]])
33
- // CHECK-arm64e: %[[ALLOCA:[0-9+]]] = inttoptr i64 [[CTXT]] to i8*
34
- // CHECK-arm64e: call void @llvm.dbg.declare(metadata i8* %[[ALLOCA]],
35
- // CHECK-arm64e-SAME: metadata ![[MSG_R:[0-9]+]], metadata !DIExpression(
36
- // CHECK-arm64e-SAME: DW_OP_plus_uconst, [[OFFSET:[0-9]+]],
37
- // CHECK-arm64e-SAME: DW_OP_plus_uconst, {{[0-9]+}}, DW_OP_deref))
38
- // CHECK-arm64e: call void @llvm.dbg.declare(metadata i8* %[[ALLOCA]],
39
- // CHECK-arm64e-SAME: metadata ![[TAU_R:[0-9]+]], metadata !DIExpression(
40
- // CHECK-arm64e-SAME: DW_OP_plus_uconst, [[OFFSET]],
41
- // CHECK-arm64e-SAME: DW_OP_plus_uconst, {{[0-9]+}}))
42
-
43
- // CHECK-i386: call void @llvm.dbg.declare(metadata i8** %[[ALLOCA:[^,]+]],
44
- // CHECK-i386-SAME: metadata ![[MSG_R:[0-9]+]], metadata !DIExpression(
45
- // CHECK-i386-SAME: DW_OP_deref, DW_OP_plus_uconst, [[OFFSET:[0-9]+]],
46
- // CHECK-i386-SAME: DW_OP_plus_uconst, {{[0-9]+}}, DW_OP_deref))
47
- // CHECK-i386: call void @llvm.dbg.declare(metadata i8** %[[ALLOCA]],
48
- // CHECK-i386-SAME: metadata ![[TAU_R:[0-9]+]], metadata !DIExpression(
49
- // CHECK-i386-SAME: DW_OP_deref, DW_OP_plus_uconst, [[OFFSET]],
50
- // CHECK-i386-SAME: DW_OP_plus_uconst, {{[0-9]+}}))
51
- // CHECK-i386: store i8* %2, i8** %[[ALLOCA]], align
52
-
53
- // CHECK-x86_64: call void @llvm.dbg.declare(metadata i8** %[[ALLOCA:[^,]+]],
54
- // CHECK-x86_64-SAME: metadata ![[MSG_R:[0-9]+]], metadata !DIExpression(
55
- // CHECK-x86_64-SAME: DW_OP_deref, DW_OP_plus_uconst, [[OFFSET:[0-9]+]],
56
- // CHECK-x86_64-SAME: DW_OP_plus_uconst, {{[0-9]+}}, DW_OP_deref))
57
- // CHECK-x86_64: call void @llvm.dbg.declare(metadata i8** %[[ALLOCA]],
58
- // CHECK-x86_64-SAME: metadata ![[TAU_R:[0-9]+]], metadata !DIExpression(
59
- // CHECK-x86_64-SAME: DW_OP_deref, DW_OP_plus_uconst, [[OFFSET]],
60
- // CHECK-x86_64-SAME: DW_OP_plus_uconst, {{[0-9]+}}))
61
- // CHECK-x86_64: store i8* %2, i8** %[[ALLOCA]], align
62
-
63
- // CHECK-armv7: call void @llvm.dbg.declare(metadata i8** %[[ALLOCA:[^,]+]],
64
- // CHECK-armv7-SAME: metadata ![[MSG_R:[0-9]+]], metadata !DIExpression(
65
- // CHECK-armv7-SAME: DW_OP_deref, DW_OP_plus_uconst, [[OFFSET:[0-9]+]],
66
- // CHECK-armv7-SAME: DW_OP_plus_uconst, {{[0-9]+}}, DW_OP_deref))
67
- // CHECK-armv7: call void @llvm.dbg.declare(metadata i8** %[[ALLOCA]],
68
- // CHECK-armv7-SAME: metadata ![[TAU_R:[0-9]+]], metadata !DIExpression(
69
- // CHECK-armv7-SAME: DW_OP_deref, DW_OP_plus_uconst, [[OFFSET]],
70
- // CHECK-armv7-SAME: DW_OP_plus_uconst, {{[0-9]+}}))
71
- // CHECK-armv7: store i8* %2, i8** %[[ALLOCA]], align
72
-
73
- // CHECK-armv7k: call void @llvm.dbg.declare(metadata i8** %[[ALLOCA:[^,]+]],
74
- // CHECK-armv7k-SAME: metadata ![[MSG_R:[0-9]+]], metadata !DIExpression(
75
- // CHECK-armv7k-SAME: DW_OP_deref, DW_OP_plus_uconst, [[OFFSET:[0-9]+]],
76
- // CHECK-armv7k-SAME: DW_OP_plus_uconst, {{[0-9]+}}, DW_OP_deref))
77
- // CHECK-armv7k: call void @llvm.dbg.declare(metadata i8** %[[ALLOCA]],
78
- // CHECK-armv7k-SAME: metadata ![[TAU_R:[0-9]+]], metadata !DIExpression(
79
- // CHECK-armv7k-SAME: DW_OP_deref, DW_OP_plus_uconst, [[OFFSET]],
80
- // CHECK-armv7k-SAME: DW_OP_plus_uconst, {{[0-9]+}}))
81
- // CHECK-armv7k: store i8* %2, i8** %[[ALLOCA]], align
82
-
83
- // CHECK-armv7s: call void @llvm.dbg.declare(metadata i8** %[[ALLOCA:[^,]+]],
84
- // CHECK-armv7s-SAME: metadata ![[MSG_R:[0-9]+]], metadata !DIExpression(
85
- // CHECK-armv7s-SAME: DW_OP_deref, DW_OP_plus_uconst, [[OFFSET:[0-9]+]],
86
- // CHECK-armv7s-SAME: DW_OP_plus_uconst, {{[0-9]+}}, DW_OP_deref))
87
- // CHECK-armv7s: call void @llvm.dbg.declare(metadata i8** %[[ALLOCA]],
88
- // CHECK-armv7s-SAME: metadata ![[TAU_R:[0-9]+]], metadata !DIExpression(
89
- // CHECK-armv7s-SAME: DW_OP_deref, DW_OP_plus_uconst, [[OFFSET]],
90
- // CHECK-armv7s-SAME: DW_OP_plus_uconst, {{[0-9]+}}))
91
- // CHECK-armv7s: store i8* %2, i8** %[[ALLOCA]], align
92
-
93
- // CHECK-arm64: call void @llvm.dbg.declare(metadata i8** %[[ALLOCA:[^,]+]],
94
- // CHECK-arm64-SAME: metadata ![[MSG_R:[0-9]+]], metadata !DIExpression(
95
- // CHECK-arm64-SAME: DW_OP_deref, DW_OP_plus_uconst, [[OFFSET:[0-9]+]],
96
- // CHECK-arm64-SAME: DW_OP_plus_uconst, {{[0-9]+}}, DW_OP_deref))
97
- // CHECK-arm64: call void @llvm.dbg.declare(metadata i8** %[[ALLOCA]],
98
- // CHECK-arm64-SAME: metadata ![[TAU_R:[0-9]+]], metadata !DIExpression(
99
- // CHECK-arm64-SAME: DW_OP_deref, DW_OP_plus_uconst, [[OFFSET]],
100
- // CHECK-arm64-SAME: DW_OP_plus_uconst, {{[0-9]+}}))
101
- // CHECK-arm64: store i8* %2, i8** %[[ALLOCA]], align
102
-
103
- // CHECK-aarch64: call void @llvm.dbg.declare(metadata i8** %[[ALLOCA:[^,]+]],
104
- // CHECK-aarch64-SAME: metadata ![[MSG_R:[0-9]+]], metadata !DIExpression(
105
- // CHECK-aarch64-SAME: DW_OP_deref, DW_OP_plus_uconst, [[OFFSET:[0-9]+]],
106
- // CHECK-aarch64-SAME: DW_OP_plus_uconst, {{[0-9]+}}, DW_OP_deref))
107
- // CHECK-aarch64: call void @llvm.dbg.declare(metadata i8** %[[ALLOCA]],
108
- // CHECK-aarch64-SAME: metadata ![[TAU_R:[0-9]+]], metadata !DIExpression(
109
- // CHECK-aarch64-SAME: DW_OP_deref, DW_OP_plus_uconst, [[OFFSET]],
110
- // CHECK-aarch64-SAME: DW_OP_plus_uconst, {{[0-9]+}}))
111
- // CHECK-aarch64: store i8* %2, i8** %[[ALLOCA]], align
112
-
113
- // CHECK-powerpc64: call void @llvm.dbg.declare(metadata i8** %[[ALLOCA:[^,]+]],
114
- // CHECK-powerpc64-SAME: metadata ![[MSG_R:[0-9]+]], metadata !DIExpression(
115
- // CHECK-powerpc64-SAME: DW_OP_deref, DW_OP_plus_uconst, [[OFFSET:[0-9]+]],
116
- // CHECK-powerpc64-SAME: DW_OP_plus_uconst, {{[0-9]+}}, DW_OP_deref))
117
- // CHECK-powerpc64: call void @llvm.dbg.declare(metadata i8** %[[ALLOCA]],
118
- // CHECK-powerpc64-SAME: metadata ![[TAU_R:[0-9]+]], metadata !DIExpression(
119
- // CHECK-powerpc64-SAME: DW_OP_deref, DW_OP_plus_uconst, [[OFFSET]],
120
- // CHECK-powerpc64-SAME: DW_OP_plus_uconst, {{[0-9]+}}))
121
- // CHECK-powerpc64: store i8* %2, i8** %[[ALLOCA]], align
122
-
123
- // CHECK-powerpc64le: call void @llvm.dbg.declare(metadata i8** %[[ALLOCA:[^,]+]],
124
- // CHECK-powerpc64le-SAME: metadata ![[MSG_R:[0-9]+]], metadata !DIExpression(
125
- // CHECK-powerpc64le-SAME: DW_OP_deref, DW_OP_plus_uconst, [[OFFSET:[0-9]+]],
126
- // CHECK-powerpc64le-SAME: DW_OP_plus_uconst, {{[0-9]+}}, DW_OP_deref))
127
- // CHECK-powerpc64le: call void @llvm.dbg.declare(metadata i8** %[[ALLOCA]],
128
- // CHECK-powerpc64le-SAME: metadata ![[TAU_R:[0-9]+]], metadata !DIExpression(
129
- // CHECK-powerpc64le-SAME: DW_OP_deref, DW_OP_plus_uconst, [[OFFSET]],
130
- // CHECK-powerpc64le-SAME: DW_OP_plus_uconst, {{[0-9]+}}))
131
- // CHECK-powerpc64le: store i8* %2, i8** %[[ALLOCA]], align
24
+ // CHECK: call void @llvm.dbg.declare(metadata i8* %2,
25
+ // CHECK-SAME: metadata ![[TAU_R:[0-9]+]], metadata !DIExpression(
26
+ // CHECK-SAME: DW_OP_plus_uconst, [[OFFSET:[0-9]+]],
27
+ // CHECK-SAME: DW_OP_plus_uconst, {{[0-9]+}}))
28
+ // CHECK: call void @llvm.dbg.declare(metadata i8* %2,
29
+ // CHECK-SAME: metadata ![[MSG_R:[0-9]+]], metadata !DIExpression(
30
+ // CHECK-SAME: DW_OP_plus_uconst, [[OFFSET]],
31
+ // CHECK-SAME: DW_OP_plus_uconst, {{[0-9]+}}, DW_OP_deref))
132
32
133
33
use ( msg)
134
34
}
@@ -138,8 +38,8 @@ func withGenericArg<T>(_ msg: T) async {
138
38
await withGenericArg ( " hello (asynchronously) " )
139
39
}
140
40
}
141
- // CHECK: ![[TAU]] = !DILocalVariable(name: "$\CF\84_0_0",
142
41
// CHECK: ![[MSG]] = !DILocalVariable(name: "msg", arg: 1,
143
- // CHECK: ![[MSG_R ]] = !DILocalVariable(name: "msg", arg: 1 ,
42
+ // CHECK: ![[TAU ]] = !DILocalVariable(name: "$\CF\84_0_0" ,
144
43
// CHECK: ![[TAU_R]] = !DILocalVariable(name: "$\CF\84_0_0",
44
+ // CHECK: ![[MSG_R]] = !DILocalVariable(name: "msg", arg: 1,
145
45
0 commit comments