LLVM Weekly - #446, July 18th 2022
Welcome to the four hundred and forty-sixth 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
What LLVM merchandise would you like to see? Take part in the survey.
Another talk from EuroLLVM is now available (I believe the final one). Jan Svoboda presents “Implicitly discovered, explicitly built Clang modules”.
On the forums
As a reminder, LLVM 15.x will branch on July 26th.
The first meeting about creating an MLIR based Clang IR will take place on Friday July 22nd.
Stella Laurenzo provided detailed notes on the recent MLIR C/Python API registration overhaul.
Jeremy Morse shared an idea for better tracking of source location ordering through LLVM.
Kazu Hirata proposed deprecating
llvm::Optional<X>::hasValue/getValue/getValueOr
, instead recommending the use ofhas_value/value/value_or
which matches thestd::optional
interface.Bharathi Seshadri is seeking participation from anyone interested in extending LLVM to support GitBOM (a tool for building “Artifact Dependency Graphs”).
Tanya Lattner is seeking input from anyone interested in helping to get mentors for an expand LLVM in Outreachy.
Kito Cheng shared that the RISC-V psABI public review period has now started.
The July 2022 LLVM Code of Conduct Transparency report has been published.
Various deprecations / removals are underway in MLIR - the tileAndFuseLinalgOps method, Linalg filter-based patterns, OpaqueElementsAttr (assuming no objections to the RFC), and removing legacy ops from the ‘quant’ dialect.
Fernando Magno Quintão Pereira shared the publication fo the Jotai collection of executable benchmarks.
Sheng posted an RFC focused on implementing C++20 P0960R3, for initialising aggregates with a parenthesised list of values.
LLVM commits
Initial support was added for converting function returns with jumps to an architecture-specific symbol on X86 (e.g.
__x86_return_thunk
). This can be used to mitigate RetBleed. 2240d72.Initial support for COFF was added to JITLink. db995d7.
LoongArch codegen functionality was further expanded, with support for FP conversions and atomics. 1df96ce, e147a0f, 47f3dc6.
Support for float binop constant expressions was removed. 4bb7b6f.
Instruction predicate verification was moved so it triggers for both assembly and object emission (rather than just object emission). 3e0bf1c.
A RISC-V specific CodeGenPrepare pass was added, looking for opportunities for replacing zero-extension with sign-extension on RV64. 1a8468b.
Clang commits
Documentation is now available for the git-clang-format. 422e6e7.
Support was added for
-mstack-protector-guard-symbol
on X86. a45dd3d.A MacroUnexpander was added to clang-format. d6d0dc1.
Clang’s dataflow analysis gained more readable pretty-printing. c9666d2, b8d83e80.
Other project commits
A GDB plugin was written that uses libompd to provide debugging support for OpenMP programs. 51d3f42.
MLIR’s C/Python registration APIs were overhauled. 5e83a5b.
The Flang intrinsic types were documented. 9d24eba.
pthread_equal and pthread_self were implemented in LLVM’s libc. 8dc4280.
std::ranges::{set_union,find_end,search,set_symmetric_difference}
were implemented. 101d1e9, a5c0638, 3151b95.