[PATCH] D17012: Update document about convergent attribute.
Justin Lebar via llvm-commits
llvm-commits at lists.llvm.org
Tue Feb 9 14:05:21 PST 2016
jlebar updated this revision to Diff 47364.
jlebar added a comment.
Reworked per joker.eph's suggestion.
http://reviews.llvm.org/D17012
Files:
docs/LangRef.rst
Index: docs/LangRef.rst
===================================================================
--- docs/LangRef.rst
+++ docs/LangRef.rst
@@ -1239,10 +1239,17 @@
function call are also considered to be cold; and, thus, given low
weight.
``convergent``
- This attribute indicates that the callee is dependent on a convergent
- thread execution pattern under certain parallel execution models.
- Transformations that are execution model agnostic may not make the execution
- of a convergent operation control dependent on any additional values.
+ In some parallel execution models, there exist operations that cannot be
+ made control-dependent on any additional values. We call such operations
+ ``convergent``, and mark them with this attribute.
+
+ For example, the intrinsic ``llvm.cuda.syncthreads`` is convergent. A
+ callsite which relies on convergent behavior in a callee (e.g. it relies on
+ the effect of the callee invoking ``llvm.cuda.syncthreads``) should be
+ marked as convergent.
+
+ The optimizer may remove the ``convergent`` attribute when it can prove
+ that the callee does not execute any convergent operations.
``inaccessiblememonly``
This attribute indicates that the function may only access memory that
is not accessible by the module being compiled. This is a weaker form
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D17012.47364.patch
Type: text/x-patch
Size: 1357 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160209/19e9469b/attachment.bin>
More information about the llvm-commits
mailing list