Alex Bradbury via llvm-dev
2020-Jul-06 17:18 UTC
[llvm-dev] LLVM Weekly - #340, July 6th 2020
LLVM Weekly - #340, July 6th 2020 ================================ If you prefer, you can read a HTML version of this email at <http://llvmweekly.org/issue/340>. Welcome to the three hundred and fourtieth 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 The 2020 Virtual LLVM Developers' Meeting call for presentations [has an upcoming deadline of July 15th](http://lists.llvm.org/pipermail/llvm-dev/2020-July/143056.html). The conference will take place on October 6th-8th. ## On the mailing lists * Chris Lattner wrote up [a proposal for LLVM incubator projects](http://lists.llvm.org/pipermail/llvm-dev/2020-June/142911.html), based on the previous mailing list discussion. * Stephen Neuendorffer [proposed CIRCT as an incubator project](http://lists.llvm.org/pipermail/llvm-dev/2020-July/143063.html). CIRCT is an effort to adapt MLIR for hardware design. * Last week's thread on compiled regression tests has seen significantly more discussion. Chris Lattner [shared further motivation about LLVM's current testing approach](http://lists.llvm.org/pipermail/llvm-dev/2020-June/142932.html), strongly arguing in favour of testing via textual interfaces wherever feasible. * Duncan Exon Smith proposes [adding a temporary staging branch to facilitate upstreaming](http://lists.llvm.org/pipermail/llvm-dev/2020-June/142881.html). The motivation is to allow collaboration on the upstreaming of a large set of patches from Apple. The emerging consensus appears to be to create the branch on another copy of the LLVM monorepo within the LLVM GitHub organisation. * Alexandre Ganea [proposed replacing the default memory allocator on Windows](http://lists.llvm.org/pipermail/llvm-dev/2020-July/143015.html), demonstrating huge speedups on a 36-core machine when switching to mimalloc, rpmalloc or snmalloc (from 38m47s to link LLD with `-flto` down to ~2m20s). * Shan Landden posted an RFC for [adding a carry-less multiplication instruction to LLVM IR](http://lists.llvm.org/pipermail/llvm-dev/2020-July/143068.html). * Nicolai Hähnle shared an RFC on [introducing new classes and templates to allow writing algorithms that are generic over different types of CFG](http://lists.llvm.org/pipermail/llvm-dev/2020-July/143039.html). * "MyDeveloperDay" proposed [semi-automatically clang-formating files in the monorepo that have been unmodified for 6-12 months](http://lists.llvm.org/pipermail/llvm-dev/2020-June/142850.html). * Nicolai Hähnle provided a very positively received heads-up that [target-specific intrinsics in InstCombine will soon be handled via a TargetTransformInfo hook](http://lists.llvm.org/pipermail/llvm-dev/2020-June/142859.html), meaning all the target-specific logic can be moved to lib/Target/. * Denis Steckelmacher [asked for advice on handling far branches on architectures with restricted branch range](http://lists.llvm.org/pipermail/llvm-dev/2020-July/142952.html) and helpfully [followed-up to summarise the identified paths forward](http://lists.llvm.org/pipermail/llvm-dev/2020-July/142962.html). * Louis Dionne sent a [reminder about the plans to upgrade the minimum required CMake version](http://lists.llvm.org/pipermail/llvm-dev/2020-June/142893.html) for LLVM after the 11.0 branch. * Nathan Huckleberry shared a proposal for [instrumenting Clang/LLVM with the Perfetto event based tracer](http://lists.llvm.org/pipermail/llvm-dev/2020-July/143012.html). ## LLVM commits * The `INLINEASM_BR` MachineInstr is now modelled as a non-terminating instruction, which is more appropriate now it supports output values. [4b0aa57](https://reviews.llvm.org/rG4b0aa5724fe). * Bitfield utilities were added to LLVM's ADT library. [b56b467](https://reviews.llvm.org/rGb56b467a9a8). * New MVT types were added as a pre-requisite for RISC-V vector extension support. [a7b0f39](https://reviews.llvm.org/rGa7b0f391852). * X86 CPU feature initialisation was moved to a lookup table implementation. [3537939](https://reviews.llvm.org/rG3537939cda8). * The AArch64 backend regains performance on a SPEC2006 benchmark by implementing getCFInstrCost and treating branches as free for throughput. [1ccc499](https://reviews.llvm.org/rG1ccc49924ae). * Mips, PPC, and RISCV targets have been migrated away from TargetFunctionInfo depending on the MachineFunction state on construction. [669bb31](https://reviews.llvm.org/rG669bb3111ff), [d9f0c36](https://reviews.llvm.org/rGd9f0c3663f0), [08649f0](https://reviews.llvm.org/rG08649f0a9da). * The setJumpIsExpensive and setHasMultipleConditionRegisters hooks were implemented for the RISC-V backend. [7dc8926](https://reviews.llvm.org/rG7dc892661ed). * The PowerPC backend gained probing for dynamic stack allocation, as part of supporting `-fstack-clash-protection`. [03828e3](https://reviews.llvm.org/rG03828e38c3c). * Support was added for the Cortex-A77. [8bf99f1](https://reviews.llvm.org/rG8bf99f1e6f0). ## Clang commits * clang-format gained the ability to preserve whitespace in selected macros. [0c332a7](https://reviews.llvm.org/rG0c332a7784c). * Support for AST matchers taking regex arguments was improved. [f51a319](https://reviews.llvm.org/rGf51a319cacd). * clangd now runs formatting operations asynchronously. [ffa63dd](https://reviews.llvm.org/rGffa63dde8e9). ## Other project commits * A dialect-independent redundant copy removal transform was added to MLIR. [0f03b2b](https://reviews.llvm.org/rG0f03b2bfda9). * flang was updated to use common OpenMP Directive and Clause enums from llvm/Frontend. [7f1e776](https://reviews.llvm.org/rG7f1e7767952). * The old libcxx test format has been removed. [5d83880](https://reviews.llvm.org/rG5d838808854), [b58b61c](https://reviews.llvm.org/rGb58b61c4b78). * assertSuccess was added to LLDB's test framework. [3567497](https://reviews.llvm.org/rG35674976f09).