Skip to content

Commit 5da4d80

Browse files
authored
Merge pull request #40806 from gottesmm/pr-b9dc163b9dbcd71a95433388c5c882d89cab7912
[move-function] Fix _move SILGen test to match current codegen.
2 parents 55caa0d + 40266eb commit 5da4d80

File tree

1 file changed

+24
-14
lines changed

1 file changed

+24
-14
lines changed

test/SILGen/moveonly_builtin.swift

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,12 @@ import Swift
77

88
class Klass {}
99

10-
// CHECK-LABEL: sil hidden [ossa] @$s8moveonly7useMoveyAA5KlassCADF : $@convention(thin) (@guaranteed Klass) -> @owned Klass {
10+
// CHECK-LABEL: sil hidden [ossa] @$s8moveonly7useMoveyAA5KlassCADnF : $@convention(thin) (@owned Klass) -> @owned Klass {
1111
// CHECK: bb0([[ARG:%.*]] :
12+
// CHECK-NEXT: [[BORROWED_ARG:%.*]] = begin_borrow [lexical] [[ARG]]
1213
// CHECK-NEXT: debug_value
1314
// CHECK-NEXT: [[RESULT_ADDR:%.*]] = alloc_stack $Klass
14-
// CHECK-NEXT: [[ARC_COPY:%.*]] = copy_value [[ARG]]
15+
// CHECK-NEXT: [[ARC_COPY:%.*]] = copy_value [[BORROWED_ARG]]
1516
// CHECK-NEXT: [[INPUT_ADDR:%.*]] = alloc_stack $Klass
1617
// CHECK-NEXT: store [[ARC_COPY]] to [init] [[INPUT_ADDR]]
1718
// CHECK-NEXT: // function_ref _move<A>(_:)
@@ -20,26 +21,31 @@ class Klass {}
2021
// CHECK-NEXT: dealloc_stack [[INPUT_ADDR]]
2122
// CHECK-NEXT: [[RELOADED_VALUE:%.*]] = load [take] [[RESULT_ADDR]]
2223
// CHECK-NEXT: dealloc_stack [[RESULT_ADDR]]
24+
// CHECK-NEXT: end_borrow [[BORROWED_ARG]]
25+
// CHECK-NEXT: destroy_value [[ARG]]
2326
// CHECK-NEXT: return [[RELOADED_VALUE]]
24-
// CHECK: } // end sil function '$s8moveonly7useMoveyAA5KlassCADF'
27+
// CHECK: } // end sil function '$s8moveonly7useMoveyAA5KlassCADnF'
2528

26-
// CHECK-SIL-LABEL: sil hidden @$s8moveonly7useMoveyAA5KlassCADF : $@convention(thin) (@guaranteed Klass) -> @owned Klass {
29+
// CHECK-SIL-LABEL: sil hidden @$s8moveonly7useMoveyAA5KlassCADnF : $@convention(thin) (@owned Klass) -> @owned Klass {
2730
// CHECK-SIL: bb0([[ARG:%.*]] :
2831
// CHECK-SIL-NEXT: debug_value
2932
// CHECK-SIL-NEXT: strong_retain
30-
// CHECK-SIL-NEXT: [allows_diagnostics] move_value
33+
// CHECK-SIL-NEXT: move_value
3134
// CHECK-SIL-NEXT: tuple
35+
// CHECK-SIL-NEXT: tuple
36+
// CHECK-SIL-NEXT: strong_release
3237
// CHECK-SIL-NEXT: return
33-
// CHECK-SIL: } // end sil function '$s8moveonly7useMoveyAA5KlassCADF'
34-
func useMove(_ k: Klass) -> Klass {
38+
// CHECK-SIL: } // end sil function '$s8moveonly7useMoveyAA5KlassCADnF'
39+
func useMove(_ k: __owned Klass) -> Klass {
3540
_move(k)
3641
}
3742

38-
// CHECK-LABEL: sil hidden [ossa] @$s8moveonly7useMoveyxxRlzClF : $@convention(thin) <T where T : AnyObject> (@guaranteed T) -> @owned T {
43+
// CHECK-LABEL: sil hidden [ossa] @$s8moveonly7useMoveyxxnRlzClF : $@convention(thin) <T where T : AnyObject> (@owned T) -> @owned T {
3944
// CHECK: bb0([[ARG:%.*]] :
45+
// CHECK-NEXT: [[BORROWED_ARG:%.*]] = begin_borrow [lexical] [[ARG]]
4046
// CHECK-NEXT: debug_value
4147
// CHECK-NEXT: [[RESULT_ADDR:%.*]] = alloc_stack $T
42-
// CHECK-NEXT: [[ARC_COPY:%.*]] = copy_value [[ARG]]
48+
// CHECK-NEXT: [[ARC_COPY:%.*]] = copy_value [[BORROWED_ARG]]
4349
// CHECK-NEXT: [[INPUT_ADDR:%.*]] = alloc_stack $T
4450
// CHECK-NEXT: store [[ARC_COPY]] to [init] [[INPUT_ADDR]]
4551
// CHECK-NEXT: // function_ref _move<A>(_:)
@@ -48,17 +54,21 @@ func useMove(_ k: Klass) -> Klass {
4854
// CHECK-NEXT: dealloc_stack [[INPUT_ADDR]]
4955
// CHECK-NEXT: [[RELOADED_VALUE:%.*]] = load [take] [[RESULT_ADDR]]
5056
// CHECK-NEXT: dealloc_stack [[RESULT_ADDR]]
57+
// CHECK-NEXT: end_borrow [[BORROWED_ARG]]
58+
// CHECK-NEXT: destroy_value [[ARG]]
5159
// CHECK-NEXT: return [[RELOADED_VALUE]]
52-
// CHECK: } // end sil function '$s8moveonly7useMoveyxxRlzClF'
60+
// CHECK: } // end sil function '$s8moveonly7useMoveyxxnRlzClF'
5361

54-
// CHECK-SIL-LABEL: sil hidden @$s8moveonly7useMoveyxxRlzClF : $@convention(thin) <T where T : AnyObject> (@guaranteed T) -> @owned T {
62+
// CHECK-SIL-LABEL: sil hidden @$s8moveonly7useMoveyxxnRlzClF : $@convention(thin) <T where T : AnyObject> (@owned T) -> @owned T {
5563
// CHECK-SIL: bb0([[ARG:%.*]] :
5664
// CHECK-SIL-NEXT: debug_value
5765
// CHECK-SIL-NEXT: strong_retain
58-
// CHECK-SIL-NEXT: [allows_diagnostics] move_value
66+
// CHECK-SIL-NEXT: move_value
67+
// CHECK-SIL-NEXT: tuple
5968
// CHECK-SIL-NEXT: tuple
69+
// CHECK-SIL-NEXT: strong_release
6070
// CHECK-SIL-NEXT: return
61-
// CHECK-SIL: } // end sil function '$s8moveonly7useMoveyxxRlzClF'
62-
func useMove<T : AnyObject>(_ k: T) -> T {
71+
// CHECK-SIL: } // end sil function '$s8moveonly7useMoveyxxnRlzClF'
72+
func useMove<T : AnyObject>(_ k: __owned T) -> T {
6373
_move(k)
6474
}

0 commit comments

Comments
 (0)