From 2253a2f52f3c46ae75cd05f5885acb987bd1d6b6 Mon Sep 17 00:00:00 2001 From: Michael Gottesman Date: Thu, 27 Jun 2013 00:25:01 +0000 Subject: 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 --- docs/LangRef.rst | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'docs') 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 -- cgit v1.1