LLVM Weekly - #495, June 26th 2023
Welcome to the four hundred and ninety-fifth 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, or @llvmweekly@fosstodon.org or @asb@fosstodon.org.
News and articles from around the web and events
Fangrui Song blogged about porting LLVM’s XRay to Apple systems and C++ standard library ABI compatibility.
According to the LLVM calendar in the coming week there will be:
- Office hours with the following hosts: Kirstof Beyls, Johannes Doerfert.
- Online sync-ups on the following topics: Flang, MLIR C/C++ frontend, pointer authentication, SYCL, OpenMP, classic Flang, loop optimisations, OpenMP in Flang, MLIR open meeting, SPIR-V.
- For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.
On the forums
Reid Kleckner provided an update on the schedule for the planned migration to GitHub pull requests. This would see new Phabricator reviews being disabled on September 1st, and Phabricator shut down (ideally made read-only with a HTML archive) on October 1st. This update was also shared on the announcements forum.
Pierre van Houtryve proposed introducing MatchTable-based GlobalISel combiners and shared an initial set of patches.
Dayann D'almeida shared an RFC on llvm-cm, a tool for cost model evaluation of code that might use basic block profile information alongside the object file to produce a latency estimation that could help inform machine learning optimisations.
MLIR News #49 is out.
Kristof Beyls shared meeting minutes from the 20th June LLVM security group public sync-up.
Christopher Di Bella proposes developing a policy for Clang diagnostic updates whereby new diagnostics or updates to existing ones have an example of the changes in the commit message.
The slides and recording from the last open MLIR meeting on introducing an ArmSME dialect.
Connor Sughrue kicked off an RFC thread on introducing a Clang modules build daemon.
Nicolai Hähnle proposes introducing a form of ‘structured data’ in LLVM IR, motivated by a desire to specify properties of LLVM IR
target
types without introducing ad-hoc syntax extensions.
LLVM commits
An Cortex A510 scheduling model was added. ef9159c.
TrigramIndex from the LLVM support library was removed on the basis that it doesn’t appear to make
SpecialCaseList::match()
faster as intended. 1390675.The
-misched-detail-resource-booking
flag was added to llc. 37db9ca.The RISCVMoveMerge pass as added to perform peephole optimisation that enabled the Zcmp
cm.mvsa01
andcm.mva01s
instructions to be used (instructions for moving to/from a0-a1 and s0-s7, defined to help reduce code size). c9e08fa.llvm-exegesis gained a subprocess executor mode. 4d618b5.
The CORE-V XCVmac extension is now supported in the RISC-V backend MC layer. e219dd8.
LLVM can now generate execute-only code for armv6m. 2273741.
The sample profile reader was optimised using MD5 as a key to the sample profile map. 31af18b.
Clang commits
The new
misc-header-include-cycle
check can be used to detect cyclic include dependencies between user-defined headers. 7f6e005.__builtin_elementwise_round
was introduced. 2a488b4.Clang learned to warn for invalid Arm or AArch64 target triples. 041ffc1.
Other project commits
Support for baremetal 32-bit RISC-V was added to LLVM’s libc. 9fa7998.
Large parts of the libc++ codebase were reformatted with clang-format. 5aa03b6.
LLD gained support for Arm’s “byte-invariant” big endian configuration. 8cf8956.
The new
register info
command in LLDV will show all information LLDB knows about a register. ba85f20, bcfe5a5.The TransformRewriter was added to MLIR. c63d2b2.