LLVM Weekly - #451, August 22nd 2022
Welcome to the four hundred and fifty-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
Registration is now open for the 2022 US LLVM Developers' Meeting.
The August Women in Compilers and Tools virtual meetup will feature Ayana Monroe and Lisa Huang presenting “User-Enhanced Learning Experience of Symbolic Logic Programming”.
Kristof Beyls provided an update on LLVM’s relicensing, including how you can help, on the LLVM blog. See also the associated Discourse thread.
On the forums
Jordan Rupprecht shared an RFC on adding support for telemetry collection / metrics to LLDB. As the RFC notes, this can be a controversial topic and the post naturally discusses privacy concerns. One point to underline is “Explicitly, there is no central server maintained by LLDB developers or the LLVM project.”
David Spickett proposed using XML register field descriptions to allow LLDB to show fields within registers.
John Regehr posted a summary of short/medium-term directions for llvm-reduce.
The recording from the last Open MLIR meeting covering the proposal for a high-level ML dialect in MLIR is now available. See also Chris Lattner’s recent post and the posts that precede it in in the high-level ML dialect thread discussing whether such an effort should go through LLVM’s incubator process (with Chris arguing that it should).
Konrad Kleine provided statistics and charts for LLVM’s buildbots.
Andrew Safronov shared an update and request for help reviewing the Tensilica Xtensa backend proposed for upstreaming.
LLVM GPU News #40 is out.
Adrian Vogelsgesang posted an RFC on improving debug info for C++ coroutine suspension locations.
Tobias Hieta posted an RFC on whether it’s time to drop legacy runtime paths from Clang.
Nicolas Vasilache and Aart Bik shared a very detailed MLIR RFC on “Structured Codegen Beyond Rectangular Arrays”.
LLVM commits
A scheduling model was added for X86 AlderLake-P. f4410d4.
Guidance was added on what to put in calendar invites for community events. 3d2ea3c.
SimplifyCFG should no longer introduce ptrtoint for non-integral pointers. 3a8d7fe.
llvm-reduce learned to call simplify-cfg on individual basic blocks. 2f1fa62.
Initial ELF/i386 support was added for JITLink. 29fe204.
Initial support for the
NonNull
intrinsic attribute was added. d68ba43.MachineBasicBlock::hasAddressTaken()
was split intoisMachineBlockAddressTaken()
andisIRBlockAddressTaken()
. cfd2c5c.Redundant branch-to-branches are now eliminated when expanding atomic cmpxchg on RISC-V. ce38128.
MC layer support was added for the RISC-V Zca extension. 515ece1.
getUserCost
was replaced withgetInstructionCost
. fdec501.On RISC-V,
VScaleForTuning
is now used to estimate the cost of operations whose cost depends on the vector length. As noted in the commit message, this produces better results in general, but there’s a risk of the cost being under-estimated ifVScaleForTuning
doesn’t accurately reflect the vector length on the target. 4d87591.The coding standards guidance for constexpr if statements was clarified. cda0936.
Clang commits
Various unary type transformations were added as compiler built-ins. e9ef456.
Boolean and nullptr literals as well as negating and inverting values are now supported in the Clang interpreter. a2a5470, 80bbc05.
-finline-max-stacksize=<N>
can be used to suppress inlining of functions who stack size exceedsN
. 8564e2f.
Other project commits
Initial support was added to MLIR for a bytecode serialisation format. f3acb54.
<ranges>
are no longer marked experimental in libc++. b8cb1dc.A design doc for lowering polymorphic entities in Flang was committed. 26d3655.
Performance improvements were made to libc++’s format buffer. f7c0df00.
Software single stepping now works for LLDB RISC-V. 4fc7e9c.