@@ -32,12 +32,10 @@ struct Gen2<Fwd : Q> : Q {}
32
32
// CHECK: [[METADATA_ELEMENT_0:%[^,]+]] = getelementptr inbounds [1 x %swift.type*], [1 x %swift.type*]* [[METADATA_PACK]]
33
33
// CHECK: store %swift.type* bitcast {{.*}}$s26variadic_generic_functions3S_2VMf{{.*}}, %swift.type** [[METADATA_ELEMENT_0]]
34
34
// CHECK: [[METADATA_PACK_PTR:%[^,]+]] = bitcast [1 x %swift.type*]* [[METADATA_PACK]] to %swift.type**
35
- // CHECK: [[HEAPIFIED_METADATA_PACK_PTR:%[^,]+]] = call swiftcc %swift.type** @swift_allocateMetadataPack(%swift.type** [[METADATA_PACK_PTR]], i64 1)
36
35
// CHECK: [[WTABLE_ELEMENT_0:%[^,]+]] = getelementptr inbounds [1 x i8**], [1 x i8**]* [[WTABLE_PACK]]
37
36
// CHECK: store i8** getelementptr inbounds {{.*}}$s26variadic_generic_functions3S_2VAA1PAAWP{{.*}}, i8*** [[WTABLE_ELEMENT_0]]
38
37
// CHECK: [[WTABLE_PACK_PTR:%[^,]+]] = bitcast [1 x i8**]* [[WTABLE_PACK]] to i8***
39
- // CHECK: [[HEAPIFIED_WTABLE_PACK_PTR:%[^%]+]] = call swiftcc i8*** @swift_allocateWitnessTablePack(i8*** [[WTABLE_PACK_PTR]], i64 1)
40
- // CHECK: call swiftcc void @g([[INT]] 1, %swift.type** [[HEAPIFIED_METADATA_PACK_PTR]], i8*** [[HEAPIFIED_WTABLE_PACK_PTR]])
38
+ // CHECK: call swiftcc void @g([[INT]] 1, %swift.type** [[METADATA_PACK_PTR]], i8*** [[WTABLE_PACK_PTR]])
41
39
sil @c : $() -> () {
42
40
%g = function_ref @g : $@convention(thin) <each T : P> () -> ()
43
41
apply %g<Pack{S_2}>() : $@convention(thin) <each T : P> () -> ()
@@ -91,10 +89,9 @@ sil @f1c : $<each T : PA where repeat each T.A : P> () -> () {}
91
89
// CHECK-SAME: i8*** %"each T.PA",
92
90
// CHECK-SAME: i8*** [[ASSOCIATEDTYPES_CONFORMANCES_TO_Q:%[^,]+]])
93
91
// CHECK: [[ASSOCIATEDTYPES:%[^,]+]] = alloca %swift.type*, [[INT]] [[SHAPE]]
94
- // CHECK: [[HEAPIFIED_ASSOCIATEDTYPES:%[^,]+]] = call swiftcc %swift.type** @swift_allocateMetadataPack(%swift.type** [[ASSOCIATEDTYPES]], i64 %0)
95
92
// CHECK: call swiftcc void @associatedtype_with_added_conformance_callee(
96
93
// CHECK-SAME: [[INT]] [[SHAPE]],
97
- // CHECK-SAME: %swift.type** [[HEAPIFIED_ASSOCIATEDTYPES ]],
94
+ // CHECK-SAME: %swift.type** [[ASSOCIATEDTYPES ]],
98
95
// CHECK-SAME: i8*** [[ASSOCIATEDTYPES_CONFORMANCES_TO_Q]])
99
96
sil @associatedtype_with_added_conformance : $<each T : PA where repeat each T.A : Q> () -> () {
100
97
%callee = function_ref @associatedtype_with_added_conformance_callee : $@convention(thin) <each T : Q> () -> ()
@@ -112,10 +109,9 @@ sil @associatedtype_with_added_conformance_callee : $<each T : Q> () -> () {}
112
109
// CHECK-SAME: i8*** %"each T.A.QA",
113
110
// CHECK-SAME: i8*** [[ASSOCIATEDTYPES_CONFORMANCES_TO_Q:%[^,]+]])
114
111
// CHECK: [[ASSOCIATEDTYPES:%[^,]+]] = alloca %swift.type*, [[INT]] [[SHAPE]]
115
- // CHECK: [[HEAPIFIED_ASSOCIATEDTYPES:%[^,]+]] = call swiftcc %swift.type** @swift_allocateMetadataPack(%swift.type** [[ASSOCIATEDTYPES]], i64 [[SHAPE]])
116
112
// CHECK: call swiftcc void @associatedtype_with_added_conformance_2_callee(
117
113
// CHECK-SAME: [[INT]] [[SHAPE]],
118
- // CHECK-SAME: %swift.type** [[HEAPIFIED_ASSOCIATEDTYPES ]],
114
+ // CHECK-SAME: %swift.type** [[ASSOCIATEDTYPES ]],
119
115
// CHECK-SAME: i8*** [[ASSOCIATEDTYPES_CONFORMANCES_TO_Q]])
120
116
sil @associatedtype_with_added_conformance_2 : $<each T : PA where repeat each T.A : QA, repeat each T.A.A : R> () -> () {
121
117
%j = function_ref @associatedtype_with_added_conformance_2_callee : $@convention(thin) <each T : R> () -> ()
@@ -131,15 +127,13 @@ sil @associatedtype_with_added_conformance_2_callee : $<each T : R> () -> () {}
131
127
// CHECK-SAME: %swift.type** %"each T",
132
128
// CHECK-SAME: i8*** %"each T.Q")
133
129
// CHECK: [[GEN2_TYPES:%[^,]+]] = alloca %swift.type*, [[INT]] [[SHAPE]]
134
- // CHECK: [[HEAPIFIED_GEN2_TYPES:%[^,]+]] = call swiftcc %swift.type** @swift_allocateMetadataPack(%swift.type** [[GEN2_TYPES]], i64 [[SHAPE]])
135
130
// CHECK: [[STORED_STACK_LOC:%[^,]+]] = call i8* @llvm.stacksave()
136
131
// CHECK: [[GEN2_CONFORMANCES_TO_Q:%[^,]+]] = alloca i8**, [[INT]] [[SHAPE]]
137
- // CHECK: [[HEAPIFIED_GEN2_CONFORMANCES_TO_Q:%[^%]+]] = call swiftcc i8*** @swift_allocateWitnessTablePack(i8*** [[GEN2_CONFORMANCES_TO_Q]], i64 [[SHAPE]])
138
- // CHECK: call void @llvm.stackrestore(i8* [[STORED_STACK_LOC]])
139
132
// CHECK: call swiftcc void @associatedtype_with_forwarded_conformance_1_callee(
140
133
// CHECK-SAME: [[INT]] [[SHAPE]],
141
- // CHECK-SAME: %swift.type** [[HEAPIFIED_GEN2_TYPES]],
142
- // CHECK-SAME: i8*** [[HEAPIFIED_GEN2_CONFORMANCES_TO_Q]])
134
+ // CHECK-SAME: %swift.type** [[GEN2_TYPES]],
135
+ // CHECK-SAME: i8*** [[GEN2_CONFORMANCES_TO_Q]])
136
+ // CHECK: call void @llvm.stackrestore(i8* [[STORED_STACK_LOC]])
143
137
sil @associatedtype_with_forwarded_conformance_1 : $<each T : Q> () -> () {
144
138
%i = function_ref @associatedtype_with_forwarded_conformance_1_callee : $@convention(thin) <each T : Q> () -> ()
145
139
apply %i<Pack{repeat Gen2<each T>}>() : $@convention(thin) <each T : Q> () -> ()
@@ -156,16 +150,14 @@ sil @associatedtype_with_forwarded_conformance_1_callee : $<each T : Q> () -> ()
156
150
// CHECK-SAME: i8*** %"each T.PA",
157
151
// CHECK-SAME: i8*** %"each T.A.Q")
158
152
// CHECK: [[GEN1_TYPES:%[^,]+]] = alloca %swift.type*, [[INT]] [[SHAPE]]
159
- // CHECK: [[HEAPIFIED_GEN1_TYPES:%[^,]+]] = call swiftcc %swift.type** @swift_allocateMetadataPack(%swift.type** [[GEN1_TYPES]], i64 [[SHAPE]])
160
153
// CHECK: [[STORED_STACK_LOC:%[^,]+]] = call i8* @llvm.stacksave()
161
154
// CHECK: [[GEN1_CONFORMANCES_TO_PA:%[^,]+]] = alloca i8**, [[INT]] [[SHAPE]]
162
- // CHECK: [[HEAPIFIED_GEN1_CONFORMANCES_TO_PA:%[^%]+]] = call swiftcc i8*** @swift_allocateWitnessTablePack(i8*** [[GEN1_CONFORMANCES_TO_PA]], i64 [[SHAPE]])
163
- // CHECK: call void @llvm.stackrestore(i8* [[STORED_STACK_LOC]])
164
155
// CHECK: call swiftcc void @generictype_with_forwarded_conformance_2_callee(
165
156
// CHECK-SAME: [[INT]] [[SHAPE]],
166
- // CHECK-SAME: %swift.type** [[HEAPIFIED_GEN1_TYPES ]],
167
- // CHECK-SAME: i8*** [[HEAPIFIED_GEN1_CONFORMANCES_TO_PA ]],
157
+ // CHECK-SAME: %swift.type** [[GEN1_TYPES ]],
158
+ // CHECK-SAME: i8*** [[GEN1_CONFORMANCES_TO_PA ]],
168
159
// CHECK-SAME: i8*** %"each T.A.Q")
160
+ // CHECK: call void @llvm.stackrestore(i8* [[STORED_STACK_LOC]])
169
161
sil @generictype_with_forwarded_conformance_2 : $<each T : PA where repeat each T.A : Q>() -> () {
170
162
%callee = function_ref @generictype_with_forwarded_conformance_2_callee : $@convention(thin) <each T : PA where repeat each T.A : Q> () -> ()
171
163
apply %callee<Pack{repeat Gen1<each T>}>() : $@convention(thin) <each T : PA where repeat each T.A : Q> () -> ()
@@ -181,16 +173,14 @@ sil @generictype_with_forwarded_conformance_2_callee : $<each T : PA where repea
181
173
// CHECK-SAME: i8*** %"each T.PA",
182
174
// CHECK-SAME: i8*** %"each T.A.Q")
183
175
// CHECK: [[GEN1_GEN1_TYPES:%[^,]+]] = alloca %swift.type*, [[INT]] [[SHAPE]]
184
- // CHECK: [[HEAPIFIED_GEN1_GEN1_TYPES:%[^%]+]] = call swiftcc %swift.type** @swift_allocateMetadataPack(%swift.type** [[GEN1_GEN1_TYPES]], i64 [[SHAPE]])
185
176
// CHECK: [[STORED_STACK_LOC:%[^,]+]] = call i8* @llvm.stacksave()
186
177
// CHECK: [[GEN1_GEN1_CONFORMANCES_TO_PA:%[^,]+]] = alloca i8**, [[INT]] [[SHAPE]]
187
- // CHECK: [[HEAPIFIED_GEN1_GEN1_CONFORMANCES_TO_PA:%[^%]+]] = call swiftcc i8*** @swift_allocateWitnessTablePack(i8*** [[GEN1_GEN1_CONFORMANCES_TO_PA]], i64 [[SHAPE]])
188
- // CHECK: call void @llvm.stackrestore(i8* [[STORED_STACK_LOC]])
189
178
// CHECK: call swiftcc void @generic_with_forwarded_conformance_3_callee(
190
179
// CHECK-SAME: [[INT]] [[SHAPE]],
191
- // CHECK-SAME: %swift.type** [[HEAPIFIED_GEN1_GEN1_TYPES ]],
192
- // CHECK-SAME: i8*** [[HEAPIFIED_GEN1_GEN1_CONFORMANCES_TO_PA ]],
180
+ // CHECK-SAME: %swift.type** [[GEN1_GEN1_TYPES ]],
181
+ // CHECK-SAME: i8*** [[GEN1_GEN1_CONFORMANCES_TO_PA ]],
193
182
// CHECK-SAME: i8*** %"each T.A.Q")
183
+ // CHECK: call void @llvm.stackrestore(i8* [[STORED_STACK_LOC]])
194
184
sil @generic_with_forwarded_conformance_3 : $<each T : PA where repeat each T.A : Q> () -> () {
195
185
%callee = function_ref @generic_with_forwarded_conformance_3_callee : $@convention(thin) <each T : PA where repeat each T.A : Q> () -> ()
196
186
apply %callee<Pack{repeat Gen1<Gen1<each T>>}>() : $@convention(thin) <each T : PA where repeat each T.A : Q> () -> ()
0 commit comments