Lines Matching +full:- +full:release
1 ; RUN: opt -passes=objc-arc -S < %s | FileCheck %s
5 declare void @llvm.objc.release(ptr)
31 ; In the presence of allocas, unconditionally remove retain/release pairs only
33 ; retain with the boundary guarding release in the following situation:
37 ; retain(%x) <--- Inner Retain
41 ; release(%y)
42 ; release(%x) <--- Guarding Release
49 ; CHECK: @llvm.objc.release(ptr %y)
50 ; CHECK: @llvm.objc.release(ptr %x)
61 call void @llvm.objc.release(ptr %y), !clang.imprecise_release !0
63 call void @llvm.objc.release(ptr %x), !clang.imprecise_release !0
70 ; CHECK: @llvm.objc.release(ptr %y)
71 ; CHECK: @llvm.objc.release(ptr %x)
82 call void @llvm.objc.release(ptr %y), !clang.imprecise_release !0
84 call void @llvm.objc.release(ptr %x), !clang.imprecise_release !0
92 ; CHECK: @llvm.objc.release(ptr %y)
93 ; CHECK: @llvm.objc.release(ptr %x)
105 call void @llvm.objc.release(ptr %y), !clang.imprecise_release !0
107 call void @llvm.objc.release(ptr %x), !clang.imprecise_release !0
115 ; CHECK: @llvm.objc.release(ptr %y)
116 ; CHECK: @llvm.objc.release(ptr %x)
138 call void @llvm.objc.release(ptr %y), !clang.imprecise_release !0
140 call void @llvm.objc.release(ptr %x), !clang.imprecise_release !0
147 ; CHECK: @llvm.objc.release(ptr %y)
148 ; CHECK: @llvm.objc.release(ptr %x)
171 call void @llvm.objc.release(ptr %y), !clang.imprecise_release !0
173 call void @llvm.objc.release(ptr %x), !clang.imprecise_release !0
180 ; CHECK: @llvm.objc.release(ptr %y)
181 ; CHECK: @llvm.objc.release(ptr %x)
194 call void @llvm.objc.release(ptr %y), !clang.imprecise_release !0
196 call void @llvm.objc.release(ptr %x), !clang.imprecise_release !0
207 ; CHECK: @llvm.objc.release(ptr %y)
208 ; CHECK: @llvm.objc.release(ptr %x)
228 call void @llvm.objc.release(ptr %y), !clang.imprecise_release !0
230 call void @llvm.objc.release(ptr %x), !clang.imprecise_release !0
237 ; CHECK: @llvm.objc.release(ptr %y)
238 ; CHECK: @llvm.objc.release(ptr %x)
258 call void @llvm.objc.release(ptr %y), !clang.imprecise_release !0
260 call void @llvm.objc.release(ptr %x), !clang.imprecise_release !0
267 ; CHECK: @llvm.objc.release(ptr %y)
268 ; CHECK: @llvm.objc.release(ptr %x)
290 call void @llvm.objc.release(ptr %y), !clang.imprecise_release !0
292 call void @llvm.objc.release(ptr %x), !clang.imprecise_release !0
299 ; CHECK: @llvm.objc.release(ptr %y)
300 ; CHECK: @llvm.objc.release(ptr %x)
329 call void @llvm.objc.release(ptr %y), !clang.imprecise_release !0
331 call void @llvm.objc.release(ptr %x), !clang.imprecise_release !0
349 ; CHECK: @llvm.objc.release
350 ; CHECK-NOT: @llvm.objc.release
352 ; CHECK-NOT: @llvm.objc.release
354 ; CHECK: @llvm.objc.release
355 ; CHECK-NOT: @llvm.objc.release
357 ; CHECK: @llvm.objc.release
387 %arraydestroy.element = getelementptr inbounds ptr, ptr %arraydestroy.elementPast, i64 -1
389 call void @llvm.objc.release(ptr %destroy_tmp), !clang.imprecise_release !0
399 %arraydestroy.element1 = getelementptr inbounds ptr, ptr %arraydestroy.elementPast1, i64 -1
401 call void @llvm.objc.release(ptr %destroy_tmp1), !clang.imprecise_release !0
406 call void @llvm.objc.release(ptr %call1), !clang.imprecise_release !0
423 ; CHECK: @llvm.objc.release
424 ; CHECK-NOT: @llvm.objc.release
426 ; CHECK-NOT: @llvm.objc.release
428 ; CHECK: @llvm.objc.release
429 ; CHECK-NOT: @llvm.objc.release
431 ; CHECK: @llvm.objc.release
462 %arraydestroy.element = getelementptr inbounds ptr, ptr %arraydestroy.elementPast, i64 -1
464 call void @llvm.objc.release(ptr %destroy_tmp), !clang.imprecise_release !0
474 %arraydestroy.element1 = getelementptr inbounds ptr, ptr %arraydestroy.elementPast1, i64 -1
476 call void @llvm.objc.release(ptr %destroy_tmp1), !clang.imprecise_release !0
481 call void @llvm.objc.release(ptr %call1), !clang.imprecise_release !0
482 call void @llvm.objc.release(ptr %call1), !clang.imprecise_release !0