Mercurial > hg > CbC > CbC_llvm
diff test/Transforms/ObjCARC/cfg-hazards.ll @ 147:c2174574ed3a
LLVM 10
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 14 Aug 2019 16:55:33 +0900 |
parents | afa8332a0e37 |
children |
line wrap: on
line diff
--- a/test/Transforms/ObjCARC/cfg-hazards.ll Sat Feb 17 09:57:20 2018 +0900 +++ b/test/Transforms/ObjCARC/cfg-hazards.ll Wed Aug 14 16:55:33 2019 +0900 @@ -5,21 +5,21 @@ ; across them. declare void @use_pointer(i8*) -declare i8* @objc_retain(i8*) -declare void @objc_release(i8*) +declare i8* @llvm.objc.retain(i8*) +declare void @llvm.objc.release(i8*) declare void @callee() declare void @block_callee(void ()*) ; CHECK-LABEL: define void @test0( -; CHECK: call i8* @objc_retain( +; CHECK: call i8* @llvm.objc.retain ; CHECK: for.body: ; CHECK-NOT: @objc ; CHECK: for.end: -; CHECK: call void @objc_release( +; CHECK: call void @llvm.objc.release ; CHECK: } define void @test0(i8* %digits) { entry: - %tmp1 = call i8* @objc_retain(i8* %digits) nounwind + %tmp1 = call i8* @llvm.objc.retain(i8* %digits) nounwind call void @use_pointer(i8* %digits) br label %for.body @@ -31,20 +31,20 @@ br i1 %cmp, label %for.body, label %for.end for.end: ; preds = %for.body - call void @objc_release(i8* %digits) nounwind, !clang.imprecise_release !0 + call void @llvm.objc.release(i8* %digits) nounwind, !clang.imprecise_release !0 ret void } ; CHECK-LABEL: define void @test1( -; CHECK: call i8* @objc_retain( +; CHECK: call i8* @llvm.objc.retain ; CHECK: for.body: ; CHECK-NOT: @objc ; CHECK: for.end: -; CHECK: void @objc_release( +; CHECK: void @llvm.objc.release ; CHECK: } define void @test1(i8* %digits) { entry: - %tmp1 = call i8* @objc_retain(i8* %digits) nounwind + %tmp1 = call i8* @llvm.objc.retain(i8* %digits) nounwind br label %for.body for.body: ; preds = %for.body, %entry @@ -56,20 +56,20 @@ br i1 %cmp, label %for.body, label %for.end for.end: ; preds = %for.body - call void @objc_release(i8* %digits) nounwind, !clang.imprecise_release !0 + call void @llvm.objc.release(i8* %digits) nounwind, !clang.imprecise_release !0 ret void } ; CHECK-LABEL: define void @test2( -; CHECK: call i8* @objc_retain( +; CHECK: call i8* @llvm.objc.retain ; CHECK: for.body: ; CHECK-NOT: @objc ; CHECK: for.end: -; CHECK: void @objc_release( +; CHECK: void @llvm.objc.release ; CHECK: } define void @test2(i8* %digits) { entry: - %tmp1 = call i8* @objc_retain(i8* %digits) nounwind + %tmp1 = call i8* @llvm.objc.retain(i8* %digits) nounwind br label %for.body for.body: ; preds = %for.body, %entry @@ -81,7 +81,7 @@ for.end: ; preds = %for.body call void @use_pointer(i8* %digits) - call void @objc_release(i8* %digits) nounwind, !clang.imprecise_release !0 + call void @llvm.objc.release(i8* %digits) nounwind, !clang.imprecise_release !0 ret void } @@ -89,17 +89,17 @@ ; CHECK: define void @test3(i8* %a) #0 { ; CHECK-NEXT: entry: -; CHECK-NEXT: tail call i8* @objc_retain(i8* %a) [[NUW:#[0-9]+]] +; CHECK-NEXT: tail call i8* @llvm.objc.retain(i8* %a) [[NUW:#[0-9]+]] ; CHECK-NEXT: br label %loop -; CHECK-NOT: @objc_ +; CHECK-NOT: @llvm.objc. ; CHECK: exit: -; CHECK-NEXT: call void @objc_release(i8* %a) +; CHECK-NEXT: call void @llvm.objc.release(i8* %a) ; CHECK-NEXT: ret void ; CHECK-NEXT: } define void @test3(i8* %a) nounwind { entry: - %outer = call i8* @objc_retain(i8* %a) nounwind - %inner = call i8* @objc_retain(i8* %a) nounwind + %outer = call i8* @llvm.objc.retain(i8* %a) nounwind + %inner = call i8* @llvm.objc.retain(i8* %a) nounwind br label %loop loop: @@ -108,24 +108,24 @@ br i1 undef, label %loop, label %exit exit: - call void @objc_release(i8* %a) nounwind - call void @objc_release(i8* %a) nounwind, !clang.imprecise_release !0 + call void @llvm.objc.release(i8* %a) nounwind + call void @llvm.objc.release(i8* %a) nounwind, !clang.imprecise_release !0 ret void } ; CHECK: define void @test4(i8* %a) #0 { ; CHECK-NEXT: entry: -; CHECK-NEXT: tail call i8* @objc_retain(i8* %a) [[NUW]] +; CHECK-NEXT: tail call i8* @llvm.objc.retain(i8* %a) [[NUW]] ; CHECK-NEXT: br label %loop -; CHECK-NOT: @objc_ +; CHECK-NOT: @llvm.objc. ; CHECK: exit: -; CHECK-NEXT: call void @objc_release(i8* %a) +; CHECK-NEXT: call void @llvm.objc.release(i8* %a) ; CHECK-NEXT: ret void ; CHECK-NEXT: } define void @test4(i8* %a) nounwind { entry: - %outer = call i8* @objc_retain(i8* %a) nounwind - %inner = call i8* @objc_retain(i8* %a) nounwind + %outer = call i8* @llvm.objc.retain(i8* %a) nounwind + %inner = call i8* @llvm.objc.retain(i8* %a) nounwind br label %loop loop: @@ -138,26 +138,26 @@ br i1 undef, label %loop, label %exit exit: - call void @objc_release(i8* %a) nounwind - call void @objc_release(i8* %a) nounwind, !clang.imprecise_release !0 + call void @llvm.objc.release(i8* %a) nounwind + call void @llvm.objc.release(i8* %a) nounwind, !clang.imprecise_release !0 ret void } ; CHECK: define void @test5(i8* %a) #0 { ; CHECK-NEXT: entry: -; CHECK-NEXT: tail call i8* @objc_retain(i8* %a) [[NUW]] +; CHECK-NEXT: tail call i8* @llvm.objc.retain(i8* %a) [[NUW]] ; CHECK-NEXT: call void @callee() ; CHECK-NEXT: br label %loop -; CHECK-NOT: @objc_ +; CHECK-NOT: @llvm.objc. ; CHECK: exit: ; CHECK-NEXT: call void @use_pointer(i8* %a) -; CHECK-NEXT: call void @objc_release(i8* %a) +; CHECK-NEXT: call void @llvm.objc.release(i8* %a) ; CHECK-NEXT: ret void ; CHECK-NEXT: } define void @test5(i8* %a) nounwind { entry: - %outer = tail call i8* @objc_retain(i8* %a) nounwind - %inner = tail call i8* @objc_retain(i8* %a) nounwind + %outer = tail call i8* @llvm.objc.retain(i8* %a) nounwind + %inner = tail call i8* @llvm.objc.retain(i8* %a) nounwind call void @callee() br label %loop @@ -172,25 +172,25 @@ exit: call void @use_pointer(i8* %a) - call void @objc_release(i8* %a) nounwind - call void @objc_release(i8* %a) nounwind, !clang.imprecise_release !0 + call void @llvm.objc.release(i8* %a) nounwind + call void @llvm.objc.release(i8* %a) nounwind, !clang.imprecise_release !0 ret void } ; CHECK: define void @test6(i8* %a) #0 { ; CHECK-NEXT: entry: -; CHECK-NEXT: tail call i8* @objc_retain(i8* %a) [[NUW]] +; CHECK-NEXT: tail call i8* @llvm.objc.retain(i8* %a) [[NUW]] ; CHECK-NEXT: br label %loop -; CHECK-NOT: @objc_ +; CHECK-NOT: @llvm.objc. ; CHECK: exit: ; CHECK-NEXT: call void @use_pointer(i8* %a) -; CHECK-NEXT: call void @objc_release(i8* %a) +; CHECK-NEXT: call void @llvm.objc.release(i8* %a) ; CHECK-NEXT: ret void ; CHECK-NEXT: } define void @test6(i8* %a) nounwind { entry: - %outer = tail call i8* @objc_retain(i8* %a) nounwind - %inner = tail call i8* @objc_retain(i8* %a) nounwind + %outer = tail call i8* @llvm.objc.retain(i8* %a) nounwind + %inner = tail call i8* @llvm.objc.retain(i8* %a) nounwind br label %loop loop: @@ -205,25 +205,25 @@ exit: call void @use_pointer(i8* %a) - call void @objc_release(i8* %a) nounwind - call void @objc_release(i8* %a) nounwind, !clang.imprecise_release !0 + call void @llvm.objc.release(i8* %a) nounwind + call void @llvm.objc.release(i8* %a) nounwind, !clang.imprecise_release !0 ret void } ; CHECK: define void @test7(i8* %a) #0 { ; CHECK-NEXT: entry: -; CHECK-NEXT: tail call i8* @objc_retain(i8* %a) [[NUW]] +; CHECK-NEXT: tail call i8* @llvm.objc.retain(i8* %a) [[NUW]] ; CHECK-NEXT: call void @callee() ; CHECK-NEXT: br label %loop -; CHECK-NOT: @objc_ +; CHECK-NOT: @llvm.objc. ; CHECK: exit: -; CHECK-NEXT: call void @objc_release(i8* %a) +; CHECK-NEXT: call void @llvm.objc.release(i8* %a) ; CHECK-NEXT: ret void ; CHECK-NEXT: } define void @test7(i8* %a) nounwind { entry: - %outer = tail call i8* @objc_retain(i8* %a) nounwind - %inner = tail call i8* @objc_retain(i8* %a) nounwind + %outer = tail call i8* @llvm.objc.retain(i8* %a) nounwind + %inner = tail call i8* @llvm.objc.retain(i8* %a) nounwind call void @callee() br label %loop @@ -238,24 +238,24 @@ br i1 undef, label %exit, label %loop exit: - call void @objc_release(i8* %a) nounwind - call void @objc_release(i8* %a) nounwind, !clang.imprecise_release !0 + call void @llvm.objc.release(i8* %a) nounwind + call void @llvm.objc.release(i8* %a) nounwind, !clang.imprecise_release !0 ret void } ; CHECK: define void @test8(i8* %a) #0 { ; CHECK-NEXT: entry: -; CHECK-NEXT: tail call i8* @objc_retain(i8* %a) [[NUW]] +; CHECK-NEXT: tail call i8* @llvm.objc.retain(i8* %a) [[NUW]] ; CHECK-NEXT: br label %loop -; CHECK-NOT: @objc_ +; CHECK-NOT: @llvm.objc. ; CHECK: exit: -; CHECK-NEXT: call void @objc_release(i8* %a) +; CHECK-NEXT: call void @llvm.objc.release(i8* %a) ; CHECK-NEXT: ret void ; CHECK-NEXT: } define void @test8(i8* %a) nounwind { entry: - %outer = tail call i8* @objc_retain(i8* %a) nounwind - %inner = tail call i8* @objc_retain(i8* %a) nounwind + %outer = tail call i8* @llvm.objc.retain(i8* %a) nounwind + %inner = tail call i8* @llvm.objc.retain(i8* %a) nounwind br label %loop loop: @@ -270,22 +270,22 @@ br i1 undef, label %exit, label %loop exit: - call void @objc_release(i8* %a) nounwind - call void @objc_release(i8* %a) nounwind, !clang.imprecise_release !0 + call void @llvm.objc.release(i8* %a) nounwind + call void @llvm.objc.release(i8* %a) nounwind, !clang.imprecise_release !0 ret void } ; CHECK: define void @test9(i8* %a) #0 { ; CHECK-NEXT: entry: ; CHECK-NEXT: br label %loop -; CHECK-NOT: @objc_ +; CHECK-NOT: @llvm.objc. ; CHECK: exit: ; CHECK-NEXT: ret void ; CHECK-NEXT: } define void @test9(i8* %a) nounwind { entry: - %outer = tail call i8* @objc_retain(i8* %a) nounwind - %inner = tail call i8* @objc_retain(i8* %a) nounwind + %outer = tail call i8* @llvm.objc.retain(i8* %a) nounwind + %inner = tail call i8* @llvm.objc.retain(i8* %a) nounwind br label %loop loop: @@ -299,22 +299,22 @@ br i1 undef, label %exit, label %loop exit: - call void @objc_release(i8* %a) nounwind - call void @objc_release(i8* %a) nounwind, !clang.imprecise_release !0 + call void @llvm.objc.release(i8* %a) nounwind + call void @llvm.objc.release(i8* %a) nounwind, !clang.imprecise_release !0 ret void } ; CHECK: define void @test10(i8* %a) #0 { ; CHECK-NEXT: entry: ; CHECK-NEXT: br label %loop -; CHECK-NOT: @objc_ +; CHECK-NOT: @llvm.objc. ; CHECK: exit: ; CHECK-NEXT: ret void ; CHECK-NEXT: } define void @test10(i8* %a) nounwind { entry: - %outer = tail call i8* @objc_retain(i8* %a) nounwind - %inner = tail call i8* @objc_retain(i8* %a) nounwind + %outer = tail call i8* @llvm.objc.retain(i8* %a) nounwind + %inner = tail call i8* @llvm.objc.retain(i8* %a) nounwind br label %loop loop: @@ -328,22 +328,22 @@ br i1 undef, label %exit, label %loop exit: - call void @objc_release(i8* %a) nounwind - call void @objc_release(i8* %a) nounwind, !clang.imprecise_release !0 + call void @llvm.objc.release(i8* %a) nounwind + call void @llvm.objc.release(i8* %a) nounwind, !clang.imprecise_release !0 ret void } ; CHECK: define void @test11(i8* %a) #0 { ; CHECK-NEXT: entry: ; CHECK-NEXT: br label %loop -; CHECK-NOT: @objc_ +; CHECK-NOT: @llvm.objc. ; CHECK: exit: ; CHECK-NEXT: ret void ; CHECK-NEXT: } define void @test11(i8* %a) nounwind { entry: - %outer = tail call i8* @objc_retain(i8* %a) nounwind - %inner = tail call i8* @objc_retain(i8* %a) nounwind + %outer = tail call i8* @llvm.objc.retain(i8* %a) nounwind + %inner = tail call i8* @llvm.objc.retain(i8* %a) nounwind br label %loop loop: @@ -356,8 +356,8 @@ br i1 undef, label %exit, label %loop exit: - call void @objc_release(i8* %a) nounwind - call void @objc_release(i8* %a) nounwind, !clang.imprecise_release !0 + call void @llvm.objc.release(i8* %a) nounwind + call void @llvm.objc.release(i8* %a) nounwind, !clang.imprecise_release !0 ret void } @@ -365,19 +365,19 @@ ; CHECK: define void @test12(i8* %a) #0 { ; CHECK-NEXT: entry: -; CHECK-NEXT: %outer = tail call i8* @objc_retain(i8* %a) [[NUW]] -; CHECK-NEXT: %inner = tail call i8* @objc_retain(i8* %a) [[NUW]] +; CHECK-NEXT: %outer = tail call i8* @llvm.objc.retain(i8* %a) [[NUW]] +; CHECK-NEXT: %inner = tail call i8* @llvm.objc.retain(i8* %a) [[NUW]] ; CHECK-NEXT: br label %loop -; CHECK-NOT: @objc_ +; CHECK-NOT: @llvm.objc. ; CHECK: exit: -; CHECK-NEXT: call void @objc_release(i8* %a) [[NUW]] -; CHECK-NEXT: call void @objc_release(i8* %a) [[NUW]], !clang.imprecise_release !0 +; CHECK-NEXT: call void @llvm.objc.release(i8* %a) [[NUW]] +; CHECK-NEXT: call void @llvm.objc.release(i8* %a) [[NUW]], !clang.imprecise_release !0 ; CHECK-NEXT: ret void ; CHECK-NEXT: } define void @test12(i8* %a) nounwind { entry: - %outer = tail call i8* @objc_retain(i8* %a) nounwind - %inner = tail call i8* @objc_retain(i8* %a) nounwind + %outer = tail call i8* @llvm.objc.retain(i8* %a) nounwind + %inner = tail call i8* @llvm.objc.retain(i8* %a) nounwind br label %loop loop: @@ -390,8 +390,8 @@ br i1 undef, label %exit, label %loop exit: - call void @objc_release(i8* %a) nounwind - call void @objc_release(i8* %a) nounwind, !clang.imprecise_release !0 + call void @llvm.objc.release(i8* %a) nounwind + call void @llvm.objc.release(i8* %a) nounwind, !clang.imprecise_release !0 ret void } @@ -402,31 +402,31 @@ ; CHECK: define void @test13(i8* %a) [[NUW]] { ; CHECK: entry: -; CHECK: tail call i8* @objc_retain(i8* %a) [[NUW]] +; CHECK: tail call i8* @llvm.objc.retain(i8* %a) [[NUW]] ; CHECK: loop: -; CHECK: tail call i8* @objc_retain(i8* %a) [[NUW]] +; CHECK: tail call i8* @llvm.objc.retain(i8* %a) [[NUW]] ; CHECK: call void @block_callee -; CHECK: call void @objc_release(i8* %reloaded_a) [[NUW]] +; CHECK: call void @llvm.objc.release(i8* %reloaded_a) [[NUW]] ; CHECK: exit: -; CHECK: call void @objc_release(i8* %a) [[NUW]] +; CHECK: call void @llvm.objc.release(i8* %a) [[NUW]] ; CHECK: } define void @test13(i8* %a) nounwind { entry: %block = alloca i8* - %a1 = tail call i8* @objc_retain(i8* %a) nounwind + %a1 = tail call i8* @llvm.objc.retain(i8* %a) nounwind br label %loop loop: - %a2 = tail call i8* @objc_retain(i8* %a) nounwind + %a2 = tail call i8* @llvm.objc.retain(i8* %a) nounwind store i8* %a, i8** %block, align 8 %casted_block = bitcast i8** %block to void ()* call void @block_callee(void ()* %casted_block) %reloaded_a = load i8*, i8** %block, align 8 - call void @objc_release(i8* %reloaded_a) nounwind, !clang.imprecise_release !0 + call void @llvm.objc.release(i8* %reloaded_a) nounwind, !clang.imprecise_release !0 br i1 undef, label %loop, label %exit exit: - call void @objc_release(i8* %a) nounwind, !clang.imprecise_release !0 + call void @llvm.objc.release(i8* %a) nounwind, !clang.imprecise_release !0 ret void }