LLVM Weekly - #515, November 13th 2023
Welcome to the five hundred and fifteenth 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
EuroLLVM 2024 has been announced for April 9-11 in Vienna, Austria. Volunteers are being sought for the program committee and student travel grants committee.
The call for proposals is open for the LLVM dev room at FOSDEM 2024.
Axel Obermeier blogged about building SciPy with Flang (discussion on this post is here).
Henrich Lauko wrote up an LLVM Dev Meeting 2023 trip report.
Herb Sutter provided a trip report from the Autumn ISO C++ standard meeting.
According to the LLVM calendar in the coming week there will be:
- Office hours with the following hosts: Aaron Ballman, Alexey Bader, Phoebe Wang, Johannes Doerfert.
- Online sync-ups on the following topics: Flang, pointer authentication, AArch64, GlobalISel, classic flang, OpenMP, C/C++ language working group, loop optimisations, floating pint, OpenMP for Flang, MLIR open meeting, PowerPC, SPIR-V.
- For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.
On the forums
Jeremy Morse posted an update on work to eliminate debug intrinsics from IR.
Paul Walker is seeking feedback on an RFC to change the way scalable vector constant splats are represented.
Mikhail Goncharov reported that new buildbots were setup to mimic the pre-commit testing environment.
Paschalis Mpeis posted an RFC on implementing vectorisation support for histogram count operations, as occur in image processing.
Nikolas Klauser shared an update on discussions on using language extensions from future standards in libc++.
William Moses is running a poll for dates for the next Enzyme annual meeting.
William Moses posted an RFC proposal for adding
__attribute__((sizeless))
in order to forbid uses of sizeof on the given type.David Spickett started a discussion about the use of assert/lldbassert in LLDB.
Daniel Thornburgh proposed encoding target CPU and features for module-level inline assembly. In response, James Y Knight suggested instead making the IR producer encode the list of symbols into the IR, which would solve the underlying problem in an alternate way.
LLVM commits
The preferred project-wide casting style was documented in the coding standards. 18bb972.
RISC-V GlobalISel support is now at the point where SPEC2006Int can be executed, if compiled with O0 (though with many fallbacks). 9f6010d.
The FP cast constant expressions were removed from LLVM’s IR. 17764d2.
Support for the deprecated AMDGPU Code Object V3 was removed. 4428b01.
Type::getInt8PtrTy was removed (clearing a remaining TODO from the opaque pointer transition). 7b9d73c.
InstCombine can now infer the zext nneg flag. 5918f62.
The extended set of registers (EGPR) are now supported for X86 with APEX enabled. c9017bc.
The “WebKit” calling convention introduced for the long retired FTL JIT was removed. 6d1d7be.
Clang commits
The quality of diagnostics from the static analyzer’s ArrayBoundCheckerV2 was improved. 16ef4968d.
clang-format-diff now exits with a non-zero status if it detects formatting changes are needed, making it more convenient for use in CI pipelines. 68d618f.
The
[[clang::coro_only_destroy_when_complete]]
attribute was introduced. b7b5907.
Other project commits
std::experimental::observer_ptr
was implemented in libcxx. 7a62bee.std::basic_syncbuf
andstd::basic_osyncstream
were implemented in libcxx. 7cc72a0.The nfc-stat-parser.py script was introduced for BOLT, which will parse output from llvm-bolt-wrapper and detect individual and aggregate time/memory swings. 12c6625.
powf was implemented in LLVM’s libc. bc7a3bd.
Scalable vectors are now support in MLIR’s Python bindings. 96dadc9.