LLVM Weekly - #567, November 11th 2024
Welcome to the five hundred and sixty-seventh 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
A survey is now up to better understand how MLIR develoeprs and users connect to the upstream infrastructure. Answers to this survey will help inform discussions on MLIR project governance and charter, so please do fill it in or pass on to others who use MLIR.
The call for papers for the Compilers for Machine Learning (C4ML) workshop at CGO is now out.
The next LLVM Bay Area meetup will take place on Monday November 18th.
According to the LLVM calendar in the coming week there will be the following:
- Office hours with the following hosts: Aaron Ballman, Alexey Bader, Alina Sbirlea, Johannes Doerfert.
- Online sync-ups on the following topics: Flang, alias analysis, new contributors, LLVM/Offload, classic Flang, BOLT, MLIR open meeting.
- For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.
On the forums
Nikita Popov proposed adding support for modelling errno memory effects, noting that right now LLVM has no way to model that a function can only write to
errno
in particular (as opposed to other memory locations).Joshua Cranmer proposed allowing fast-math flags to be attached to more instructions (such as fpext, fptrunc, uitofp, sitofp).
Takumi Nakamura posted an RFC on extending ObjectYAML to handle coverage map sections.
In response to a question, Nikita Popov gave some illustrative examples for the difference between getelementptr nuw/nsw/nusw.
In the RFC thread on introducing a bytecode for LLDB data fomatters, Adrian Prantl suggests a path forwards.
Joshua Cranmer initiated an RFC discussion on changing the supported formats for floating-point literals in LLVM IR.
Simone Campanoni posted an RFC on allowing ThinLTO to rename local functions with sections.
Ivan Butygin kicked off an MLIR RFC thread on removing the offset from the memref type (there’s some detailed follow-up posts e.g this that give more background).
LLVM commits
A new analysis pass was introduced to avoid re-running transform passes in cases there has been no change. cacbe71.
Expectations about the handling of additional review comments after a ‘LGTM’ were documented. 41248b5.
Recursive types are now disallowed in LLVM IR. 4831e0a.
Tuning flags for targets with fast segmented loads and stores were added to the RISC-V backend. beb12f9.
GlobalISel now canonicalizes
(sub x, C)
to(add, x, -C)
. 999dfb2.XRay instrumentation was implemented for SystemZ. 4a37799.
LLVM learned to emit function epilogue call frame information for RISC-V. 97982a8.
BranchRelaxation support was implemented in the Xtensa backend. 3b1b127.
RuntimeDyld now supports LoongArch. 4e668d5.
The
implicit
SDag node was removed. 501a583.
Clang commits
As part of upstreaming ClangIR into mainline Clang, trivial codegen (
cir.fun @foo
) is now possible. c695a32.APINotes gained preliminary lifetimebound support. 7ac78f1.
The
__grid_constant__
attribute was implemented for CUDA. 7c3fdcc.A new alpha.webkit.UncheckedCallArgsChecker was added. ef353b0.
__builtin_counted_by_ref
was added, a builtin that returns a pointer to the count field from thecounted_by
attribute. 7475156.A build of libLLVMSupport was added to the lit suite that’s used for generating Clang profile data. 7382509.
Other project commits
BOLT gained a
--compact-code-model
option for AArch64. 49ee606.XRay is now supported on shared libraries for AArch64. 1adca7a.
libcxx testing can now be run for GPU targets. 95a2eb7.
libcxx benchmarks are now built alongside the tests. e236a52.
Bounded iterators for std::array are now supported in libcxx. 427a5cf.
The MLIR arith-int-range-narrowing pass was introduced. 9f0f6df.