@@ -25,8 +25,6 @@ protocol P {
25
25
sil hidden @nrvo : $@convention(thin) <T where T : P> (Bool) -> @out T {
26
26
bb0(%0 : $*T, %1 : $Bool):
27
27
%2 = alloc_stack $T, var, name "ro" // users: %9, %15, %17, %19
28
- debug_value_addr %0 : $*T
29
- debug_value_addr %2 : $*T
30
28
%3 = struct_extract %1 : $Bool, #Bool._value // user: %4
31
29
cond_br %3, bb1, bb2 // id: %4
32
30
@@ -50,7 +48,6 @@ bb3: // Preds: bb1 bb2
50
48
copy_addr [take] %2 to [initialization] %0 : $*T // id: %17
51
49
%18 = tuple () // user: %20
52
50
debug_value_addr %0 : $*T
53
- debug_value_addr %2 : $*T
54
51
dealloc_stack %2 : $*T // id: %19
55
52
return %18 : $() // id: %20
56
53
}
@@ -94,6 +91,8 @@ bb0(%0 : $*T):
94
91
%c1 = apply %f1<T>(%l1) : $@convention(thin) <τ_0_0> (@in τ_0_0) -> ()
95
92
debug_value_addr %l1 : $*T
96
93
dealloc_stack %l1 : $*T
94
+ // forwardPropagateCopy should cleanup debug_value_addr. See rdar://66000188
95
+
97
96
debug_value_addr %0 : $*T
98
97
destroy_addr %0 : $*T
99
98
%r1 = tuple ()
@@ -152,8 +151,6 @@ bb0(%0 : $*T):
152
151
copy_addr [take] %0 to [initialization] %l1 : $*T
153
152
%f1 = function_ref @f_in : $@convention(thin) <τ_0_0> (@in τ_0_0) -> ()
154
153
%c1 = apply %f1<T>(%l1) : $@convention(thin) <τ_0_0> (@in τ_0_0) -> ()
155
- debug_value_addr %0 : $*T
156
- debug_value_addr %l1 : $*T
157
154
dealloc_stack %l1 : $*T
158
155
%r1 = tuple ()
159
156
return %r1 : $()
@@ -172,8 +169,6 @@ bb0(%0 : $*T):
172
169
copy_addr [take] %0 to %l1 : $*T
173
170
%f2 = function_ref @f_in : $@convention(thin) <τ_0_0> (@in τ_0_0) -> ()
174
171
%c2 = apply %f2<T>(%l1) : $@convention(thin) <τ_0_0> (@in τ_0_0) -> ()
175
- debug_value_addr %0 : $*T
176
- debug_value_addr %l1 : $*T
177
172
dealloc_stack %l1 : $*T
178
173
%r1 = tuple ()
179
174
return %r1 : $()
@@ -192,6 +187,7 @@ bb0(%0 : $*T):
192
187
debug_value_addr %l1 : $*T
193
188
copy_addr %l1 to [initialization] %0 : $*T
194
189
debug_value_addr %0 : $*T
190
+ // backwardPropagateCopy should cleanup debug_value_addr. See rdar://66000188
195
191
debug_value_addr %l1 : $*T
196
192
destroy_addr %l1 : $*T
197
193
dealloc_stack %l1 : $*T
@@ -209,10 +205,10 @@ br bb1(%0: $*T)
209
205
bb1(%1 : $*T):
210
206
%f1 = function_ref @f_out : $@convention(thin) <τ_0_0> () -> @out τ_0_0
211
207
%c1 = apply %f1<T>(%l1) : $@convention(thin) <τ_0_0> () -> @out τ_0_0
212
- debug_value_addr %0 : $*T
208
+ debug_value_addr %1 : $*T
213
209
debug_value_addr %l1 : $*T
214
- copy_addr %l1 to [initialization] %0 : $*T
215
- debug_value_addr %0 : $*T
210
+ copy_addr %l1 to [initialization] %1 : $*T
211
+ debug_value_addr %1 : $*T
216
212
debug_value_addr %l1 : $*T
217
213
destroy_addr %l1 : $*T
218
214
dealloc_stack %l1 : $*T
0 commit comments