<div dir="ltr">Hi folks,<br><br>The 23rd issue of LLVM GPU News, a bi-weekly newsletter on all the GPU things under the LLVM umbrella, is out: <<a href="https://llvm-gpu-news.github.io/2021/11/12/issue-23.html" target="_blank">https://llvm-gpu-news.github.io/2021/11/12/issue-23.html</a>>.<br>I also paste the content below, in case you prefer to read in your email client.<br><br>-Jakub<br><br>======================================================================<br><br># LLVM GPU News #23, November 12 2021<br>Authors: Jakub Kuderski, Alexey Bader<br><br>Welcome to LLVM GPU News, a bi-weekly newsletter on all the GPU things under the LLVM umbrella.<br>This issue covers the period from October 29 to November 11 2021.<br><br>We welcome your feedback and suggestions. Let us know if we missed anything interesting, or want us to bring attention to your (sub)project, revisions under review, or proposals. Please see the bottom of the page for details on how to submit suggestions and contribute.<br><br><br>## Industry News and Conferences<br><br>*  [2021 LLVM Developers' Meeting](<a href="https://llvm.org/devmtg/2021-11/" target="_blank">https://llvm.org/devmtg/2021-11/</a>) is on November 17-19. [The agenda](<a href="https://llvm.swoogo.com/2021devmtg/agenda" target="_blank">https://llvm.swoogo.com/2021devmtg/agenda</a>) features a number of GPU-related sessions:<br>   -  [LTO and JIT Support in LLVM OpenMP Target Offloading](<a href="https://llvm.swoogo.com/2021DevMtg/session/705664/lightning-talks" target="_blank">https://llvm.swoogo.com/2021DevMtg/session/705664/lightning-talks</a>) (Thursday)<br>   -  [OpenCL support in clang status: OpenCL C 3.0, improvements and future directions](<a href="https://llvm.swoogo.com/2021DevMtg/session/705664/lightning-talks" target="_blank">https://llvm.swoogo.com/2021DevMtg/session/705664/lightning-talks</a>) (Thursday)<br>   -  [Late Divergence Analysis](<a href="https://llvm.swoogo.com/2021DevMtg/session/705672/quick-talks" target="_blank">https://llvm.swoogo.com/2021DevMtg/session/705672/quick-talks</a>) (Thursday)<br>   -  [SPIR-V support in LLVM and Clang](<a href="https://llvm.swoogo.com/2021DevMtg/session/705687/spir-v-support-in-llvm-and-clang" target="_blank">https://llvm.swoogo.com/2021DevMtg/session/705687/spir-v-support-in-llvm-and-clang</a>) (Friday)<br>   -  [Optimizing OpenMP GPU Execution in LLVM](<a href="https://llvm.swoogo.com/2021DevMtg/session/705685/optimizing-openmp-gpu-execution-in-llvm" target="_blank">https://llvm.swoogo.com/2021DevMtg/session/705685/optimizing-openmp-gpu-execution-in-llvm</a>) (Friday)<br><br><br>##  LLVM and Clang<br><br>### Discussions<br><br>*  Johannes Doerfert is gathering feedback on [starting a 'GPU working group'](<a href="https://lists.llvm.org/pipermail/llvm-dev/2021-November/153654.html" target="_blank">https://lists.llvm.org/pipermail/llvm-dev/2021-November/153654.html</a>) which would focus on 'development of GPU-specific optimizations, organization of driver and backend code, dealing with issues like convergent functions,' etc. The thread received a number of positive replies with some ideas for additional topics of interest.<br><br>### Commits<br><br>*  Two new architectures, `spirv32` and `spirv64`, were ported from the [LLVM SPIR-V backend Khronos repository](<a href="https://github.com/KhronosGroup/LLVM-SPIRV-Backend" target="_blank">https://github.com/KhronosGroup/LLVM-SPIRV-Backend</a>). This initially reuses the target information and code generation from the existing SPIR support. [D109144](<a href="https://reviews.llvm.org/D109144" target="_blank">https://reviews.llvm.org/D109144</a>)<br>*  The latest supported CUDA version was bumped to 11.5. [D113249](<a href="https://reviews.llvm.org/D113249" target="_blank">https://reviews.llvm.org/D113249</a>)<br>*  Debug locations will not be added to code inside AMDGPU function [prologue](<a href="https://llvm.org/docs/AMDGPUUsage.html#kernel-prolog" target="_blank">https://llvm.org/docs/AMDGPUUsage.html#kernel-prolog</a>) as it is entirely compiler-generated. [D113100](<a href="https://reviews.llvm.org/D113100" target="_blank">https://reviews.llvm.org/D113100</a>)<br>*  The `AMDGPU_Gfx` calling convention now defines `s[4:29]` [SGPR registers](<a href="https://llvm.org/docs/AMDGPUUsage.html#register-identifier" target="_blank">https://llvm.org/docs/AMDGPUUsage.html#register-identifier</a>) as callee-saved. [D111637](<a href="https://reviews.llvm.org/D111637" target="_blank">https://reviews.llvm.org/D111637</a>)<br>*  CUDA landed support for assumptions predicates for pointer address spaces, e.g., `__builtin_assume(__isGlobal(p))`. These predicates are portable across Clang and NVCC. [D112041](<a href="https://reviews.llvm.org/D112041" target="_blank">https://reviews.llvm.org/D112041</a>)<br>*  Special NVPTX registers were marked as reserved to avoid machine verifier errors. [D113008](<a href="https://reviews.llvm.org/D113008" target="_blank">https://reviews.llvm.org/D113008</a>)<br><br><br>## MLIR<br><br>### Discussions<br><br>### Commits<br><br>*  SPIR-V to LLVM conversion now supports `shufflevector` with static indices. [D112161](<a href="https://reviews.llvm.org/D112161" target="_blank">https://reviews.llvm.org/D112161</a>)<br>*  `arith.bitcast`, `<a href="http://std.br" target="_blank">std.br</a>`, and `std.cond_br` to SPIR-V conversions were added. [D112819](<a href="https://reviews.llvm.org/D112819" target="_blank">https://reviews.llvm.org/D112819</a>)<br><br><br>## OpenMP (Target Offloading)<br><br>### Discussions<br><br>### Commits<br><br><br>## External Compilers<br><br>### LLPC<br><br>*  Middle-end now supports the New Pass Manager but still default to the Legacy Pass Manager. [LLPC#1459](<a href="https://github.com/GPUOpen-Drivers/llpc/pull/1459" target="_blank">https://github.com/GPUOpen-Drivers/llpc/pull/1459</a>)<br><br>### oneAPI DPC++<br><br>#### CUDA/HIP support<br><br>*  Added initial support for the [Tensorcore matrix extension](<a href="https://github.com/intel/llvm/pull/4695" target="_blank">https://github.com/intel/llvm/pull/4695</a>).<br>*  CUDA and HIP plugins were renamed to align with the SYCL 2020 specification.<br>*  Fixed preprocessor-only compilation mode for the NVPTX target.<br><br>#### SYCL 2020 support<br><br>*  Implemented property traits.<br>*  Fixed interoperability kernel API returning invalid kernel bundle.<br>*  Improved performance of `sycl::queue::submit()` for commands without dependencies.<br><br>#### Non-standard extensions<br><br>*  Fixed a bug in SVM gather/scatter emulation on host for ESIMD extension.<br>*  Implemented `no_offset` compile-time accessor property.<br>*  Enhanced matrix extension specification with JIT support for AMX and DPAS ISA.<br>*  The `SPV_INTEL_hw_thread_queries` extension support was enabled by default.<br><br>#### Misc<br><br>*  Release notes for September [were published](<a href="https://github.com/intel/llvm/blob/sycl/sycl/ReleaseNotes.md#september21-release-notes" target="_blank">https://github.com/intel/llvm/blob/sycl/sycl/ReleaseNotes.md#september21-release-notes</a>).<br><br></div>