@@ -45,9 +45,9 @@ public struct S {
45
45
// @in_guaranteed.
46
46
// (*NOTE* this includes address and non-address only types).
47
47
// This is a temporary limitation.
48
- // CHECK-LABEL: sil @address_closure : $@convention(thin) (@in Int ) -> () {
49
- sil @address_closure : $@convention(thin) (@in Int ) -> () {
50
- bb0(%0 : $*Int ):
48
+ // CHECK-LABEL: sil @address_closure : $@convention(thin) (@in Int32 ) -> () {
49
+ sil @address_closure : $@convention(thin) (@in Int32 ) -> () {
50
+ bb0(%0 : $*Int32 ):
51
51
%6 = tuple()
52
52
return %6 : $()
53
53
}
@@ -60,17 +60,17 @@ bb0(%0 : $*S):
60
60
61
61
// Check that a specialization of address_closure_user was generated which does not
62
62
// take a closure as a parameter anymore.
63
- // CHECK-LABEL: sil shared @{{.*}}address_closure_user{{.*}} : $@convention(thin) (Int64 , @inout_aliasable Int64 ) -> ()
64
- // CHECK: function_ref @address_closure_trivial : $@convention(thin) (Int64 , @inout_aliasable Int64 ) -> ()
65
- // CHECK: partial_apply %{{.*}} : $@convention(thin) (Int64 , @inout_aliasable Int64 ) -> ()
63
+ // CHECK-LABEL: sil shared @{{.*}}address_closure_user{{.*}} : $@convention(thin) (Int32 , @inout_aliasable Int32 ) -> ()
64
+ // CHECK: function_ref @address_closure_trivial : $@convention(thin) (Int32 , @inout_aliasable Int32 ) -> ()
65
+ // CHECK: partial_apply %{{.*}} : $@convention(thin) (Int32 , @inout_aliasable Int32 ) -> ()
66
66
// CHECK: apply
67
67
// CHECK: return
68
68
69
69
// Check that a specialization of address_closure_user was generated which does not
70
70
// take a closure as a parameter anymore.
71
- // CHECK-LABEL: sil shared @{{.*}}address_closure_user{{.*}} : $@convention(thin) (@inout_aliasable Int64 ) -> ()
72
- // CHECK: function_ref @address_closure_trivial_mutating : $@convention(thin) (@inout_aliasable Int64 ) -> ()
73
- // CHECK: partial_apply %{{.*}} : $@convention(thin) (@inout_aliasable Int64 ) -> ()
71
+ // CHECK-LABEL: sil shared @{{.*}}address_closure_user{{.*}} : $@convention(thin) (@inout_aliasable Int32 ) -> ()
72
+ // CHECK: function_ref @address_closure_trivial_mutating : $@convention(thin) (@inout_aliasable Int32 ) -> ()
73
+ // CHECK: partial_apply %{{.*}} : $@convention(thin) (@inout_aliasable Int32 ) -> ()
74
74
// CHECK: apply
75
75
// CHECK: return
76
76
@@ -114,12 +114,12 @@ bb0(%0 : $@callee_owned () -> ()):
114
114
return %9999 : $()
115
115
}
116
116
117
- // CHECK-LABEL: sil @address_caller : $@convention(thin) (@in Int ) -> () {
117
+ // CHECK-LABEL: sil @address_caller : $@convention(thin) (@in Int32 ) -> () {
118
118
// CHECK-NOT: _TTSf1cl15address_closureSi__address_closure_user
119
- sil @address_caller : $@convention(thin) (@in Int ) -> () {
120
- bb0(%0 : $*Int ):
121
- %1 = function_ref @address_closure : $@convention(thin) (@in Int ) -> ()
122
- %2 = partial_apply %1(%0) : $@convention(thin) (@in Int ) -> ()
119
+ sil @address_caller : $@convention(thin) (@in Int32 ) -> () {
120
+ bb0(%0 : $*Int32 ):
121
+ %1 = function_ref @address_closure : $@convention(thin) (@in Int32 ) -> ()
122
+ %2 = partial_apply %1(%0) : $@convention(thin) (@in Int32 ) -> ()
123
123
%3 = function_ref @address_closure_user : $@convention(thin) (@owned @callee_owned () -> ()) -> ()
124
124
%4 = apply %3(%2) : $@convention(thin) (@owned @callee_owned () -> ()) -> ()
125
125
%9999 = tuple()
@@ -131,21 +131,21 @@ bb0(%0 : $*Int):
131
131
// (*NOTE* this includes address and non-address only types).
132
132
// This is a temporary limitation.
133
133
//
134
- // CHECK-LABEL: sil @address_caller_complex : $@convention(thin) (@in Int ) -> ()
135
- // CHECK-NOT: function_ref @{{.*}}address_closure_user{{.*}} : $@convention(thin) (@in Int ) -> ()
134
+ // CHECK-LABEL: sil @address_caller_complex : $@convention(thin) (@in Int32 ) -> ()
135
+ // CHECK-NOT: function_ref @{{.*}}address_closure_user{{.*}} : $@convention(thin) (@in Int32 ) -> ()
136
136
// CHECK: partial_apply
137
- // CHECK-NOT: function_ref @{{.*}}address_closure_user{{.*}} : $@convention(thin) (@in Int ) -> ()
137
+ // CHECK-NOT: function_ref @{{.*}}address_closure_user{{.*}} : $@convention(thin) (@in Int32 ) -> ()
138
138
// CHECK: return
139
- sil @address_caller_complex : $@convention(thin) (@in Int ) -> () {
140
- bb0(%0 : $*Int ):
141
- %00 = alloc_stack $Int
142
- %01 = load %0 : $*Int
143
- store %01 to %00 : $*Int
144
- %1 = function_ref @address_closure : $@convention(thin) (@in Int ) -> ()
145
- %2 = partial_apply %1(%00) : $@convention(thin) (@in Int ) -> ()
139
+ sil @address_caller_complex : $@convention(thin) (@in Int32 ) -> () {
140
+ bb0(%0 : $*Int32 ):
141
+ %00 = alloc_stack $Int32
142
+ %01 = load %0 : $*Int32
143
+ store %01 to %00 : $*Int32
144
+ %1 = function_ref @address_closure : $@convention(thin) (@in Int32 ) -> ()
145
+ %2 = partial_apply %1(%00) : $@convention(thin) (@in Int32 ) -> ()
146
146
%3 = function_ref @address_closure_user : $@convention(thin) (@owned @callee_owned () -> ()) -> ()
147
147
%4 = apply %3(%2) : $@convention(thin) (@owned @callee_owned () -> ()) -> ()
148
- dealloc_stack %00 : $*Int
148
+ dealloc_stack %00 : $*Int32
149
149
br bb1
150
150
151
151
bb1:
@@ -187,69 +187,69 @@ bb1:
187
187
188
188
// More complex tests involving address arguments.
189
189
190
- sil @address_closure_trivial : $@convention(thin) (Int64 , @inout_aliasable Int64 ) -> () {
191
- bb0(%0 : $Int64 , %1 : $*Int64 ):
192
- %9 = integer_literal $Builtin.Int64 , 42
193
- %10 = struct $Int64 (%9 : $Builtin.Int64 )
194
- store %10 to %1 : $*Int64
190
+ sil @address_closure_trivial : $@convention(thin) (Int32 , @inout_aliasable Int32 ) -> () {
191
+ bb0(%0 : $Int32 , %1 : $*Int32 ):
192
+ %9 = integer_literal $Builtin.Int32 , 42
193
+ %10 = struct $Int32 (%9 : $Builtin.Int32 )
194
+ store %10 to %1 : $*Int32
195
195
%12 = tuple ()
196
196
return %12 : $()
197
197
}
198
198
199
199
// CHECK-LABEL: sil @address_caller_trivial
200
200
// CHECK-NOT: partial_apply
201
- // CHECK: [[SPECIALIZED_FN1:%.*]] = function_ref @{{.*}}address_closure_user{{.*}} : $@convention(thin) (Int64 , @inout_aliasable Int64 ) -> ()
201
+ // CHECK: [[SPECIALIZED_FN1:%.*]] = function_ref @{{.*}}address_closure_user{{.*}} : $@convention(thin) (Int32 , @inout_aliasable Int32 ) -> ()
202
202
// CHECK: apply [[SPECIALIZED_FN1]]{{.*}}
203
203
// CHECK-NOT: partial_apply
204
204
// CHECK: return
205
- sil @address_caller_trivial: $@convention(thin) (Int64 ) -> Int64 {
206
- bb0(%0 : $Int64 ):
207
- %2 = alloc_stack $Int64 , var, name "xx"
208
- store %0 to %2 : $*Int64
205
+ sil @address_caller_trivial: $@convention(thin) (Int32 ) -> Int32 {
206
+ bb0(%0 : $Int32 ):
207
+ %2 = alloc_stack $Int32 , var, name "xx"
208
+ store %0 to %2 : $*Int32
209
209
// function_ref address_closure_user(f:)
210
210
%4 = function_ref @address_closure_user : $@convention(thin) (@owned @callee_owned () -> ()) -> ()
211
211
// function_ref address_closure_trivial(x:)
212
- %5 = function_ref @address_closure_trivial : $@convention(thin) (Int64 , @inout_aliasable Int64 ) -> ()
213
- %6 = partial_apply %5(%0, %2) : $@convention(thin) (Int64 , @inout_aliasable Int64 ) -> ()
212
+ %5 = function_ref @address_closure_trivial : $@convention(thin) (Int32 , @inout_aliasable Int32 ) -> ()
213
+ %6 = partial_apply %5(%0, %2) : $@convention(thin) (Int32 , @inout_aliasable Int32 ) -> ()
214
214
%7 = apply %4(%6) : $@convention(thin) (@owned @callee_owned () -> ()) -> ()
215
- %8 = load %2 : $*Int64
216
- dealloc_stack %2 : $*Int64
217
- return %8 : $Int64
215
+ %8 = load %2 : $*Int32
216
+ dealloc_stack %2 : $*Int32
217
+ return %8 : $Int32
218
218
}
219
219
220
- sil @address_closure_trivial_mutating : $@convention(thin) (@inout_aliasable Int64 ) -> () {
221
- bb0(%0 : $*Int64 ):
222
- %2 = struct_element_addr %0 : $*Int64 , #Int64 ._value
223
- %3 = load %2 : $*Builtin.Int64
224
- %4 = integer_literal $Builtin.Int64 , 1
220
+ sil @address_closure_trivial_mutating : $@convention(thin) (@inout_aliasable Int32 ) -> () {
221
+ bb0(%0 : $*Int32 ):
222
+ %2 = struct_element_addr %0 : $*Int32 , #Int32 ._value
223
+ %3 = load %2 : $*Builtin.Int32
224
+ %4 = integer_literal $Builtin.Int32 , 1
225
225
%5 = integer_literal $Builtin.Int1, -1
226
- %6 = builtin "sadd_with_overflow_Int64 "(%3 : $Builtin.Int64 , %4 : $Builtin.Int64 , %5 : $Builtin.Int1) : $(Builtin.Int64 , Builtin.Int1)
227
- %7 = tuple_extract %6 : $(Builtin.Int64 , Builtin.Int1), 0
228
- %8 = tuple_extract %6 : $(Builtin.Int64 , Builtin.Int1), 1
226
+ %6 = builtin "sadd_with_overflow_Int32 "(%3 : $Builtin.Int32 , %4 : $Builtin.Int32 , %5 : $Builtin.Int1) : $(Builtin.Int32 , Builtin.Int1)
227
+ %7 = tuple_extract %6 : $(Builtin.Int32 , Builtin.Int1), 0
228
+ %8 = tuple_extract %6 : $(Builtin.Int32 , Builtin.Int1), 1
229
229
cond_fail %8 : $Builtin.Int1
230
- %10 = struct $Int64 (%7 : $Builtin.Int64 )
231
- store %10 to %0 : $*Int64
230
+ %10 = struct $Int32 (%7 : $Builtin.Int32 )
231
+ store %10 to %0 : $*Int32
232
232
%12 = tuple ()
233
233
return %12 : $()
234
234
}
235
235
236
236
// CHECK-LABEL: sil @address_caller_trivial_mutating
237
237
// CHECK-NOT: partial_apply
238
- // CHECK: [[SPECIALIZED_FN1:%.*]] = function_ref @{{.*}}address_closure_user{{.*}} : $@convention(thin) (@inout_aliasable Int64 ) -> ()
238
+ // CHECK: [[SPECIALIZED_FN1:%.*]] = function_ref @{{.*}}address_closure_user{{.*}} : $@convention(thin) (@inout_aliasable Int32 ) -> ()
239
239
// CHECK: apply [[SPECIALIZED_FN1]]{{.*}}
240
240
// CHECK-NOT: partial_apply
241
241
// CHECK: return
242
- sil @address_caller_trivial_mutating: $@convention(thin) (Int64 ) -> Int64 {
243
- bb0(%0 : $Int64 ):
244
- %2 = alloc_stack $Int64 , var, name "xx"
245
- store %0 to %2 : $*Int64
242
+ sil @address_caller_trivial_mutating: $@convention(thin) (Int32 ) -> Int32 {
243
+ bb0(%0 : $Int32 ):
244
+ %2 = alloc_stack $Int32 , var, name "xx"
245
+ store %0 to %2 : $*Int32
246
246
%4 = function_ref @address_closure_user : $@convention(thin) (@owned @callee_owned () -> ()) -> ()
247
- %5 = function_ref @address_closure_trivial_mutating : $@convention(thin) (@inout_aliasable Int64 ) -> () // user: %6
248
- %6 = partial_apply %5(%2) : $@convention(thin) (@inout_aliasable Int64 ) -> () // user: %7
247
+ %5 = function_ref @address_closure_trivial_mutating : $@convention(thin) (@inout_aliasable Int32 ) -> () // user: %6
248
+ %6 = partial_apply %5(%2) : $@convention(thin) (@inout_aliasable Int32 ) -> () // user: %7
249
249
%7 = apply %4(%6) : $@convention(thin) (@owned @callee_owned () -> ()) -> ()
250
- %8 = load %2 : $*Int64
251
- dealloc_stack %2 : $*Int64
252
- return %8 : $Int64
250
+ %8 = load %2 : $*Int32
251
+ dealloc_stack %2 : $*Int32
252
+ return %8 : $Int32
253
253
}
254
254
255
255
// CHECK-LABEL: sil @address_caller_existential
@@ -260,8 +260,8 @@ bb0(%0 : $Int64):
260
260
// CHECK: apply [[SPECIALIZED_FN1]]{{.*}}
261
261
// CHECK-NOT: partial_apply
262
262
// CHECK: return
263
- sil @address_caller_existential : $@convention(thin) (@in P, @in P, Int ) -> @out P {
264
- bb0(%0 : $*P, %1 : $*P, %2 : $*P, %3 : $Int ):
263
+ sil @address_caller_existential : $@convention(thin) (@in P, @in P, Int32 ) -> @out P {
264
+ bb0(%0 : $*P, %1 : $*P, %2 : $*P, %3 : $Int32 ):
265
265
%7 = alloc_stack $P
266
266
copy_addr %1 to [initialization] %7 : $*P
267
267
%9 = function_ref @address_closure_existential : $@convention(thin) (@inout_aliasable P) -> ()
@@ -271,9 +271,9 @@ bb0(%0 : $*P, %1 : $*P, %2 : $*P, %3 : $Int):
271
271
%14 = apply %12(%10) : $@convention(thin) (@owned @callee_owned () -> ()) -> ()
272
272
strong_retain %10 : $@callee_owned () -> ()
273
273
%16 = apply %12(%10) : $@convention(thin) (@owned @callee_owned () -> ()) -> ()
274
- %17 = integer_literal $Builtin.Int64 , 10
275
- %18 = struct_extract %3 : $Int , #Int ._value
276
- %19 = builtin "cmp_slt_Int64 "(%17 : $Builtin.Int64 , %18 : $Builtin.Int64 ) : $Builtin.Int1
274
+ %17 = integer_literal $Builtin.Int32 , 10
275
+ %18 = struct_extract %3 : $Int32 , #Int32 ._value
276
+ %19 = builtin "cmp_slt_Int32 "(%17 : $Builtin.Int32 , %18 : $Builtin.Int32 ) : $Builtin.Int1
277
277
cond_br %19, bb1, bb2
278
278
279
279
bb1:
0 commit comments