LLVM Weekly - #396, August 2nd 2021
Welcome to the three hundred and ninety-sixth 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
LLVM 13.0.0 has branched and the first release candidate is expected today.
On the mailing lists
Jeremy Morse is seeking testers for the new variable location tracking solution that has been added to LLVM, but is off by default.
Luke Kenneth Casson Leighton posted an RFC on a proposed vector/SIMD ISA context abstraction.
Ben Gamari wrote to llvm-dev about a proposed change to the GHC calling convention, querying if this may cause an issue for LLVM.
Michał Górny shared that Mortiz Systems has been contracted to enable KGDB compatibility in LLDB and so will be working on improving compatibility between LDB and the gdbserver protocol as part of this.
Thomas Goodfellow asked for advice on building compiler-rt for RISC-V and received answers from Fāng-ruì Sòng and Luís Marques.
Teresa Johnson provided input from an ThinLTO perspective on function specialization.
Geoffrey Martin-Noble shared that pre-merge checks have been set up for the Bazel build of LLVM.
LLVM commits
A jump-threading optimisation was added for deterministic finite automata was added. One well-known input where this optimisation may be triggered is the
core_state_transition
function of coremark. 02077da.Graph reordering in the SLP vectorizer has been improved. e408d1d.
AArch64 GlobalISel will no longer optimise away redundant branches at
-O0
, in order to improve the debuggability of emitted code. c5d84d2.The CallPenalty for the inliner is now configurable. 46c0366.
Support for the arch14 SystemZ architecture was added to the SystemZ backend. 8cd8120.
Emscripten exception handling now works with Emscripten SjLJ (setjmp/longjmp). c285a11.
Initial code was added to generate assembly files on z/OS. a8cfa4b.
LLVM_ATTRIBUTE_NORETURN
has been replaced with[[noreturn]]
in the LLVM codebase. 6da3d8b.A new feature was introduced in AArch64 for Scalable Matrix Extension (SME) streaming mode. 3a349d2.
Clang commits
#pragma include_instead
was introduced, which can be used by system headers to indicate to a tool that the file including this pragma shouldn’t be directly included by user code. e8a64e5.#pragma clang deprecated
was added in order to enable deprecation of preprocessor macros. 26c695b.Clang option
-ffp-model=precise
now enables-ffp-contract=on
. 48ad446a.Support was added for the
-ffp-eval-method
command-line option. 66ddac2.
Other project commits
A new libc++ CMake option was added to disable the usage of incomplete headers which aren’t guaranteed to be ABI stable. 71909de.
The Hierarchical Trace Representation (HTR) format for large traces (e.g. processor traces from Intel PT) was introduced to LLDB. aad17c5.
A prototype of a new OpenMP GPU device runtime library was introduced. 67ab875.
Initial Objective-C and Swift support was added to the ORC runtime’s MachOPlatform. cdcc354.
The migration of Flang’s tests to GTest has been completed. 65436e6.
A new
-Bsymbolic-non-weak-functions
option was added to the LLD ELF linker. b06426d.LLDB gained a new option to write memory tags (when Arm’s Memory Tagging Extension is supported). 6a7a2ee.
MLIR’s Python build support was reworked. 310c949.
The llvm-omp-device-info tool was added. 313c523.