Skip to content

Commit bc1725e

Browse files
authored
[clang] convergent attribute does not require "all threads" (#135803)
The documentation for the `convergent` attribute claims that OpenCL and CUDA require "all threads" in a group to call the same convergent operation. This is true only for OpenCL, and in general, the `convergent` attribute is used in LLVM IR on operations that have no such constraint.
1 parent dfed3d2 commit bc1725e

File tree

1 file changed

+0
-4
lines changed

1 file changed

+0
-4
lines changed

clang/include/clang/Basic/AttrDocs.td

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1680,10 +1680,6 @@ translated into the LLVM ``convergent`` attribute, which indicates that the call
16801680
instructions of a function with this attribute cannot be made control-dependent
16811681
on any additional values.
16821682

1683-
In languages designed for SPMD/SIMT programming model, e.g. OpenCL or CUDA,
1684-
the call instructions of a function with this attribute must be executed by
1685-
all work items or threads in a work group or sub group.
1686-
16871683
This attribute is different from ``noduplicate`` because it allows duplicating
16881684
function calls if it can be proved that the duplicated function calls are
16891685
not made control-dependent on any additional values, e.g., unrolling a loop

0 commit comments

Comments
 (0)