llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang Author: Sameer Sahasrabuddhe (ssahasra) <details> <summary>Changes</summary> 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. --- Full diff: https://github.com/llvm/llvm-project/pull/135803.diff 1 Files Affected: - (modified) clang/include/clang/Basic/AttrDocs.td (-4) ``````````diff diff --git a/clang/include/clang/Basic/AttrDocs.td b/clang/include/clang/Basic/AttrDocs.td index 97a5f24d35d7d..41e1918b4336f 100644 --- a/clang/include/clang/Basic/AttrDocs.td +++ b/clang/include/clang/Basic/AttrDocs.td @@ -1680,10 +1680,6 @@ translated into the LLVM ``convergent`` attribute, which indicates that the call instructions of a function with this attribute cannot be made control-dependent on any additional values. -In languages designed for SPMD/SIMT programming model, e.g. OpenCL or CUDA, -the call instructions of a function with this attribute must be executed by -all work items or threads in a work group or sub group. - This attribute is different from ``noduplicate`` because it allows duplicating function calls if it can be proved that the duplicated function calls are not made control-dependent on any additional values, e.g., unrolling a loop `````````` </details> https://github.com/llvm/llvm-project/pull/135803 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits