LLVM Weekly - #523, January 8th 2024
Welcome to the five hundred and twenty-third 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.
Thank you everyone for your kind messages regarding last week’s 10 years of LLVM Weekly milestone, especially my lovely colleagues at Igalia for sending this LLVM-themed cake.
News and articles from around the web and events
The call for proposals for EuroLLVM 2024 is now open and closes on Feb 4th (the conference will take place in Vienna April 10th-11th). Student travel grant applications are also open.
Nikita Popov blogged about their contributions to LLVM over the past year. Thank you Nikita for all of your contributions, especially the absolutely astounding number of reviews.
Geoff Wozniak blogged about GCC spec files.
According to the LLVM calendar in the coming week there will be:
- Office hours with the following hosts: Aaron Ballman, Alexey Bader, Alina Sbirlea, Kristof Beyls, Johannes Doerfert.
- Online sync-ups on the following topics: Flang, alias analysis, pointer authentication, AArc64, OpenMP, clasic flang, C/C++ language working group, loop optimisations, OpenMP in Flang, MLIR, PowerPC, SPIR-V, LLVM/offload.
- For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.
On the forums
Phabricator remains down and seems like it won’t be coming back. A partial read-only mirror is up at reviews.llvm.org but there are active discussions about missing reviews. MaskRay clarified the challenges in expanding the mirror and linked to some more extracted information that may be helpful to readers.
There was further discussion on the llvm-project/offload roadmap thread, with Jon Chesterfield restating his objection to starting the library by modifying libomptarget rather than starting a new library and then porting OpenMP to using it. Johannes Doerfert responded to these concerns. Jon ultimately made a new RFC on introducing a GPU builtins runtime as a subdirectory under compiler-rt.
Ilya Biryukov provided an update on the suggestion to make Clang 17.0.6 the minimum version to build LLVM with C++20, reporting that the C++20 buildbot has been updated and is working fine.
Adam Szilagyi started a discussion about suboptimal code generation for bitfield accesses through a pointer.
Piotr Zegar is seeking reviewers to help with open clang-tidy reviews and provided a categorisation of open reviews.
MLIR News issue 60 is now out.
Ivan Butygin posted an MLIR RFC on adding integer overflow flag support to the MLIR arith dialect.
LLVM commits
The disjoint flag is now plumbed through from IR to the SelectionDAG. bbd57e1, 47a1704, bdcd7c0.
A spv_ptrcast intrinsic was introduced and used for SPIR-V in order to track expected pointer types, fixing issues that occurred after the switch to opaque pointers. b4cfb50c6.
GlobalISel gained support for out-of-line-atomics. ce61b0e.
llvm-cxxfilt learned the
--no-params
argument which skips demangling function parameters. 569ec18.test-release.sh can now build with a specific CMake cache file, e.g. a 3-stage release build. 3096353.
MC layer support for additional Intel APX (extended GPRs) instructions was added. 4daea50.
AArch64’s GlobalISel can now tail call libcalls. d659bd1.
A new TableGen backend was added to generate MacroFusion predicates. a0e6b7c.
Clang commits
The castToDeclContext function was optimised, improving build times by 2%. 901a816.
The frontend components of support for modified condition/decision coverage (MC/DC) were added. 8b2bdfb.
-Wunsafe-buffer-usage
will now warn for unsafe invocation ofspan::data
. 7122f55.The
[[clang::coro_disable_lifetimebound]]
attribute is now supported, allowing coroutine lifetime bound analysis to be disabled for a function. 190a75b.A new clang-tidy check ‘readability-avoid-return-with-void-value’ was added. a89141f.