[PATCH] D65902: [ObjC][ARC] Upgrade calls to ARC runtime functions to intrinsic calls if the bitcode has the arm64 retainAutoreleasedReturnValue marker

Akira Hatanaka via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 7 13:48:16 PDT 2019


ahatanak created this revision.
ahatanak added reviewers: pete, steven_wu, rjmccall.
ahatanak added a project: LLVM.
Herald added subscribers: dexonsmith, jkorous, hiraditya, kristof.beyls, javed.absar.

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


Repository:
  rL LLVM

https://reviews.llvm.org/D65902

Files:
  llvm/include/llvm/IR/AutoUpgrade.h
  llvm/lib/Bitcode/Reader/BitcodeReader.cpp
  llvm/lib/IR/AutoUpgrade.cpp
  llvm/test/Bitcode/upgrade-arc-runtime-calls.bc
  llvm/test/Bitcode/upgrade-arc-runtime-calls.ll
  llvm/test/Bitcode/upgrade-mrr-runtime-calls.bc

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D65902.213976.patch
Type: text/x-patch
Size: 9962 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190807/512e4704/attachment.bin>


More information about the llvm-commits mailing list