[PATCH] D69498: IR: Invert convergent attribute handling

Marcello Maggioni via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 28 19:06:54 PDT 2019


kariddi added a comment.

One thing to probably note is that its not only a "target specific" issue, but a language specific issue as well (IMHO). OpenCL, CUDA, SYCL are all languages (to name a few) that have a concept of "convergence" and its not related only to the fact that they mostly run on a GPU, but to their programming model as well with respect to accessing textures and SIMD-wide communication and decision making (ballot)

Considering that Clang has support for these languages it kind of makes sense to me that the frontend is taking care of implementing the supported languages correctly by applying the proper attributes.

Now, its debatable that "convergent" is enough to cover all the cases we need ... and CUDA for example is running away from "ballot()" and such and moving to versions that have an explicit mask of the threads involved in the transaction for that reason. Even the new version with the "dynamic instances" of the mentioned proposal might not be enough ... but that's discussion for the other RFC ...


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D69498/new/

https://reviews.llvm.org/D69498





More information about the llvm-commits mailing list