LLVM Weekly - #570, December 2nd 2024
Welcome to the five hundred and seventieth 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 via email: asb@asbradbury.org, or Mastodon: @llvmweekly@fosstodon.org / @asb@fosstodon.org, or Bluesky: @llvmweekly.org / @asbradbury.org.
News and articles from around the web and events
The deadline for submissions to the LLVM dev room at FOSDEM has been extended to December 8th.
The next Cambridge (UK) Compiler Social will take place on 4th December featuring talks “Formal Semantics for MLIR Dialects” by Mathieu Fehr and “Arcilator: fast and cycle-accurate hardware simulation in CIRCT” by Martin Erhart.
The next Zurich LLVM social will take place on 10th December and feature a talk on “embedding domain-specific languages in C or C++ with Polygeist”.
A Winter School on the MLIR compilation infrastructure is being organised in Paris in the last week of January.
Antmicro blogged about optimising LLVM for machine-generated C++ code as produced by Verilator.
According to the LLVM calendar in the coming week there will be the following:
- Office hours with the following hosts: Anastasia Stulova, Quentin Colombet, Johannes Doerfert, Renato Golin.
- Online sync-ups on the following topics: MLIR C/C++ frontend, pointer authentication, MemorySSA, new contributors, OpenMP, C/C++ language working group, Flang, SPIR-V, RISC-V, MLIR open meeting, embedded toolchains, HLSL, MLGO.
- For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.
On the forums
Renato Golin provided an update on the MLIR project charter and restructuring survey noting that the survey is now closed as it has been flagged as violating Google’s terms of service, with no functional route to ask for manual review. Some respondents are concerned that people may have been hoping to respond after the thanksgiving break and now won’t be able to.
Nuno Lopes started a follow-up thread on removing undef from tests, including statistics on the use of undef over time. The thread discussues how to remove more cases where undef is used when it shouldn’t be, and to flag new additions.
Tim Gymnich proposed adding floating point type information to LLT in order to allow GlobalISel to diffrentiate between different floating point formats with the same bit-width (e.g. bf16 vs half).
David Spickett shared an RFC for supporting AArch64 guarded control stack in LLDB.
Djordje Todorovic updated the thread on the autocheck source code analysis tool so share that at this time they don’t see a path to open sourcing it due to restrictions related to the relevant standards, but invited anyone with experience with such issues who would like to help to reach out.
Stella Laurenzo issued a PSA on upcoming changes to MLIR Python binding dependencies (as noted in the thread, this shouldn’t affect you unless you maintain an out of tree project that uses the bindings as prt of a larger super-project).
Djordje Todorovic posted an RFC on adding support for the MIPS P8700 RISC-V CPU and its extensions.
Aleksei Vetrov is seeking feedback on a proposal to introduce a callsite_wrapper attribute to Clang, which would be used in the Linux kernel to collect information about memory allocations and attribute it to the place where it originated.
Peter Collingbourne would like to introduce a new feature to LLD to help control code-size dependent measurement bias, specifically to counteract measurement issues as flagged in papers such as this one (where link order strongly affected results).
LLVM commits
llvm-profdata merge
was made substantially faster. ff7b42c.SimplifyCFG learned to hoist load/store with conditional faulting for X86. 2568e52.
The SLEEF vector library is now supported for the RISC-V target. 93caee1.
Tail call optimisation in the machine outliner is now support for RISC-V. 2906232.
The process for the requesting admin access to the CI/CD infrastructure on GitHub was documented. 5bdcaf1.
A YAML-based deserialisation of MemProf profiles was added. e98396f.
The merge-json.py helper will merge the compile_commands.json from the runtimes build with the one from the main build. 4148aa6.
SPIR-V type inference was improved. b5132b7.
Clang commits
The new
[[clang::no_specializations]]
attribute can be used to warn users that a specific template shouldn’t be specialised. 0604d13.The
unix.cstring.NotNullTerminated
andunix.chroot
checkers are no longer marked as alpha. 4dfa021, e034c4e.
Other project commits
libc++ coding guidelines were documented. 5971647.
Runtimes can now again be built against an installed LLVM tree. 3cb2852.
Flang gained a new pass to rewrite omp.loop to semantically equivalent operations. 81f544d.
-mlir-disable-diagnostic
can be used to makemlir-opt
stop emitting diagnostic information. 1f422dc.The ConvertMeshToMPIPass was added to MLIR. 79eb406.