diff options
| author | Erik Pilkington <erik.pilkington@gmail.com> | 2018-12-10 18:19:43 +0000 |
|---|---|---|
| committer | Erik Pilkington <erik.pilkington@gmail.com> | 2018-12-10 18:19:43 +0000 |
| commit | bdad92a13124267bec7af38358ec69d9cfe8666b (patch) | |
| tree | 10789012b4d694b5582538dc4f71063e22c91f74 /llvm/docs | |
| parent | c73a955370efb71dba96c8c5ca8aed96f4cabf04 (diff) | |
| download | bcm5719-llvm-bdad92a13124267bec7af38358ec69d9cfe8666b.tar.gz bcm5719-llvm-bdad92a13124267bec7af38358ec69d9cfe8666b.zip | |
[docs] Add the new Objective-C ARC intrinsics to the LangRef.
These were added in r348441. This mostly just points to the clang documentation
to describe the intended semantics of each intrinsic.
llvm-svn: 348782
Diffstat (limited to 'llvm/docs')
| -rw-r--r-- | llvm/docs/LangRef.rst | 260 |
1 files changed, 260 insertions, 0 deletions
diff --git a/llvm/docs/LangRef.rst b/llvm/docs/LangRef.rst index 9050f280c63..5392c9ff6cf 100644 --- a/llvm/docs/LangRef.rst +++ b/llvm/docs/LangRef.rst @@ -16078,3 +16078,263 @@ lowered to a call to the symbol ``__llvm_memset_element_unordered_atomic_*``. Wh is replaced with an actual element size. The optimizer is allowed to inline the memory assignment when it's profitable to do so. + +Objective-C ARC Runtime Intrinsics +---------------------------------- + +LLVM provides intrinsics that lower to Objective-C ARC runtime entry points. +LLVM is aware of the semantics of these functions, and optimizes based on that +knowledge. You can read more about the details of Objective-C ARC `here +<https://clang.llvm.org/docs/AutomaticReferenceCounting.html>`_. + +'``llvm.objc.autorelease``' Intrinsic +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Syntax: +""""""" +:: + + declare i8* @llvm.objc.autorelease(i8*) + +Lowering: +""""""""" + +Lowers to a call to `objc_autorelease <https://clang.llvm.org/docs/AutomaticReferenceCounting.html#arc-runtime-objc-autorelease>`_. + +'``llvm.objc.autoreleasePoolPop``' Intrinsic +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Syntax: +""""""" +:: + + declare void @llvm.objc.autoreleasePoolPop(i8*) + +Lowering: +""""""""" + +Lowers to a call to `objc_autoreleasePoolPop <https://clang.llvm.org/docs/AutomaticReferenceCounting.html#void-objc-autoreleasepoolpop-void-pool>`_. + +'``llvm.objc.autoreleasePoolPush``' Intrinsic +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Syntax: +""""""" +:: + + declare i8* @llvm.objc.autoreleasePoolPush() + +Lowering: +""""""""" + +Lowers to a call to `objc_autoreleasePoolPush <https://clang.llvm.org/docs/AutomaticReferenceCounting.html#void-objc-autoreleasepoolpush-void>`_. + +'``llvm.objc.autoreleaseReturnValue``' Intrinsic +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Syntax: +""""""" +:: + + declare i8* @llvm.objc.autoreleaseReturnValue(i8*) + +Lowering: +""""""""" + +Lowers to a call to `objc_autoreleaseReturnValue <https://clang.llvm.org/docs/AutomaticReferenceCounting.html#arc-runtime-objc-autoreleasereturnvalue>`_. + +'``llvm.objc.copyWeak``' Intrinsic +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Syntax: +""""""" +:: + + declare void @llvm.objc.copyWeak(i8**, i8**) + +Lowering: +""""""""" + +Lowers to a call to `objc_copyWeak <https://clang.llvm.org/docs/AutomaticReferenceCounting.html#void-objc-copyweak-id-dest-id-src>`_. + +'``llvm.objc.destroyWeak``' Intrinsic +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Syntax: +""""""" +:: + + declare void @llvm.objc.destroyWeak(i8**) + +Lowering: +""""""""" + +Lowers to a call to `objc_destroyWeak <https://clang.llvm.org/docs/AutomaticReferenceCounting.html#void-objc-destroyweak-id-object>`_. + +'``llvm.objc.initWeak``' Intrinsic +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Syntax: +""""""" +:: + + declare i8* @llvm.objc.initWeak(i8**, i8*) + +Lowering: +""""""""" + +Lowers to a call to `objc_initWeak <https://clang.llvm.org/docs/AutomaticReferenceCounting.html#arc-runtime-objc-initweak>`_. + +'``llvm.objc.loadWeak``' Intrinsic +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Syntax: +""""""" +:: + + declare i8* @llvm.objc.loadWeak(i8**) + +Lowering: +""""""""" + +Lowers to a call to `objc_loadWeak <https://clang.llvm.org/docs/AutomaticReferenceCounting.html#arc-runtime-objc-loadweak>`_. + +'``llvm.objc.loadWeakRetained``' Intrinsic +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Syntax: +""""""" +:: + + declare i8* @llvm.objc.loadWeakRetained(i8**) + +Lowering: +""""""""" + +Lowers to a call to `objc_loadWeakRetained <https://clang.llvm.org/docs/AutomaticReferenceCounting.html#arc-runtime-objc-loadweakretained>`_. + +'``llvm.objc.moveWeak``' Intrinsic +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Syntax: +""""""" +:: + + declare void @llvm.objc.moveWeak(i8**, i8**) + +Lowering: +""""""""" + +Lowers to a call to `objc_moveWeak <https://clang.llvm.org/docs/AutomaticReferenceCounting.html#void-objc-moveweak-id-dest-id-src>`_. + +'``llvm.objc.release``' Intrinsic +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Syntax: +""""""" +:: + + declare void @llvm.objc.release(i8*) + +Lowering: +""""""""" + +Lowers to a call to `objc_release <https://clang.llvm.org/docs/AutomaticReferenceCounting.html#void-objc-release-id-value>`_. + +'``llvm.objc.retain``' Intrinsic +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Syntax: +""""""" +:: + + declare i8* @llvm.objc.retain(i8*) + +Lowering: +""""""""" + +Lowers to a call to `objc_retain <https://clang.llvm.org/docs/AutomaticReferenceCounting.html#arc-runtime-objc-retain>`_. + +'``llvm.objc.retainAutorelease``' Intrinsic +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Syntax: +""""""" +:: + + declare i8* @llvm.objc.retainAutorelease(i8*) + +Lowering: +""""""""" + +Lowers to a call to `objc_retainAutorelease <https://clang.llvm.org/docs/AutomaticReferenceCounting.html#arc-runtime-objc-retainautorelease>`_. + +'``llvm.objc.retainAutoreleaseReturnValue``' Intrinsic +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Syntax: +""""""" +:: + + declare i8* @llvm.objc.retainAutoreleaseReturnValue(i8*) + +Lowering: +""""""""" + +Lowers to a call to `objc_retainAutoreleaseReturnValue <https://clang.llvm.org/docs/AutomaticReferenceCounting.html#arc-runtime-objc-retainautoreleasereturnvalue>`_. + +'``llvm.objc.retainAutoreleasedReturnValue``' Intrinsic +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Syntax: +""""""" +:: + + declare i8* @llvm.objc.retainAutoreleasedReturnValue(i8*) + +Lowering: +""""""""" + +Lowers to a call to `objc_retainAutoreleasedReturnValue <https://clang.llvm.org/docs/AutomaticReferenceCounting.html#arc-runtime-objc-retainautoreleasedreturnvalue>`_. + +'``llvm.objc.retainBlock``' Intrinsic +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Syntax: +""""""" +:: + + declare i8* @llvm.objc.retainBlock(i8*) + +Lowering: +""""""""" + +Lowers to a call to `objc_retainBlock <https://clang.llvm.org/docs/AutomaticReferenceCounting.html#arc-runtime-objc-retainblock>`_. + +'``llvm.objc.storeStrong``' Intrinsic +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Syntax: +""""""" +:: + + declare void @llvm.objc.storeStrong(i8**, i8*) + +Lowering: +""""""""" + +Lowers to a call to `objc_storeStrong <https://clang.llvm.org/docs/AutomaticReferenceCounting.html#void-objc-storestrong-id-object-id-value>`_. + +'``llvm.objc.storeWeak``' Intrinsic +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Syntax: +""""""" +:: + + declare i8* @llvm.objc.storeWeak(i8**, i8*) + +Lowering: +""""""""" + +Lowers to a call to `objc_storeWeak <https://clang.llvm.org/docs/AutomaticReferenceCounting.html#arc-runtime-objc-storeweak>`_. |

