LLVM Weekly - #547, June 24th 2024
Welcome to the five hundred and forty-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, @llvmweekly or @asbradbury on Twitter, or @llvmweekly@fosstodon.org or @asb@fosstodon.org.
If you’re at the RISC-V Summit Europe this week in Munich be sure to say hello. I gave a tutorial today on implementing support for custom RISC-V instruction set extensions in LLVM and will point to the shares when they go up on the website.
News and articles from around the web and events
Recordings of presentations from EuroLLVM 2024 have started to be posted from YouTube (so you can now see if my attempted Carbon panel write-up was accurate).
Marek Surovič and Henrich Lauko posted their EuroLLVM 2024 trip report.
LLVM 18.1.8 was released. This is intended to be the last 18.1.x point release. The 19.x branch will be created on July 23rd.
Eduardo Blázquez’s published a lengthy article on writing an IR from scratch.
According to the LLVM calendar in the coming week there will be the following:
- Office hours with the following hosts: Anton Korobeynikov, Kristof Beyls, Johannes Doerfert, Amara Emberson.
- Online sync-ups on the following topics: Flang, pointer authentication, SYCL, new contributors, LLVM/offload, classic flang, loop optimisations, OpenMP for Flang, MLIR.
- For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.
On the forums
Arryan Shukla and Rose Zhang posted an RFC on reworking LLVM libc’s headergen to not depend on TableGen.
Oliver Hunt proposed extending clang with typed allocator support, introducing a new
typed_memory_operation
attribute.MLIR news #67 is now available.
Valentin Clement proposed an RFC on enhancing location information in flang.
LLVM commits
The MachineOutliner was changed to consider all leaf descendants in the suffix tree as candidates for outlining. The commit message notes this results in a 3% reduction in text segment size for Clang/LLD compared to the previous
-Oz
. d9a00ed.SimplifyCFG gained support for sinking instructions with multiple uses. ede27d8.
Initial support for 3-way comparison intrinsics was added to the SelectionDAG. 995835f.
RISCVInsertVSETVLI no longer requires LiveIntervals to be present. 8756043.
llvm-cov can now generate a UI in its HTML output that allows jumping between uncovered parts of code. 06aa078.
Work on SVE in GlobalISel continued with support for translating SVE formal arguments and COPY. 0e21f12.
Processor definitions were added for the SpacemiT-X60 RISC-V design. aede380.
Trigonometric intrinsics were added and supported in the DXIL backend. 936bc9b.
Support was removed for shl constant expressions. 76d3ab2.
A mitigation was been added for Arm CMSE function calls, to remove the assumption that callees arguments were sign/zero-extend and that return values passed back to a caller were sign/zero-extended. 78ff617.
An
initializes
attribute was introduced. 5ece35d.
Clang commits
Clang now claims full conformance to C99, see the commit message for details on those proposals marked as partial. 918ef31.
Reference types for WebAssembly were re-enabled by default. 6e38df3.
Clang’s support for
restrict
is now characterised as fully conforming but partially implemented (as not all optimisations are provided). 6bc71cd.