LLVM Weekly - #345, August 10th 2020
Welcome to the three hundred and forty-fifth 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 10.0.1 has been released.
Dan Curran has written a blog post about implementing Unified Function Calling Syntax (UFCS) in Clang.
On the mailing lists
-
Snehasish Kumar presented a machine function splitter optimisation pass, which splits functions into hot and cold parts, reporting 2% performance improvement on clang bootstrap, ~1% improvement on Google workloads and 1.6% mean performance improvement on SPEC IntRate 2017.
-
Wenlei He is seeking feedback on upstreaming context-sensitive sample PGO with pseudo-instrumentation, built at Facebook as an alternative to AutoFDO.
-
Kazu Hirata proposed introducing the "dump accumulator", a mechanism to dump arbitrary messages into object files during compilation and retrieve them from the final executable. Some of the respondents ask about whether optimisations remarks could be used for this.
-
Nicolai Hähnle posted a detailed RFC on introducing convergence control bundles and intrinsics.
-
Bill Wendling posted an RFC on adding support for zeroing caller saved registers, for use by the KSSP project to improve Linux kernel security.
-
Nathan Lanza suggested deprecating Python 2 in the LLDB scripting API and adding type annotations.
-
Paul C. Anagnostopoulos suggested changing TableGen's range syntax to use
..
to avoid ambiguity in the current use of-
. -
Bevin Hansson proposed moving fixed-point classes from Clang to LLVM and adding a FixedPointBuilder, providing a canonical LLVM IR interface for constructing fixed-point operations.
-
Nicolai Hähnle suggested creating a Discourse category for the AMDGPU target.
-
ORC JIT Weekly #19 is out. llvm-jitlink now supports object-level mocking/testing.
LLVM commits
-
A new llvm-profdata 'overlap' feature was implemented, reporting weighted similarity and unweighted overlap metrics at program and function level. 540489d.
-
As part of the ongoing new pass manager work, a machine pass manager was introduced. 911565d.
-
A new utility
split-file
was added to help produce test cases involving multiple documents in the same input file. bcea3a7. -
The llvm-readobj test cases were cleaned up. 2bca784.
-
LoopVersioning was ported to the new pass manager. 7c19c89.
-
lit gained a
--time-trace-output
command line options to emit a chrome://tracking compatible trace file. 98827fe. -
Documentation was added on using CHECK-SAME in FileCheck tests. 4963ca4.
Clang commits
-
Diagnostics were improved for misaligned and large atomics. e18c6ef.
-
A new webkit.UncountedLambdaCapturesChecker was added to flag when raw pointers and references to uncounted types are captured in lambdas. 820e8d8.
-
A new
-Wtautological-value-range-compare
warning was added. d6492d8.
Other project commits
-
Initial C APIs were introduced for MLIR. 75f239e.
-
Classes were added to MLIR to model LLVM IR types without wrapping them, and MLIR was migrated to make use of these. 0c40af6, d4fbbab, ec1f4e7, b2ab375.
-
LLD
.debug_*
tombstone values were changed back to match GNU ld more closely. 004be40. -
flang's I/O runtime gained support for OutputDescriptor() and InputDescriptor(). cc01194.
-
LLVM's libc gained implementations of isblank, iscntrl, isgraph, ispunct, isspace, isprint, isxdigit, strspn, tolower, toupper, strcpsn, and strpbrk. 6cd50e7, 1fdab96, f3b4150, 128bf45, dc13a9a.
-
A
--dependency-file
option was added to LLD to create a dependency file in a Make-compatible format. 81eeabb. -
lldb-vscode now supports syntax highlighting in the disassembly view. e7af986.