diff options
| author | James Molloy <james.molloy@arm.com> | 2015-11-06 10:32:53 +0000 |
|---|---|---|
| committer | James Molloy <james.molloy@arm.com> | 2015-11-06 10:32:53 +0000 |
| commit | e6f87ca812809543444d7d5961aea2509b8a3227 (patch) | |
| tree | 0484ecea76aab7032b2b590638de7650912e9e14 /llvm/docs | |
| parent | a805030ae821fa03fb76d89b9bb81ee66f676105 (diff) | |
| download | bcm5719-llvm-e6f87ca812809543444d7d5961aea2509b8a3227.tar.gz bcm5719-llvm-e6f87ca812809543444d7d5961aea2509b8a3227.zip | |
Add a new attribute: norecurse
This attribute allows the compiler to assume that the function never recurses into itself, either directly or indirectly (transitively). This can be used among other things to demote global variables to locals.
llvm-svn: 252282
Diffstat (limited to 'llvm/docs')
| -rw-r--r-- | llvm/docs/LangRef.rst | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/docs/LangRef.rst b/llvm/docs/LangRef.rst index 507c3bfd334..d2bba5c8a74 100644 --- a/llvm/docs/LangRef.rst +++ b/llvm/docs/LangRef.rst @@ -1277,6 +1277,10 @@ example: This function attribute indicates that the function never returns normally. This produces undefined behavior at runtime if the function ever does dynamically return. +``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. ``nounwind`` This function attribute indicates that the function never raises an exception. If the function does raise an exception, its runtime |

