LLVM Weekly - #497, July 10th 2023
Welcome to the four hundred and ninety-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 http://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, or @llvmweekly@fosstodon.org or @asb@fosstodon.org.
News and articles from around the web and events
Videos from EuroLLVM 2023 have started to be posted. Additionally, the video from my LLVM-focused invited keynote at the RISC-V Summit Europe is also now available.
The next LLVM Meetup in Darmstadt is taking place on Wednesday July 26th where Lukas Sommer from Codeplay will present on LLVM and MLIR for GPU use with SYCL.
According to the LLVM calendar in the coming week there will be:
- Office hours with the following hosts: Aaron Ballman, Alexey Bader, Alina Sbirlea, Johannes Doerfert, the BOLT maintainers.
- Online sync-ups on the following topics: Flang, SYCL, OpenMP, classic Flang, loop optimisations, OpenMP for Flang, MLIR open meeting, SPIR-V.
- For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.
On the forums
Tobias Hieta shared the planned timeline for the LLVM 17.0.0 release. The branch is due to take place on July 25th, with rc1 arriving on July 27th.
Aaron Ballman started a thread about links in code and commit messages, especially e.g.
rdar://
links which aren’t publicly accessible. Tentative consensus was reached on disallowing such links in code, but allowing them in commit messages.Yuhao Gu is seeking feedback on design choices for hierarchical HTML report page generation in llvm-cov.
MLIR News #50 is out.
Vaivaswatha Nagaraj shared pliron, an MLIR inspired compiler IR framework written in Rust.
Renato Golin provided guidance on understanding the block concept in MLIR.
Matteo Franciolini posted an RFC on adding a callback for type and attribute bytecode encodings for MLIR.
Hideto Ueno proposed a DialectInterface for common subexpression elimination in MLIR in order to customise the behaviour based on the dialect.
Nikolas Klauser kicked off an RFC discussing on using language extensions from future standards in the libc++ codebase.
LLVM commits
The unified LTO bitcode frontend as described in a previous RFC was committed. a1ca3af.
The LangRef was updated to allows allow
getelementptr inbounds
with a zero offset. 2de812f.Target-specific COPY instructions can now be inserted for live range splitting. b7836d8.
Constant operands are now support for
la
andlla
pseudoinstructions on RISC-V. 1a715d9.LoopUnroll was modified to fold add chains during unrolling, rather than waiting for InstCombine to simplify them. b9808e56.
update_test_checks gained a new ‘smart’ mode for
--check-globals
, and regex checkers are produced for metadata rather than matching against hard-coded identifiers. 8a3fdf7.Work on SystemZ z/OS support continues with the addition of ADA (associated data area) codegen and emission. 163aad6.
Work to simplify the RISC-V vector pseudoinstructions continues. 403261e.
Preparatory refactoring was committed to support a new code layout algorithm for function reordering. a7e13a9.
Clang commits
CodeGen was implemented for OpenMP combined ‘loop’ directives. eb61bde.
The clang-repl documentation was improved. 1ac3e13.
Documentation on AMDGPU support in Clang was started. 051cb7c.
--emit-symbol-graph
will generate ExtractAPI symbol graph information during compilation. 8e9145e.
Other project commits
Documentation was added to Flang on Fortran’s 202X’s upcoming features and the urgency for their implementation. eb5ffa5.
LLD support for the Arm Cortex-M Security Extensions (CMSE) was committed. 9acbab6.
Timing information can now be obtained from libc tests. 5db3979.
LLDB gained two-level caching for sources in order to improve performance when accessing sources over e.g. a network file system. 51944e7.
TF32 (TensorFloat32) was added as a builtin float type to MLIR. 6685fd8.
A GPU barrier elimination mechanism was added to MLIR. 9ab3468.
Old OpenMP and libomptarget plugins were removed. 70c08db, e90ab91.
Initial work landed to support RPC services in libomptarget. 691dc2d.