aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authorMichael Gottesman <mgottesman@apple.com>2013-06-27 00:25:01 +0000
committerMichael Gottesman <mgottesman@apple.com>2013-06-27 00:25:01 +0000
commit2253a2f52f3c46ae75cd05f5885acb987bd1d6b6 (patch)
tree483f06fa8a9b2981c441c49dde73b45eb724c03d /docs
parent9367c79e62307421f28ba92174f3792a6360f37b (diff)
downloadexternal_llvm-2253a2f52f3c46ae75cd05f5885acb987bd1d6b6.zip
external_llvm-2253a2f52f3c46ae75cd05f5885acb987bd1d6b6.tar.gz
external_llvm-2253a2f52f3c46ae75cd05f5885acb987bd1d6b6.tar.bz2
Added support for the Builtin attribute.
The Builtin attribute is an attribute that can be placed on function call site that signal that even though a function is declared as being a builtin, rdar://problem/13727199 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185049 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs')
-rw-r--r--docs/LangRef.rst16
1 files changed, 11 insertions, 5 deletions
diff --git a/docs/LangRef.rst b/docs/LangRef.rst
index cd72cc9..b98332b 100644
--- a/docs/LangRef.rst
+++ b/docs/LangRef.rst
@@ -822,6 +822,12 @@ example:
computing edge weights, basic blocks post-dominated by a cold
function call are also considered to be cold; and, thus, given low
weight.
+``builtin``
+ This indicates that the callee function at a call site should be
+ recognized as a built-in function, even though the function's declaration
+ uses the ``nobuiltin'' attribute. This is only valid at call sites for
+ direct calls to functions which are declared with the ``nobuiltin``
+ attribute.
``nonlazybind``
This attribute suppresses lazy symbol binding for the function. This
may make calls to the function faster, at the cost of extra program
@@ -835,11 +841,11 @@ example:
This attribute disables prologue / epilogue emission for the
function. This can have very system-specific consequences.
``nobuiltin``
- This indicates that the callee function at a call site is not
- recognized as a built-in function. LLVM will retain the original call
- and not replace it with equivalent code based on the semantics of the
- built-in function. This is only valid at call sites, not on function
- declarations or definitions.
+ This indicates that the callee function at a call site is not recognized as
+ a built-in function. LLVM will retain the original call and not replace it
+ with equivalent code based on the semantics of the built-in function, unless
+ the call site uses the ``builtin`` attribute. This is valid at call sites
+ and on function declarations and definitions.
``noduplicate``
This attribute indicates that calls to the function cannot be
duplicated. A call to a ``noduplicate`` function may be moved