LLVM Weekly - #548, July 1st 2024
Welcome to the five hundred and forty-eighth 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.
Last week I was honoured and delighted to be recognised with the Software Contributor Award by the RISC-V International Board of Directors.
News and articles from around the web and events
Additional videos were uploaded to the EuroLLVM 2024 recordings playlist.
Fangrui Song wrote up integrated assembler improvements in LLVM 19, which resulted in measurable performance gains.
The next Seattle area LLVM social will take place on Tuesday July 16th.
According to the LLVM calendar in the coming week there will be the following:
- Office hours with the following hosts: Renato Golin, Quentin Colombet, Johannes Doerfert.
- Online sync-ups on the following topics: MLIR C/C++ frontend, pointer authentication, SPIR-V, AArch64, new contributors, OpenMP, Flang, LLVM libc, MLIR.
- For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.
On the forums
Tobias Hieta shared the proposed LLVM 19 release schedule, with the branch occurring on 23rd July and the final release planned for 3rd September.
Nikita Popov proposes adding a nopoison attribute. Much of the discussion is around the semantics of a store of a poison value.
Volodymyr Sapsai is bumping the RFC on adding an option to enable precompiled headers for LLVM libraries, summarising the discussion so far.
Andy Kaylor started an RFC discussion on introducing stronger guarantees for denormal-fp-math.
Amrit Bhogal kicked off an RFC thread on allowing
[[gnu::cleanup]]
to work with[[clang::overloadable]]
.
LLVM commits
The LLVM part of the numerical sanitizer was committed. 1710679.
The AArch64 backend learned to lower ptrauth constants in code. 1488fb4.
Function, GlobalValue, BasicBlock and Instruction gained a new
getDataLayout()
helper. 2d209d9, 9df71d7.Support was added for the
SPH_KHR_cooperative_matrix
SPIR-V extension. 57f7937.SmallPtrSet gained a
remove_if()
method. f019581.A scheduling model was introduced for the Syntacore SCR3. 2d84e0f.
The Xtensa backend can now lower GlobalAddress/BlockAddress/JumpTable. cc8fdd6.
Functions created via
createWithDefaultAddr()
now havetarget-{cpu,features}
attributes added. 89d8df1.The minimal Z3 version was bumped to 4.8.9 from 4.7.1. b7762f2.
MachineDomTreeUpdater was introduced, built on top of GenericDomTreeUpdater (which was generalised from DomTreeUpdater). c931ac5.
Clang commits
Pointer authentication was implemented for C++ virtual functions, vtables, and virtual table tables (VTTs). 1b8ab2f.
The
--print-enabled-extensions
option was added to Clang for AArch64 and will print the list of extensions that are enabled for the target by the combination of-target
,-march
, and-mcpu
. bb83a3d.__builtin_verbose_trap
was added. 2604830.nonblocking and nonallocating attributes were introduced. f03cb00.
A new option to remove leading blank lines was added to clang-format. 9267f8f.
__builtin_object_size
was documented. 569faa4.