LLVM Weekly - #387, May 31st 2021
Welcome to the three hundred and eighty-seventh issue of LLVM Weekly, a weekly newsletter (published every Monday) covering developments in LLVM, Clang, and related projects. LLVM Weekly is brought to you by Alex Bradbury. Subscribe to future issues at https://llvmweekly.org and pass it on to anyone else you think may be interested. Please send any tips or feedback to asb@asbradbury.org, or @llvmweekly or @asbradbury on Twitter.
News and articles from around the web
Neil Henning blogged about porting the Burst .NET compiler to use the new pass manager.
Patrick P. Frey has written about Mewa, a tool that uses Lua to help you prototype compiler front-ends of statically typed languages using LLVM as the backend.
Phacility, the organisation that maintains and supports Phabricator is winding down operations.
On the mailing lists
Kirill Bobyrev announced the availability of clangd-index.llvm.org, a centralised symbol index for the LLVM project.
More students participating in GSoC through LLVM have shared details of their projects (see here for the full list).
Tom Stellard announced that 12.0.1-rc1 has been tagged.
Nemanja Ivanovic posted an RFC on adding a CMake macro to allow renaming the clang executable.
Nico Weber proposed adding a top-level .mailmap file. This has now progressed to a patch review.
LLVM commits
The RISC-V backend gained a new cross-basic-block aware VSETVLI insertion pass, which takes into account VL/VTYPE information from predecessors. b510e4c, 1b47a3d, 527cd01, 0fa5aac.
Printing stack sizes with llvm-readobj now takes linear rather than quadratic time, meaning
llvm-readobj --stack-size
on a clang binary built with-fstack-size-section
takes 0.25 seconds rather than 7 minutes. 6505c63.llvm.experimental.gc.get.pointer.{base,offset} intrinsics were introduced. 4d26f41.
Analysis remarks were added for memset/memcpy/memmove lengths. 095e91c.
In order to avoid excessively long compile times, a dbg.value may now reference a maximum of 16 values. a0bd610.
llvm-mc gained an objdump-style
-M
option, meaning-M no-aliases
can be used instead of e.g.-riscv-no-aliases
. 73a1179, 5852582.LLVM IR support was added for WebAssembly local variables. 00ecf18. REVERTED
Mandatory tail calls for tailcc and swifttailcc are now supported in the Arm backend. d88f96d.
Clang commits
As a Clang-specific extension, bitfields can be used in OpenCL. 237c692.
Support was added for
#elifdef
and#elifndef
. 8edd346.__builtin_sycl_unique_stable_name
was implemented. It takes a type and produces a unique string literal that should be stable across compilations of the translation unit. eba69b5.
Other project commits
The DExTer debugging experience tester gained a DexDeclareFile command, allowing dexter commands to be written in a separate test file, avoiding mixing those commands with test source. c2c2be4.
Initial documentation was added for the Fortran LLVM Test Suite. 5f8810d.
std::ranges::{prev,next}
implementations were added to libcxx. 857fa7b, 0dc7fd1.Parallel ghash type merging was enabled by default in the COFF linker. 109aac9.