[llvm-dev] LLVM Weekly - #340, July 6th 2020

Alex Bradbury via llvm-dev llvm-dev at lists.llvm.org
Mon Jul 6 10:18:26 PDT 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).


More information about the llvm-dev mailing list