[ObjC][ARC] Handle operand bundle "clang.arc.attachedcall" on targets
authorAkira Hatanaka <ahatanaka@apple.com>
Tue, 9 Nov 2021 01:50:08 +0000 (17:50 -0800)
committerAkira Hatanaka <ahatanaka@apple.com>
Tue, 9 Nov 2021 02:38:39 +0000 (18:38 -0800)
commit8f8d9f743d317ca05ed2fac241fd9abc806d4c26
treebaad7d875831ea79622268971ffc469416cdf8d6
parent92c9b340be4164f44772ddf5a50a4a5acdbd6607
[ObjC][ARC] Handle operand bundle "clang.arc.attachedcall" on targets
that don't use the inline asm marker

This patch makes the changes to the ARC middle-end passes that are
needed to handle operand bundle "clang.arc.attachedcall" on targets that
don't use the inline asm marker for the retainRV/autoreleaseRV
handshake (e.g., x86-64).

Note that anyone who wants to use the operand bundle on their target has
to teach their backend to handle the operand bundle. The x86-64 backend
already knows about the operand bundle (see
https://reviews.llvm.org/D94597).

Differential Revision: https://reviews.llvm.org/D111334
llvm/lib/Transforms/ObjCARC/ObjCARC.cpp
llvm/lib/Transforms/ObjCARC/ObjCARC.h
llvm/lib/Transforms/ObjCARC/ObjCARCContract.cpp
llvm/lib/Transforms/ObjCARC/ObjCARCOpts.cpp
llvm/test/Transforms/ObjCARC/contract-attached-call-no-marker.ll [new file with mode: 0644]