LLVM Weekly - #367, January 11th 2021
Welcome to the three 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 https://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
The deadline for submissions to the 5th LLVM Performance Workshop at CGO-2021 was extended to January 15th 2021.
CMake performs well as LLVM's buildsystem, but can it do more? What about Ray Tracing in pure CMake?.
On the mailing lists
-
Tom Stellard shared the proposed release schedule for LLVM 12, noting that an LLVM 11.1.0 release will be necessary. He also proposes a week-of-the-year based release schedule that an be used for all future releases, aiming to document current practice. The proposed branch date is January 26th.
-
Shoaib Meenai proposes making ld64.lld default to the new Mach-O port, noting that this new LLD Mach-O port can now self-host and passes its test suite on X86-64. Shoaib would like to make this change prior to the LLVM 12 branch.
-
Stella Laurenzo shared an RFC on modernizing CMake LLVM's "Components" facility.
-
Craig Topper proposed allowing scalable vectors in structs to support multiple return values from intrinsics. Respondents suggest that steps towards removing load/storephi on first class aggregates would be welcome.
-
Stella Laurenzo posted an RFC on moving py-mlir-release to a new top-level repo in the LLVM org.
-
Florian Hahn shared thoughts on speculatively creating IR and throwing it away if not needed. He intends to do this for runtime checks in LoopVectorize, and is checking if anyone has concerns about this approach.
-
LLVM GPU News Issue #3 has now been published.
-
Johannes Doerfert posted an RFC on introducing !nocpature metadata and the
nocapture_use
operand bundle. This is helpfully summarised as "A pointer stored in memory is not necessarily captured, let's add a way to express this." -
LLVM 11.0.1-final has been tagged.
-
Johannes Doerfert shared detailed thoughts on lifetime.start/lifetime.end.
-
Anirudh Prasad posted an RFC on adding support for minimal HLASM syntax support for inline asm blocks for z/OS.
LLVM commits
-
Initial support was added for an assert statement in TableGen. 6e2b635.
-
A base implementation for sret demotion was added to GlobalISel. d68458b.
-
CoroSplit's function splitting/outlining was corrected and made compatible with the new pass manager. 7fea561.
-
The Sparc internal assembler received a number of fixes. 42652c1.
-
The FunctionAttrs interprocedural pass can now infer
noreturn
. 8cf1cc5. -
Multiplication with a constant was optimised in the RISC-V backend. 55f0a1b.
-
Exception handling instructions were added to the WebAssembly backend in line with a new specification. 9e4eade.
Clang commits
-
Source-based coverage gained support for branch coverage. 9f2967b.
-
Clang extensions for function pointers and variadic functions in OpenCL were added. 4fde2b6, 0e874fc.
Other project commits
-
LLVMType was removed from MLIR, and LLVM dialect types now derive Type directly. Additionally, LLVM dialect float types were replaced with builtins. c69c9e0, dd5165a.
-
__atomic_is_lock_free
was implemented in compiler-rt. 00530de. -
The Flang driver gained support for
-D
,-U
,-c
, and-emit-obj
. 7809fa2, e5cdb6c. -
Implementations of nearbyint[f|l], nextafter[f|l], and fmaf were added to LLVM's libc. 993d8ac, 7f7b0dc, 4726bec.