LLVM Weekly - #524, January 15th 2024
Welcome to the five hundred and twenty-fourth 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.
News and articles from around the web and events
Fangrui Song blogged about different object file formats.
According to the LLVM calendar in the coming week there will be:
- Office hours with the following hosts: Phoebe Wang, Johannes Doerfert, Aaron Ballman.
- Online sync-ups on the following topics: pointer authentication, security group, OpenMP, Clang C/C++ language working group, Flang, floating point, RISC-V libc, MLIR, SPIR-V.
- For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.
On the forums
Reid Kleckner posted an announcement regarding the ‘turndown’ of Phabricator being expedited.
Tom Stellard shared the proposed LLVM 18 release schedule. It would see the 18.x branch created on 23rd Jan, and the 18.1.0 release on 5th March.
Tanya Lattner is seeking mentors, project suggestions, and other help for Outreachy internships.
“linux4life798” pinged the previous RFC on upgrading LLVM’s minimum required Python version to see if enough time has passed now to consider bumping to 3.7 or 3.8.
Alex Bradbury started a discussion on whether merge commits should be recommended for PRs under review rather than rebasing (with the merge commits removed during squash+merge), following feedback from some contributors that this workflow is easier for reviewers to follow in GitHub’s UI.
Nick Desaulniers started a new “who’s hiring” thread.
LLVM commits
CodeGenPrepare was ported to the new pass manager. f1ec0d1.
A new AArch64 loop idiom transformation pass was added, handling memcmp-like loops that instead returns the index of the first mismatch. c714846.
MaxAtomicSizeInBitsSupported was set for all targets that didn’t previously set it, and it now defaults to 0. b856e77, b58f91a.
PassBuilder now supports machine passes. 8566cd6.
The language reference was updated to mention that rint and nearbyient assume the default rounding mode. fb14662.
ASan’s StackSafetyAnalysis was enabled by default. 7740565.
Codegen for a number of X86 APX (expanded register set) instructions was implemented. 1fe7bdb.
Patches that reduce the binary size of the tablegenerated SelectionDAG code were committed. 211abe3, 5c8d123, 1a57927.
The heuristic GlobalISel uses to decide whether to ‘localise’ a value was tweaked. bbbe8ec.
A
CreatePtrAdd()
method was added to IRBuilder. 6c2fbc3.
Clang commits
Documentation was added for HLSL functions. 183eae0.
The
counted_by
attribute was implemented, which can be used to improve the results of the array bound sanitizer. 164f85d.The
--gcc-triple
option was added. 6684a09.Performance was improved for the misc-const-correctness checker. 6eb372e.
GCC_INSTALL_PREFIX
was deprecated. 3358c77.The
writable
anddead_on_unwind
attributes are now set on sret arguments, enabling further optimisations. 158d72d.Documentation was added on options for Intel’s AVX10 ISA. 0e93d04.
Other project commits
The BOLT Address Translation section was documented and a series of optimisations made to significantly reduce its size. a7cf0a1, 565f40d, bbe0798, 8fb8ad6.
The
-mrvv-vector-bits
is now understood by flang. 2c60d59.fabsf128
was added to LLVM’s libc. 1048b59.A typescript extension was created for llvm-dap, with the intent of allowing different companies developing their own VSCode extensions for LLDB to have a single shared contribution point. b5d4332.
In MLIR, the OpenACC (‘acc’) dialect design philosophy was documented. ab4af25.