summaryrefslogtreecommitdiffstats
path: root/llvm/test/Bitcode/upgrade-clang-arc-use.ll
diff options
context:
space:
mode:
authorAkira Hatanaka <ahatanaka@apple.com>2019-08-08 16:59:31 +0000
committerAkira Hatanaka <ahatanaka@apple.com>2019-08-08 16:59:31 +0000
commitecde8c7ad47447c5bd02f4bb084843ae20bdbb34 (patch)
treeeab80b8855da7a87b0c23ef4eb70b15d2cfa4acd /llvm/test/Bitcode/upgrade-clang-arc-use.ll
parentcaa0db13181e97b1c62a65168227b80cbdc2ac5e (diff)
downloadbcm5719-llvm-ecde8c7ad47447c5bd02f4bb084843ae20bdbb34.tar.gz
bcm5719-llvm-ecde8c7ad47447c5bd02f4bb084843ae20bdbb34.zip
[ObjC][ARC] Upgrade calls to ARC runtime functions to intrinsic calls if
the bitcode has the arm64 retainAutoreleasedReturnValue marker The ARC middle-end passes stopped optimizing or transforming bitcode that has been compiled with old compilers after we started emitting calls to ARC runtime functions as intrinsic calls instead of normal function calls in the front-end and made changes to teach the ARC middle-end passes about those intrinsics (see r349534). This patch converts calls to ARC runtime functions that are not intrinsic functions to intrinsic function calls if the bitcode has the arm64 retainAutoreleasedReturnValue marker. Checking for the presence of the marker is necessary to make sure we aren't changing ARC function calls that were originally MRR message sends (see r349952). rdar://problem/53280660 Differential Revision: https://reviews.llvm.org/D65902 llvm-svn: 368311
Diffstat (limited to 'llvm/test/Bitcode/upgrade-clang-arc-use.ll')
-rw-r--r--llvm/test/Bitcode/upgrade-clang-arc-use.ll4
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/test/Bitcode/upgrade-clang-arc-use.ll b/llvm/test/Bitcode/upgrade-clang-arc-use.ll
index db5481f06f6..ac8dd0ddd0c 100644
--- a/llvm/test/Bitcode/upgrade-clang-arc-use.ll
+++ b/llvm/test/Bitcode/upgrade-clang-arc-use.ll
@@ -1,4 +1,4 @@
-; Test upgrade of clang.arc.use by removing it.
+; Test upgrade of clang.arc.use by upgrading to llvm.objc.clang.arc.use.
; Bitcode input generated from llvm 6.0
; RUN: llvm-dis %s.bc -o - | FileCheck %s
@@ -6,7 +6,7 @@
%0 = type opaque
define void @foo() {
%1 = tail call %0* @foo0()
-; CHECK-NOT: clang.arc.use
+; CHECK: call void (...) @llvm.objc.clang.arc.use(
call void (...) @clang.arc.use(%0* %1)
ret void
}
OpenPOWER on IntegriCloud