[LangRef] Add description for nocallback attribute
authorGulfem Savrun Yeniceri <gulfem@google.com>
Wed, 10 Aug 2022 22:40:23 +0000 (22:40 +0000)
committerGulfem Savrun Yeniceri <gulfem@google.com>
Thu, 22 Dec 2022 21:11:59 +0000 (21:11 +0000)
This patch adds the description for nocallback attribute
that is implemented in https://reviews.llvm.org/D90275.

Differential Revision: https://reviews.llvm.org/D131628

llvm/docs/LangRef.rst

index 82f23a4..1b322d3 100644 (file)
@@ -1805,6 +1805,13 @@ example:
     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.
+``nocallback``
+    This attribute indicates that the function is only allowed to jump back into
+    caller's module by a return or an exception, and is not allowed to jump back
+    by invoking a callback function, a direct, possibly transitive, external
+    function call, use of ``longjmp``, or other means. It is a compiler hint that
+    is used at module level to improve dataflow analysis, dropped during linking,
+    and has no effect on functions defined in the current module.
 ``noduplicate``
     This attribute indicates that calls to the function cannot be
     duplicated. A call to a ``noduplicate`` function may be moved