LLVM Weekly - #461, October 31st 2022
Welcome to the four hundred and sixty-first 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, or @llvmweekly or @asbradbury on Twitter.
News and articles from around the web
Tanya Lattner is seeking moderators for the LLVM Dev Meeting. Volunteer and get a free t-shirt!
Jakub Beránek blogged about speeding up rustc, primarily through improvements to how it’s compiled (including LTO, PGO, and application of BOLT).
On the forums
Patrick Walton initiated a discussion on marking SSA values as pointing to immutable memory, with the intention of better optimising Rust generated IR.
Jakub Kuderski and collaborators made a proposal on poison semantics for MLIR.
Tom Stellard is seeking input on desired GitHub pull request features, and is intending to submit a list to GitHub on Wed 2nd November.
David Blaikie shared news of an ABI break in Clang 16 due to fixes for the GCC Itanium ABI.
Lang Hames provided an update on ORC JIT.
“tmatheson” raised concerns about the expansion of volatile/const atomics to LLSC/cmpxchg loops.
LLVM commits
The “Writing an LLVM backend” document was updated to used named operand matching. 5713c29.
Patches implementing the llvm-debuginfo-analyzer continue to land, with an ELF reader now committed. 4f06d46.
Support was added for the new X86 CMPCCXADD, AVX-VNNI-INT8, and other instruction. fdac4c4, 23f0269.
Vectorisation of epilogue loops was disabled for RISC-V. 269bc68.
Function specialisation based on literals was fixed. 38f44cc.
!logtwo
was added to TableGen. 64d5aed.Scalar FP ceil/floor/trunc/rint/round/roundeven are now inlined rather than relying on a libcall. e94dc58.
Clang commits
-Wcast-function-type-strict
was added to provide warnings for function type casts with mismatched types (which may lead to runtime CFI failures). 1aad641.P2513, the “char8_t Compatibility and Portability Fix” was implemented. This allows initialising an array of unsigned char or char from u8 string literals in C++. d0d2772.
-fstrict-flex-array=3
is now supported. 7f93ae8.
Other project commits
LLVM’s libc gained implementations of difftime, clock, time, and fgets functions. The initial scanf parser was also added. 1220442, 22ea0e5, 2d52283, 7a129f0.
Documentation was written on side effects and speculation in MLIR. 49e2d36.
Minimal LoongArch support was added to LLDB. a3be778.
Debug info started to be added to the MLIR LLVM dialect. 3bef1e0.
Fastmath flag attribute support was added to the MLIR arithmetic dialect. b56e65d.
A new plugin infrastructure was implemented for libomptarget alongside a new CUDA plugin. 8469041.