@@ -45,14 +45,9 @@ sil [_semantics "convertFromObjectiveC"] @bridgeFromObjectiveC :
45
45
sil [_semantics "convertToObjectiveC"] @bridgeToObjectiveC:
46
46
$@convention(method) <τ_0_0> (@owned AnArray<τ_0_0>) -> @owned AnNSArray
47
47
48
- // CHECK-LABEL: sil [ossa] @bridge_from_to_owned
49
- // XHECK-NOT: apply
50
- // XHECK: strong_retain
51
- // XHECK-NOT: apply
52
- // XHECK: strong_release
53
- // XHECK-NOT: apply
54
- // XHECK: return
55
-
48
+ // CHECK-LABEL: sil [ossa] @bridge_from_to_owned :
49
+ // CHECK-NOT: apply
50
+ // CHECK: } // end sil function 'bridge_from_to_owned'
56
51
sil [ossa] @bridge_from_to_owned : $@convention(thin) (@owned AnNSArray) -> @owned AnNSArray {
57
52
bb0(%0 : @owned $AnNSArray):
58
53
%1 = function_ref @bridgeFromObjectiveC : $@convention(thin) <AnyObject> (@owned AnNSArray) -> @owned AnArray<AnyObject>
@@ -64,6 +59,29 @@ bb0(%0 : @owned $AnNSArray):
64
59
return %4 : $AnNSArray
65
60
}
66
61
62
+ // CHECK-LABEL: sil [ossa] @bridge_from_to_owned_different_blocks : $@convention(thin) (@owned AnNSArray) -> @owned AnNSArray {
63
+ // CHECK-NOT: apply
64
+ // CHECK: } // end sil function 'bridge_from_to_owned_different_blocks'
65
+ sil [ossa] @bridge_from_to_owned_different_blocks : $@convention(thin) (@owned AnNSArray) -> @owned AnNSArray {
66
+ bb0(%0 : @owned $AnNSArray):
67
+ cond_br undef, bb1, bb2
68
+
69
+ bb1:
70
+ %1 = function_ref @bridgeFromObjectiveC : $@convention(thin) <AnyObject> (@owned AnNSArray) -> @owned AnArray<AnyObject>
71
+ %2 = apply %1<AnyObject>(%0) : $@convention(thin) <AnyObject> (@owned AnNSArray) -> @owned AnArray<AnyObject>
72
+ %2a = copy_value %2 : $AnArray<AnyObject>
73
+ destroy_value %2 : $AnArray<AnyObject>
74
+ %3 = function_ref @bridgeToObjectiveC : $@convention(method) <AnyObject> (@owned AnArray<AnyObject>) -> @owned AnNSArray
75
+ %4 = apply %3<AnyObject>(%2a) : $@convention(method) <AnyObject> (@owned AnArray<AnyObject>) -> @owned AnNSArray
76
+ br bb3(%4 : $AnNSArray)
77
+
78
+ bb2:
79
+ br bb3(%0 : $AnNSArray)
80
+
81
+ bb3(%result : @owned $AnNSArray):
82
+ return %result : $AnNSArray
83
+ }
84
+
67
85
sil [_semantics "convertFromObjectiveC"] [dynamically_replacable] @bridgeFromObjectiveC2 :
68
86
$@convention(thin) <τ_0_0> (@owned AnNSArray) -> @owned AnArray<τ_0_0>
69
87
@@ -81,14 +99,9 @@ bb0(%0 : @owned $AnNSArray):
81
99
%4 = apply %3<AnyObject>(%2a) : $@convention(method) <AnyObject> (@owned AnArray<AnyObject>) -> @owned AnNSArray
82
100
return %4 : $AnNSArray
83
101
}
84
- // CHECK-LABEL: sil [ossa] @bridge_to_from_owned
85
- // XHECK-NOT: apply
86
- // XHECK: retain_value
87
- // XHECK-NOT: apply
88
- // XHECK: destroy_value
89
- // XHECK-NOT: apply
90
- // XHECK: return
91
-
102
+ // CHECK-LABEL: sil [ossa] @bridge_to_from_owned :
103
+ // CHECK-NOT: apply
104
+ // CHECK: } // end sil function 'bridge_to_from_owned'
92
105
sil [ossa] @bridge_to_from_owned : $@convention(thin) (@owned AnArray<AnyObject>) -> @owned AnArray<AnyObject>{
93
106
bb0(%0 : @owned $AnArray<AnyObject>):
94
107
%1 = function_ref @bridgeToObjectiveC : $@convention(method) <AnyObject> (@owned AnArray<AnyObject>) -> @owned AnNSArray
@@ -107,14 +120,9 @@ sil [_semantics "convertFromObjectiveC"] @bridgeFromObjectiveCGuaranteed :
107
120
sil [_semantics "convertToObjectiveC"] @bridgeToObjectiveCGuaranteed:
108
121
$@convention(method) <τ_0_0> (@guaranteed AnArray<τ_0_0>) -> @owned AnNSArray
109
122
110
- // CHECK-LABEL: sil [ossa] @bridge_from_to_guaranteed
111
- // XHECK-NOT: apply
112
- // XHECK: strong_retain
113
- // XHECK-NOT: apply
114
- // XHECK: strong_release
115
- // XHECK-NOT: apply
116
- // XHECK: return
117
-
123
+ // CHECK-LABEL: sil [ossa] @bridge_from_to_guaranteed :
124
+ // CHECK-NOT: apply
125
+ // CHECK: } // end sil function 'bridge_from_to_guaranteed'
118
126
sil [ossa] @bridge_from_to_guaranteed : $@convention(thin) (@owned AnNSArray) -> @owned AnNSArray {
119
127
bb0(%0 : @owned $AnNSArray):
120
128
%1 = function_ref @bridgeFromObjectiveCGuaranteed : $@convention(thin) <AnyObject> (@guaranteed AnNSArray) -> @owned AnArray<AnyObject>
@@ -126,14 +134,9 @@ bb0(%0 : @owned $AnNSArray):
126
134
return %4 : $AnNSArray
127
135
}
128
136
129
- // CHECK-LABEL: sil [ossa] @bridge_to_from_guaranteed
130
- // XHECK-NOT: apply
131
- // XHECK: retain_value
132
- // XHECK-NOT: apply
133
- // XHECK: destroy_value
134
- // XHECK-NOT: apply
135
- // XHECK: return
136
-
137
+ // CHECK-LABEL: sil [ossa] @bridge_to_from_guaranteed :
138
+ // CHECK-NOT: apply
139
+ // CHECK: } // end sil function 'bridge_to_from_guaranteed'
137
140
sil [ossa] @bridge_to_from_guaranteed : $@convention(thin) (@owned AnArray<AnyObject>) -> @owned AnArray<AnyObject>{
138
141
bb0(%0 : @owned $AnArray<AnyObject>):
139
142
%1 = function_ref @bridgeToObjectiveCGuaranteed : $@convention(method) <AnyObject> (@guaranteed AnArray<AnyObject>) -> @owned AnNSArray
@@ -145,13 +148,38 @@ bb0(%0 : @owned $AnArray<AnyObject>):
145
148
return %4 : $AnArray<AnyObject>
146
149
}
147
150
151
+ // CHECK-LABEL: sil [ossa] @bridge_from_owned_to_guaranteed :
152
+ // CHECK-NOT: apply
153
+ // CHECK: } // end sil function 'bridge_from_owned_to_guaranteed'
154
+ sil [ossa] @bridge_from_owned_to_guaranteed : $@convention(thin) (@owned AnNSArray) -> @owned AnNSArray {
155
+ bb0(%0 : @owned $AnNSArray):
156
+ %1 = function_ref @bridgeFromObjectiveC : $@convention(thin) <AnyObject> (@owned AnNSArray) -> @owned AnArray<AnyObject>
157
+ %2 = apply %1<AnyObject>(%0) : $@convention(thin) <AnyObject> (@owned AnNSArray) -> @owned AnArray<AnyObject>
158
+ %3 = function_ref @bridgeToObjectiveCGuaranteed : $@convention(method) <AnyObject> (@guaranteed AnArray<AnyObject>) -> @owned AnNSArray
159
+ %4 = apply %3<AnyObject>(%2) : $@convention(method) <AnyObject> (@guaranteed AnArray<AnyObject>) -> @owned AnNSArray
160
+ destroy_value %2 : $AnArray<AnyObject>
161
+ return %4 : $AnNSArray
162
+ }
163
+
164
+ // CHECK-LABEL: sil [ossa] @bridge_to_owned_from_guaranteed :
165
+ // CHECK-NOT: apply
166
+ // CHECK: } // end sil function 'bridge_to_owned_from_guaranteed'
167
+ sil [ossa] @bridge_to_owned_from_guaranteed : $@convention(thin) (@owned AnArray<AnyObject>) -> @owned AnArray<AnyObject>{
168
+ bb0(%0 : @owned $AnArray<AnyObject>):
169
+ %1 = function_ref @bridgeToObjectiveCGuaranteed : $@convention(method) <AnyObject> (@guaranteed AnArray<AnyObject>) -> @owned AnNSArray
170
+ %2 = apply %1<AnyObject>(%0) : $@convention(method) <AnyObject> (@guaranteed AnArray<AnyObject>) -> @owned AnNSArray
171
+ destroy_value %0 : $AnArray<AnyObject>
172
+ %3 = function_ref @bridgeFromObjectiveC : $@convention(thin) <AnyObject> (@owned AnNSArray) -> @owned AnArray<AnyObject>
173
+ %4 = apply %3<AnyObject>(%2) : $@convention(thin) <AnyObject> (@owned AnNSArray) -> @owned AnArray<AnyObject>
174
+ return %4 : $AnArray<AnyObject>
175
+ }
176
+
148
177
struct PlainStruct {
149
178
}
150
179
151
- // CHECK-LABEL: sil [ossa] @plain_struct_bridge_from_to_owned
152
- // XHECK-NOT: apply
153
- // XHECK-NOT: apply
154
- // XHECK: return
180
+ // CHECK-LABEL: sil [ossa] @plain_struct_bridge_from_to_owned :
181
+ // CHECK-NOT: apply
182
+ // CHECK: } // end sil function 'plain_struct_bridge_from_to_owned'
155
183
sil [ossa] @plain_struct_bridge_from_to_owned : $@convention(thin) (@owned AnNSArray) -> @owned AnNSArray {
156
184
bb0(%0 : @owned $AnNSArray):
157
185
%1 = function_ref @bridgeFromObjectiveC : $@convention(thin) <PlainStruct> (@owned AnNSArray) -> @owned AnArray<PlainStruct>
@@ -163,11 +191,9 @@ bb0(%0 : @owned $AnNSArray):
163
191
return %4 : $AnNSArray
164
192
}
165
193
166
- // CHECK-LABEL: sil [ossa] @plain_struct_bridge_from_to_owned_generic
167
- // XHECK-NOT: apply
168
- // XHECK-NOT: apply
169
- // XHECK: return
170
-
194
+ // CHECK-LABEL: sil [ossa] @plain_struct_bridge_from_to_owned_generic :
195
+ // CHECK-NOT: apply
196
+ // CHECK: } // end sil function 'plain_struct_bridge_from_to_owned_generic'
171
197
sil [ossa] @plain_struct_bridge_from_to_owned_generic : $@convention(thin) <T>(@owned AnNSArray) -> @owned AnNSArray {
172
198
bb0(%0 : @owned $AnNSArray):
173
199
%1 = function_ref @bridgeFromObjectiveC : $@convention(thin) <T2> (@owned AnNSArray) -> @owned AnArray<T2>
@@ -179,11 +205,9 @@ bb0(%0 : @owned $AnNSArray):
179
205
return %4 : $AnNSArray
180
206
}
181
207
182
- // CHECK-LABEL: sil [ossa] @plain_struct_from_to_owned_recursive_type
183
- // XHECK-NOT: apply
184
- // XHECK-NOT: apply
185
- // XHECK: return
186
-
208
+ // CHECK-LABEL: sil [ossa] @plain_struct_from_to_owned_recursive_type :
209
+ // CHECK-NOT: apply
210
+ // CHECK: } // end sil function 'plain_struct_from_to_owned_recursive_type'
187
211
sil [ossa] @plain_struct_from_to_owned_recursive_type : $@convention(thin) (@owned AnNSArray) -> @owned AnNSArray {
188
212
bb0(%0 : @owned $AnNSArray):
189
213
%1 = function_ref @bridgeFromObjectiveC : $@convention(thin) <T> (@owned AnNSArray) -> @owned AnArray<T>
0 commit comments