[llvm-dev] LLVM Weekly - #312, December 23rd 2019

Alex Bradbury via llvm-dev llvm-dev at lists.llvm.org
Mon Dec 23 06:41:08 PST 2019


LLVM Weekly - #312, December 23rd 2019
======================================

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

Welcome to the three hundred and twelfth 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 9.0.1-final [has been
tagged](http://lists.llvm.org/pipermail/llvm-dev/2019-December/137763.html).

EuroLLVM 2020 registration is [now
open](http://lists.llvm.org/pipermail/llvm-dev/2019-December/137648.html).
The [call for papers](https://www.llvm.org/devmtg/2020-04/#cfp) remains open
until Jan 11th. The event itself will take place April 6th-7h in Paris.

As a reminder, the call for papers for the fourth LLVM performance working at
CGO 2020 [is open until January
5th](http://lists.llvm.org/pipermail/llvm-dev/2019-December/137787.html). The
workshop will take place on 23rd Feb in San Diego.


## On the mailing lists

* Florian Hahn kicked off a discussion on [matrix support in
Clang](http://lists.llvm.org/pipermail/cfe-dev/2019-December/064141.html).
Building on top of the recently added LLVM support for matrix operations, this
would add a new matrix type to clang and a set of builtins to operate.

* Peter Waller started a discussion on [landing flang (previously known as
f18) into the
monorepo](http://lists.llvm.org/pipermail/llvm-dev/2019-December/137661.html).
James Y Knight
[summarises](http://lists.llvm.org/pipermail/llvm-dev/2019-December/137687.html)
his argument for why using a merge commit in this case makes sense, even
though in general we disallow them.

* Johannes Doerfert wrote up an RFC on [encoding more complex information in
llvm.assume](http://lists.llvm.org/pipermail/llvm-dev/2019-December/137632.html).
The RFC details problems with the current scheme and shares some design ideas.
Johannes has [produced an initial
prototype](http://lists.llvm.org/pipermail/llvm-dev/2019-December/137726.html).

* Quentin Colombet [provides clear
advice](http://lists.llvm.org/pipermail/llvm-dev/2019-December/137700.html)
for a recurring question. Namely how to spill from one register class to
another, when spilling to the stack would be prohibitively expensive.

* There has been discussion on the long-running opaque pointers work this
week. Tim Northover [provides a status updated and RFC on future
direction](http://lists.llvm.org/pipermail/llvm-dev/2019-December/137684.html)
and [answers queries in another
thread](http://lists.llvm.org/pipermail/llvm-dev/2019-December/137683.html).

* Fangrui Song started a discussion about [adding Python 2 compatibility to
utility
scripts](http://lists.llvm.org/pipermail/llvm-dev/2019-December/137634.html).
Most people agreed that maintaining Python 2 compatibility for now is useful,
as long as it's not too difficult to do so.

* Bardia Mahour shared [minutes from the loop optimisation working group
meeting on Dec
18th](http://lists.llvm.org/pipermail/llvm-dev/2019-December/137697.html).

* Michael Kruse [wrote an RFC on user-directed code transformations with clang
pragmas](http://lists.llvm.org/pipermail/cfe-dev/2019-December/064122.html).
Initial patches have already been uploaded to Phabricator.

* Stephen Kelly made an RFC proposal for [making AST matchers easier to
use](http://lists.llvm.org/pipermail/cfe-dev/2019-December/064142.html). The
key part of this proposal higlighted by Stephen is to change the default
behaviour of AST matchers to ignore invisible nodes.

## LLVM commits

* Initial support was added for aligning branches on x86 within a 32-byte
boundary. This is part of work intended to mitigate performance regressions
from Intel's microcode update for the Jump Conditional Code erratum.
[14fc20c](https://reviews.llvm.org/rG14fc20ca628).

* The necessary hooks to allow the machine outliner to run were written for
RISC-V [a116f28](https://reviews.llvm.org/rGa116f28a0d7).

* BasicBlockUtils gained a new utility to remove redundant dbg.value
instructions. [1c49553](https://reviews.llvm.org/rG1c49553c19a).

* The `update_{llc,cc}_test_checks.py` scripts now have tests.
[240aff8](https://reviews.llvm.org/rG240aff80e0e).

* The AArch64 backend now supports return address signing for outlined
functions. [df0cc10](https://reviews.llvm.org/rGdf0cc105fa7).

* A per-function TargetLibraryInfo is now used, allowing `-fno-builtin` to be
handled using function attributes.
[878ab6d](https://reviews.llvm.org/rG878ab6df033).

* The git-llvm script was extended to allow push to GitHub via SSH.
[38dd2d5](https://reviews.llvm.org/rG38dd2d50924).

* Constrained intrinsics were added for signed and unsigned conversations of
integers to floating point, as well as llvm.minimum/llvm.maximum.
[b1d8576](https://reviews.llvm.org/rGb1d8576b0a9),
[1946461](https://reviews.llvm.org/rG19464613440).

* A single ldp or sdp will now be generated for a volatile i128 load/store on
AArch64. [364b8f5](https://reviews.llvm.org/rG364b8f5fbe0).

* InstCombine will consider over 1000 iterations as an infinite loop (this can
be configured via a command line option).
[c431c40](https://reviews.llvm.org/rGc431c407ebc).


## Clang commits

* The Syntax library now allows the mutation of syntax trees.
[1ad1504](https://reviews.llvm.org/rG1ad15046dcf).

* The `-fno-temp-file` flag disables the creation of temporary files during
compilation.[d129aa1](https://reviews.llvm.org/rGd129aa1d536).

* Concepts development work continues with the addition of support for
constrained partial specializations and functions overloads.
[d3f5769](https://reviews.llvm.org/rGd3f5769d5e9).

* A support patch was added that clears the way for property-based
serialisation for "cased" types.
[efd0dfb](https://reviews.llvm.org/rGefd0dfbd700),
[da74c4d](https://reviews.llvm.org/rGda74c4d2d82), and more.

* Deprecation warnings were added for expression forms marked deprecated in
C++20. [4b00299](https://reviews.llvm.org/rG4b002999585).

* The Clang static analyzer now features a checker for handle use in Fuchsia
APIs. [82923c7](https://reviews.llvm.org/rG82923c71efa).


## Other project commits

* An initial prototype of Lua script interpreter support in LLDB was
committed. [2861324](https://reviews.llvm.org/rG2861324208e).

* 64-bit RISC-V support was added to libunwind.
[ce3d1c6](https://reviews.llvm.org/rGce3d1c6d61d).


More information about the llvm-dev mailing list