Alex Bradbury via llvm-dev
2020-Aug-10 17:44 UTC
[llvm-dev] LLVM Weekly - #345, August 10th 2020
LLVM Weekly - #345, August 10th 2020 =================================== If you prefer, you can read a HTML version of this email at <http://llvmweekly.org/issue/345>. 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](https://www.linkedin.com/in/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 at asbradbury.org>, or @llvmweekly or @asbradbury on Twitter. ## News and articles from around the web LLVM 10.0.1 has [been released](http://lists.llvm.org/pipermail/llvm-announce/2020-August/000088.html). Dan Curran has written a blog post about [implementing Unified Function Calling Syntax (UFCS) in Clang](https://dancrn.com/2020/08/02/ufcs-in-clang.html). ## On the mailing lists * Snehasish Kumar presented a [machine function splitter](http://lists.llvm.org/pipermail/llvm-dev/2020-August/144012.html) 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](http://lists.llvm.org/pipermail/llvm-dev/2020-August/144101.html), built at Facebook as an alternative to AutoFDO. * Kazu Hirata proposed [introducing the "dump accumulator"](http://lists.llvm.org/pipermail/llvm-dev/2020-August/144047.html), 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](http://lists.llvm.org/pipermail/llvm-dev/2020-August/144056.html). * Nicolai Hähnle posted a detailed RFC on [introducing convergence control bundles and intrinsics](http://lists.llvm.org/pipermail/llvm-dev/2020-August/144165.html). * Bill Wendling posted an RFC on [adding support for zeroing caller saved registers](http://lists.llvm.org/pipermail/llvm-dev/2020-August/144082.html), for use by the KSSP project to improve Linux kernel security. * Nathan Lanza [suggested deprecating Python 2 in the LLDB scripting API](http://lists.llvm.org/pipermail/lldb-dev/2020-August/016387.html) and adding type annotations. * Paul C. Anagnostopoulos [suggested changing TableGen's range syntax to use `..` to avoid ambiguity in the current use of `-`](http://lists.llvm.org/pipermail/llvm-dev/2020-July/143912.html). * Bevin Hansson proposed [moving fixed-point classes from Clang to LLVM and adding a FixedPointBuilder](http://lists.llvm.org/pipermail/llvm-dev/2020-August/144025.html), providing a canonical LLVM IR interface for constructing fixed-point operations. * Nicolai Hähnle suggested [creating a Discourse category for the AMDGPU target](http://lists.llvm.org/pipermail/llvm-dev/2020-July/143786.html). * ORC JIT Weekly #19 [is out](http://lists.llvm.org/pipermail/llvm-dev/2020-August/144177.html). 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](https://reviews.llvm.org/rG540489de681). * As part of the ongoing new pass manager work, a machine pass manager was introduced. [911565d](https://reviews.llvm.org/rG911565d1085). * A new utility `split-file` was added to help produce test cases involving multiple documents in the same input file. [bcea3a7](https://reviews.llvm.org/rGbcea3a7a288). * The llvm-readobj test cases were cleaned up. [2bca784](https://reviews.llvm.org/rG2bca784ab84). * LoopVersioning was ported to the new pass manager. [7c19c89](https://reviews.llvm.org/rG7c19c89dd5c). * lit gained a `--time-trace-output` command line options to emit a chrome://tracking compatible trace file. [98827fe](https://reviews.llvm.org/rG98827feddb9). * Documentation was added on using CHECK-SAME in FileCheck tests. [4963ca4](https://reviews.llvm.org/rG4963ca4658b). ## Clang commits * Diagnostics were improved for misaligned and large atomics. [e18c6ef](https://reviews.llvm.org/rGe18c6ef6b41). * A new webkit.UncountedLambdaCapturesChecker was added to flag when raw pointers and references to uncounted types are captured in lambdas. [820e8d8](https://reviews.llvm.org/rG820e8d8656e). * A new `-Wtautological-value-range-compare` warning was added. [d6492d8](https://reviews.llvm.org/rGd6492d87447). ## Other project commits * Initial C APIs were introduced for MLIR. [75f239e](https://reviews.llvm.org/rG75f239e9756). * Classes were added to MLIR to model LLVM IR types without wrapping them, and MLIR was migrated to make use of these. [0c40af6](https://reviews.llvm.org/rG0c40af6b594), [d4fbbab](https://reviews.llvm.org/rGd4fbbab2e49), [ec1f4e7](https://reviews.llvm.org/rGec1f4e7c3b1), [b2ab375](https://reviews.llvm.org/rGb2ab375d1f0). * LLD `.debug_*` tombstone values were changed back to match GNU ld more closely. [004be40](https://reviews.llvm.org/rG004be4037e1). * flang's I/O runtime gained support for OutputDescriptor() and InputDescriptor(). [cc01194](https://reviews.llvm.org/rGcc01194c2fa). * LLVM's libc gained implementations of isblank, iscntrl, isgraph, ispunct, isspace, isprint, isxdigit, strspn, tolower, toupper, strcpsn, and strpbrk. [6cd50e7](https://reviews.llvm.org/rG6cd50e7b75e), [1fdab96](https://reviews.llvm.org/rG1fdab96130f), [f3b4150](https://reviews.llvm.org/rGf3b41502554), [128bf45](https://reviews.llvm.org/rG128bf458ab8), [dc13a9a](https://reviews.llvm.org/rGdc13a9a7813). * A `--dependency-file` option was added to LLD to create a dependency file in a Make-compatible format. [81eeabb](https://reviews.llvm.org/rG81eeabbd97f). * lldb-vscode now supports syntax highlighting in the disassembly view. [e7af986](https://reviews.llvm.org/rGe7af98680ad).