LLVM Weekly - #550, July 15th 2024
Welcome to the five hundred and fiftieth 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
The call for talk proposals at the LLVM Developers' Meeting is now open and closes on August 11th.
The next Portland LLVM social will take place on July 17th.
The next Munich LLVM meetup will take place on July 24th.
According to the LLVM calendar in the coming week there will be the following:
- Office hours with the following hosts: Phoebe Wang, Johannes Doerfert, Aaron Ballman.
- Online sync-ups on the following topics: pointer authentication, vectorizer improvements, security group, new contributors, OpenMP, Clang C/C++ language working group, Flang, floating point, RISC-V, MLIR, embedded toolchains.
- For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.
On the forums
Ludget Paehler shared a new dataset of LLVM IR for machine learning and other uses.
Justin Stitt posted an RFC on disabling sanitizer instrumentation for common overflow idioms.
Johannes Doerfert shared some educational compiler videos he’s started to release and is welcoming feedback.
Yuxuan Chen started a thread on language extensions for better and more deterministic HALO (heap allocation elision optimisation) for C++ coroutines.
Ivan Ivanov kicked off an RFC discussion on adding support for the OpenMP workdistribute construct in Flang.
Renato Golin started an MLIR RFC discussion on a transpose attribute for linalg matmul operations.
LLVM commits
LoopIdiomRecognize learned to recognize “shift until less-than”. 83b01aa.
LLVM’s MC layer (assembler) now supports
.cfi_label
, fixing a common case where GCC generated assembly fails to work with LLVM. 2718654.Branch hint prefixes are now supported in the X86 backend. e603451.
Improved codegen is now implemented for
ISD::CTL_ZERO_UNDEF
, taking advantage of the fact zero is an invalid input. 69192e0.The
.insn <value>
and.insn <insn-legnth>, <value>
variants of the.insn
directive are now supported for RISC-V. 2a086dc.Documentation on new atomicrmw metadata was added for AMDGPU. 62d9497.
The RISCVUsage documentation now gives guidance on the supported RISC-V profiles. 884a07f.
Support was added for the RISC-V QingKe “XW” compressed instruction set extensions, as used in WCH microcontrollers. 3c5f929.
Support was added for resolving conflicts between vendor-specific CSRs in RISC-V. 0628446.
Clang commits
modernize-use-ranges and boost-use-ranges checks were added to clang-tidy to convert iterator algorithms into C++20 or boost ranges. 1038db6.
sized_by
,counted_by_or_null
andsized_by_or_null
. e22ebee.Raw string literals are now supported as an extension in GNU C modes. e464684.
Documentation was added on working around an issue with missing vtables for classes attached to modules. 62a7562.
-fptrauth-function-pointer-type-discrimination
is now supported. ae18b94.-m[no-]scalar-strict-align
and-m[no-]vector-strict-align
are now provided for RISC-V. 73acf8d.
Other project commits
Initial support was added to compiler-rt builtins for GPU targets. dad7442.
Support for
-fhermetic-module-files
was added to Flang. 6598795.[f]pathconf
was implemented in LLVM’s libc. 7f3c40a.A new CyclicReplacerCache was added to MLIR, intended for use as a cache for functions that map values between two domains. ec50f58.