@@ -85,12 +85,10 @@ func inoutReadRead(x: inout Int) {
85
85
doTwo ( { _ = x } , { _ = x } )
86
86
}
87
87
// CHECK-LABEL: sil hidden @$s27access_enforcement_noescape09inoutReadE01xySiz_tF : $@convention(thin) (@inout Int) -> () {
88
- // CHECK: [[PA1:%.*]] = partial_apply [callee_guaranteed]
89
- // CHECK: [[CVT1:%.*]] = convert_escape_to_noescape [[PA1]] : $@callee_guaranteed () -> () to $@noescape @callee_guaranteed () -> ()
90
- // CHECK: [[PA2:%.*]] = partial_apply [callee_guaranteed]
91
- // CHECK: [[CVT2:%.*]] = convert_escape_to_noescape [[PA2]] : $@callee_guaranteed () -> () to $@noescape @callee_guaranteed () -> ()
88
+ // CHECK: [[PA1:%.*]] = partial_apply [callee_guaranteed] [on_stack]
89
+ // CHECK: [[PA2:%.*]] = partial_apply [callee_guaranteed] [on_stack]
92
90
// CHECK-NOT: begin_access
93
- // CHECK: apply %{{.*}}([[CVT1 ]], [[CVT2 ]])
91
+ // CHECK: apply %{{.*}}([[PA1 ]], [[PA2 ]])
94
92
// CHECK-LABEL: } // end sil function '$s27access_enforcement_noescape09inoutReadE01xySiz_tF'
95
93
96
94
// closure #1 in inoutReadRead(x:)
@@ -119,10 +117,9 @@ func readBoxRead() {
119
117
// CHECK-LABEL: sil hidden @$s27access_enforcement_noescape11readBoxReadyyF : $@convention(thin) () -> () {
120
118
// CHECK: [[PA1:%.*]] = partial_apply [callee_guaranteed]
121
119
// CHECK: [[CVT1:%.*]] = convert_escape_to_noescape [[PA1]] : $@callee_guaranteed () -> () to $@noescape @callee_guaranteed () -> ()
122
- // CHECK: [[PA2:%.*]] = partial_apply [callee_guaranteed]
123
- // CHECK: [[CVT2:%.*]] = convert_escape_to_noescape [[PA2]] : $@callee_guaranteed () -> () to $@noescape @callee_guaranteed () -> ()
120
+ // CHECK: [[PA2:%.*]] = partial_apply [callee_guaranteed] [on_stack]
124
121
// CHECK-NOT: begin_access
125
- // CHECK: apply %{{.*}}([[CVT1]], [[CVT2 ]])
122
+ // CHECK: apply %{{.*}}([[CVT1]], [[PA2 ]])
126
123
// CHECK-LABEL: } // end sil function '$s27access_enforcement_noescape11readBoxReadyyF'
127
124
128
125
// closure #1 in readBoxRead()
@@ -153,12 +150,10 @@ func readWrite() {
153
150
doTwo ( { _ = x } , { x = 42 } )
154
151
}
155
152
// CHECK-LABEL: sil hidden @$s27access_enforcement_noescape9readWriteyyF : $@convention(thin) () -> () {
156
- // CHECK: [[PA1:%.*]] = partial_apply [callee_guaranteed]
157
- // CHECK: [[CVT1:%.*]] = convert_escape_to_noescape [[PA1]] : $@callee_guaranteed () -> () to $@noescape @callee_guaranteed () -> ()
158
- // CHECK: [[PA2:%.*]] = partial_apply [callee_guaranteed]
159
- // CHECK: [[CVT2:%.*]] = convert_escape_to_noescape [[PA2]] : $@callee_guaranteed () -> () to $@noescape @callee_guaranteed () -> ()
153
+ // CHECK: [[PA1:%.*]] = partial_apply [callee_guaranteed] [on_stack]
154
+ // CHECK: [[PA2:%.*]] = partial_apply [callee_guaranteed] [on_stack]
160
155
// CHECK-NOT: begin_access
161
- // CHECK: apply %{{.*}}([[CVT1 ]], [[CVT2 ]])
156
+ // CHECK: apply %{{.*}}([[PA1 ]], [[PA2 ]])
162
157
// CHECK-LABEL: } // end sil function '$s27access_enforcement_noescape9readWriteyyF'
163
158
164
159
// closure #1 in readWrite()
@@ -195,10 +190,9 @@ func readBoxWrite() {
195
190
// CHECK-LABEL: sil hidden @$s27access_enforcement_noescape12readBoxWriteyyF : $@convention(thin) () -> () {
196
191
// CHECK: [[PA1:%.*]] = partial_apply [callee_guaranteed]
197
192
// CHECK: [[CVT1:%.*]] = convert_escape_to_noescape [[PA1]] : $@callee_guaranteed () -> () to $@noescape @callee_guaranteed () -> ()
198
- // CHECK: [[PA2:%.*]] = partial_apply [callee_guaranteed]
199
- // CHECK: [[CVT2:%.*]] = convert_escape_to_noescape [[PA2]] : $@callee_guaranteed () -> () to $@noescape @callee_guaranteed () -> ()
193
+ // CHECK: [[PA2:%.*]] = partial_apply [callee_guaranteed] [on_stack]
200
194
// CHECK-NOT: begin_access
201
- // CHECK: apply %{{.*}}([[CVT1]], [[CVT2 ]])
195
+ // CHECK: apply %{{.*}}([[CVT1]], [[PA2 ]])
202
196
// CHECK-LABEL: } // end sil function '$s27access_enforcement_noescape12readBoxWriteyyF'
203
197
204
198
// closure #1 in readBoxWrite()
@@ -230,11 +224,10 @@ func readWriteBox() {
230
224
231
225
// CHECK-LABEL: sil hidden @$s27access_enforcement_noescape12readWriteBoxyyF : $@convention(thin) () -> () {
232
226
// CHECK: [[PA1:%.*]] = partial_apply [callee_guaranteed]
233
- // CHECK: [[PA2:%.*]] = partial_apply [callee_guaranteed]
234
- // CHECK: [[CVT2:%.*]] = convert_escape_to_noescape [[PA2]] : $@callee_guaranteed () -> () to $@noescape @callee_guaranteed () -> ()
227
+ // CHECK: [[PA2:%.*]] = partial_apply [callee_guaranteed] [on_stack]
235
228
// CHECK: [[CVT1:%.*]] = convert_escape_to_noescape [[PA1]] : $@callee_guaranteed () -> () to $@noescape @callee_guaranteed () -> ()
236
229
// CHECK-NOT: begin_access
237
- // CHECK: apply %{{.*}}([[CVT2 ]], [[CVT1]])
230
+ // CHECK: apply %{{.*}}([[PA2 ]], [[CVT1]])
238
231
// CHECK-LABEL: } // end sil function '$s27access_enforcement_noescape12readWriteBoxyyF'
239
232
240
233
// closure #1 in readWriteBox()
@@ -319,12 +312,10 @@ func writeWrite() {
319
312
}
320
313
321
314
// CHECK-LABEL: sil hidden @$s27access_enforcement_noescape10writeWriteyyF : $@convention(thin) () -> () {
322
- // CHECK: [[PA1:%.*]] = partial_apply [callee_guaranteed]
323
- // CHECK: [[CVT1:%.*]] = convert_escape_to_noescape [[PA1]] : $@callee_guaranteed () -> () to $@noescape @callee_guaranteed () -> ()
324
- // CHECK: [[PA2:%.*]] = partial_apply [callee_guaranteed]
325
- // CHECK: [[CVT2:%.*]] = convert_escape_to_noescape [[PA2]] : $@callee_guaranteed () -> () to $@noescape @callee_guaranteed () -> ()
315
+ // CHECK: [[PA1:%.*]] = partial_apply [callee_guaranteed] [on_stack]
316
+ // CHECK: [[PA2:%.*]] = partial_apply [callee_guaranteed] [on_stack]
326
317
// CHECK-NOT: begin_access
327
- // CHECK: apply %{{.*}}([[CVT1 ]], [[CVT2 ]])
318
+ // CHECK: apply %{{.*}}([[PA1 ]], [[PA2 ]])
328
319
// CHECK-LABEL: } // end sil function '$s27access_enforcement_noescape10writeWriteyyF'
329
320
330
321
// closure #1 in writeWrite()
@@ -348,12 +339,10 @@ func inoutWriteWrite(x: inout Int) {
348
339
}
349
340
350
341
// CHECK-LABEL: sil hidden @$s27access_enforcement_noescape010inoutWriteE01xySiz_tF : $@convention(thin) (@inout Int) -> () {
351
- // CHECK: [[PA1:%.*]] = partial_apply [callee_guaranteed]
352
- // CHECK: [[CVT1:%.*]] = convert_escape_to_noescape [[PA1]] : $@callee_guaranteed () -> () to $@noescape @callee_guaranteed () -> ()
353
- // CHECK: [[PA2:%.*]] = partial_apply [callee_guaranteed]
354
- // CHECK: [[CVT2:%.*]] = convert_escape_to_noescape [[PA2]] : $@callee_guaranteed () -> () to $@noescape @callee_guaranteed () -> ()
342
+ // CHECK: [[PA1:%.*]] = partial_apply [callee_guaranteed] [on_stack]
343
+ // CHECK: [[PA2:%.*]] = partial_apply [callee_guaranteed] [on_stack]
355
344
// CHECK-NOT: begin_access
356
- // CHECK: apply %{{.*}}([[CVT1 ]], [[CVT2 ]])
345
+ // CHECK: apply %{{.*}}([[PA1 ]], [[PA2 ]])
357
346
// CHECK-LABEL: } // end sil function '$s27access_enforcement_noescape010inoutWriteE01xySiz_tF'
358
347
359
348
// closure #1 in inoutWriteWrite(x:)
@@ -381,11 +370,10 @@ func writeWriteBox() {
381
370
382
371
// CHECK-LABEL: sil hidden @$s27access_enforcement_noescape13writeWriteBoxyyF : $@convention(thin) () -> () {
383
372
// CHECK: [[PA1:%.*]] = partial_apply [callee_guaranteed]
384
- // CHECK: [[PA2:%.*]] = partial_apply [callee_guaranteed]
385
- // CHECK: [[CVT2:%.*]] = convert_escape_to_noescape [[PA2]] : $@callee_guaranteed () -> () to $@noescape @callee_guaranteed () -> ()
373
+ // CHECK: [[PA2:%.*]] = partial_apply [callee_guaranteed] [on_stack]
386
374
// CHECK: [[CVT1:%.*]] = convert_escape_to_noescape [[PA1]] : $@callee_guaranteed () -> () to $@noescape @callee_guaranteed () -> ()
387
375
// CHECK-NOT: begin_access
388
- // CHECK: apply %{{.*}}([[CVT2 ]], [[CVT1]])
376
+ // CHECK: apply %{{.*}}([[PA2 ]], [[CVT1]])
389
377
// CHECK-LABEL: } // end sil function '$s27access_enforcement_noescape13writeWriteBoxyyF'
390
378
391
379
// closure #1 in writeWriteBox()
0 commit comments