[llvm-dev] LLVM Weekly - #370, February 1st 2021

Alex Bradbury via llvm-dev llvm-dev at lists.llvm.org
Mon Feb 1 10:44:57 PST 2021


LLVM Weekly - #370, February 1st 2021
=====================================

If you prefer, you can read a HTML version of this email at
<http://llvmweekly.org/issue/370>.

Welcome to the three hundred and seventieth 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

On the LLVM blog, Serge Guelton, Sylvestre Ledru, and Josh Stone explain
[bringing stack clash protection to
Clang/x86](https://blog.llvm.org/posts/2021-01-05-stack-clash-protection/),
describing cross-project collaboration that produced this support.

David Malcolm explained [static analysis updates in GCC
11](https://developers.redhat.com/blog/2021/01/28/static-analysis-updates-in-gcc-11/).

Arseny Kapoulkine posted an [analysis of generated code performance and build
time for Clang 2.7 vs recent
versions](https://gist.github.com/zeux/3ce4fcc3a43072b4315abde95319ecb6). This
was also [discussed on HN](https://news.ycombinator.com/item?id=25976855).


## On the mailing lists

* LLVM trunk [is now
13.0.0](https://lists.llvm.org/pipermail/llvm-dev/2021-January/148123.html)
and 12.0.0-rc1 [has been
tagged](https://lists.llvm.org/pipermail/llvm-dev/2021-January/148174.html).

* James Henderson kicks off an RFC thread on [lit tests spanning multiple LLVM
projects](https://lists.llvm.org/pipermail/llvm-dev/2021-January/148048.html),
e.g. using both Clang and LLD.

* Rafael Auler provides a [status update on the BOLT
framework](https://lists.llvm.org/pipermail/llvm-dev/2021-January/148122.html),
which is currently being rebased on a recent upstream LLVM.

* Arthur Eubanks proposes [turning on the new pass manager by
default](https://lists.llvm.org/pipermail/llvm-dev/2021-January/148098.html).
This spawned a sub-thread about [bugpoint and the new pass
manager](https://lists.llvm.org/pipermail/llvm-dev/2021-January/148118.html).

* Min-Yih Hsu reports that [the M68k LLVM backend is almost ready to land
upstream](https://lists.llvm.org/pipermail/llvm-dev/2021-January/148079.html).

* Vasily Kulikov posted an RFC on [adding concurrency checks to
clang-tidy](https://lists.llvm.org/pipermail/llvm-dev/2021-January/148132.html)
intended to be helpful for catching calls to synchronous code in
coroutines/fibers/green threads. Some respondents are concerned that this
approach may be too shallow, and people would realistically want cross-module
analysis.

* Chris Tetrault is [seeking to enforce the minimum version of Python as
3.6](https://lists.llvm.org/pipermail/llvm-dev/2021-January/148229.html). The
ensuing discussion covers the fact that the current wording of the
requirements states this version is the version "known to work" rather than
necessarily the minimum.

* Duncan P. N. Exon Smith proposing [virtualizing compiler outputs in
Clang](https://lists.llvm.org/pipermail/llvm-dev/2021-January/148124.html),
allowing compiler outputs to be captured easily without going through the
filesystem.

* Maxim Kazantsev kicks off a discussion about [loop alignment in X86
codegen](https://lists.llvm.org/pipermail/llvm-dev/2021-January/148177.html)
and the relatively large performance swings it can produce.


## LLVM commits

* Targets can now define multiple CostPerUse values per register, allowing a
more flexible cost model. [892e456](https://reviews.llvm.org/rG892e4567e135).

* The RISC-V backend gained a mix of minor codegen improvements.
[4eb4f89](https://reviews.llvm.org/rG4eb4f8963f1e),
[15f66cf](https://reviews.llvm.org/rG15f66cf74969),
[5d05cdf](https://reviews.llvm.org/rG5d05cdf55cdb).

* PowerPC will now attempt to reduce register pressure by seeking more
opportunities to generate fma instructions.
[0ed4cf4](https://reviews.llvm.org/rG0ed4cf4bf3b6).

* Exception handling was enabled for JITLink.
[6884fbc](https://reviews.llvm.org/rG6884fbc2c4fb).

* LLVM trunk is now version 13.
[5369517](https://reviews.llvm.org/rG5369517d20dd).

* SinkIntoLoop was moved from MachineLIM to MachineSink.
[48ecba3](https://reviews.llvm.org/rG48ecba350ed6).

* LLVM's DebugInfo library can now extract the unwind rows for DWARF Call
Frame Information, and this is used to be produce more informative
llvm-dwarfdump and llvm-objdump output.
[f8122d3](https://reviews.llvm.org/rGf8122d35325d).

* A new `G_ASSERT_ZEXT` generic opcode was added for GlobalISel.
[2426172](https://reviews.llvm.org/rG24261729a49f).


## Clang commits

* A new `/winsysroot` flag was added for clang-cl, providing similar
functionality to `--sysroot` on other platforms.
[8284743](https://reviews.llvm.org/rG82847436e925).

* Clang now supports RISC-V architecture extension test macros, which can be
used to check the presence of support for an architectural extension and the
version supported. [666815d](https://reviews.llvm.org/rG666815d61bc2).

* It is now possible to apply profile instrumentation to just a selected set
of files or functions. [bb9eb19](https://reviews.llvm.org/rGbb9eb1982980).

* `-fbinutils-version=` was added to gate ELF features on a specified binutils
version. [34b60d8](https://reviews.llvm.org/rG34b60d8a5684).

* clang-format can now align assignments when the group of assignments
includes empty lines or comment lines.
[2563147](https://reviews.llvm.org/rG256314711f3f).


## Other project commits

* libomptarget gained a remote offloading plugin, allowing execution of OpenMP
target regions on devices in remote hosts.
[ec8f4a3](https://reviews.llvm.org/rGec8f4a38c83e).

* LLDB can now run a Lua function when a breakpoint is hit.
[532e420](https://reviews.llvm.org/rG532e4203c5be).

* libcxx has started to implement the `<format>` header, adding initial
support for the `format_error` class.
[081c1db](https://reviews.llvm.org/rG081c1db02dd2).


More information about the llvm-dev mailing list