Welcome to LLVM GPU News, a bi-weekly newsletter on all the GPU things under the LLVM umbrella. This issue covers the period from August 6 to August 19 2021.

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.

Industry News and Conferences

LLVM and Clang

Discussions

Commits

  • New Clang language defines for C++ for OpenCL version 2021. The language standard is lang_openclcpp2021, enabled with the -cl-std=clc++2021 flag.
  • Rematerialization of virtual register uses is not allowed. The change affected AMDGPU, ARM/Thumb, MIPS, RISC-V, and x86. D106408
    • Machine LICM (Loop Invariant Code Motion) will not rematterialzie instructions with virtual register uses. Such an instruction will not be hoisted out of the loop in a belief that the register allocator will sink it back if needed. This impacts AMDGPU. D107677
  • alias.scope metadata is added to lowered AMDGPU LDS struct to improve alias analysis. D108315
  • GlobalISel gained a combine for PTR_ADD with register banks. D103326

MLIR

Discussions

  • There are questions about marking gpu::LaunchFuncOp async and how to lower and run linalg.matmul using CUDA.

Commits

  • spv.(InBounds)PtrAccessChain ops are defined.

OpenMP (Target Offloading)

Discussions

Commits

  • A bunch of refactoring patches by Jon Chesterfield:
    • Lane masks are now represented with uint64_t instead of __kmpc_impl_lanemask_t in deviceRTLs. D108317
    • Replace OMPGridValues array with struct. D108339
    • Refactor GridValues: remove redundant fields and replace pointer with virtual function. D108380

External Compilers

LLPC

Mesa