diff --git a/llvm/docs/LangRef.rst b/llvm/docs/LangRef.rst index e64b9343b7622..5fa80540cd76a 100644 --- a/llvm/docs/LangRef.rst +++ b/llvm/docs/LangRef.rst @@ -2256,9 +2256,16 @@ For example: behavior at runtime if the function ever does dynamically return. Annotated functions may still raise an exception, i.a., ``nounwind`` is not implied. ``norecurse`` - This function attribute indicates that the function does not call itself - either directly or indirectly down any possible call path. This produces - undefined behavior at runtime if the function ever does recurse. + This function attribute indicates that the function is not recursive and + does not participate in recursion. This means that the function never + occurs inside a cycle in the dynamic call graph. + For example: + +.. code-block:: llvm + + fn -> other_fn -> fn ; fn is not norecurse + other_fn -> fn -> other_fn ; fn is not norecurse + fn -> other_fn -> other_fn ; fn is norecurse .. _langref_willreturn: