[llvm-dev] LLVM Weekly - #363, December 14th 2020

Alex Bradbury via llvm-dev
Mon, 14 Dec 2020 19:14:31 -0000

LLVM Weekly - #363, December 14th 2020
=====================================
If you prefer, you can read a HTML version of this email at
<http://llvmweekly.org/issue/363>.

Welcome to the three hundred and sixty-third 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 call for speakers for the [LLVM Performance Workshop at
CGO-2021](http://lists.llvm.org/pipermail/llvm-dev/2020-December/147302.html)
is out. The event will be taking place virtually on February 28th.

Ralf Jung has blogged about [pointer
provenance](https://www.ralfj.de/blog/2020/12/14/provenance.html) and its
interactions with the optimiser.

As [noted](http://lists.llvm.org/pipermail/llvm-dev/2020-December/147286.html)
by Hal Finkel on the mailing list, the [2020 FOSS Contributor
Survey](https://www.linuxfoundation.org/blog/2020/12/download-the-report-on-the-2020-foss-contributor-survey/)
has some questions/answers related to LLVM. e.g. ~30% of respondents say they
typically use the LLVM compiler suite.


## On the mailing lists

* Tim Northover posted an RFC on [ConstantPtrAuth for signed pointers on
AArch64](http://lists.llvm.org/pipermail/llvm-dev/2020-December/147222.html),
allowing signed pointers to be put into global initialisers.

* Justin Bogner shared an RFC on [representing floating point types in LLT
(Global ISel Low Level
Types](http://lists.llvm.org/pipermail/llvm-dev/2020-December/147239.html).

* Tanya Lattner sent out a [note regarding EuroLLVM
2021](http://lists.llvm.org/pipermail/llvm-dev/2020-December/147334.html),
indicating that the event will be virtual, but exact dates ans format are
being determined. It also reflects that the first virtual event had many
successes, but had less engagement during the event than anticipated.

* The first issue of LLVM GPU News [has been
posted](http://lists.llvm.org/pipermail/llvm-dev/2020-December/147335.html).

* Mike Edwards warns that the [LLVM SVN server will be shut-down on January
5th](http://lists.llvm.org/pipermail/llvm-dev/2020-December/147301.html).

* Sjoerd Meijer asked for feedback on [restricting loop invariant code
hoisting](http://lists.llvm.org/pipermail/llvm-dev/2020-December/147184.html)
in cases where it may introduce more spills/reloads, which generated a range
of responses.

* Wei Wu is [looking for easy/beginner level projects for
interns](http://lists.llvm.org/pipermail/llvm-dev/2020-December/147271.html).

* Sam Elliott proposed [introducing a target-indepent
`COMPILER_BARRIER`](http://lists.llvm.org/pipermail/llvm-dev/2020-December/147318.html),
sharing common logic between backends rather than reimplementing custom
MEMBARRIER nodes for each one.

* James Y Knight posted a [summary of proposals in the coroutine and
`pthread_self` RFC
thread](http://lists.llvm.org/pipermail/llvm-dev/2020-December/147325.html).


## LLVM commits

* llvm.experimental.vector.{insert,extract} intrinsics were added.
[80c33de](https://reviews.llvm.org/rG80c33de2d3c).

* DataFlowSanitizer can now track taint for individual struct fields or array
indices. [ea98116](https://reviews.llvm.org/rGea981165a4e).

* Basic tablegen definitions of the CSKY backend were added.
[365c405](https://reviews.llvm.org/rG365c4054114).

* The llvm-profgen utility was introduced, which will generate a profile data
file from perf script data files for sample-based PGO.
[1f05b1a](https://reviews.llvm.org/rG1f05b1a9f52).

* MIR debug-info constructs were documented.
[cda32ab](https://reviews.llvm.org/rGcda32aba4f4).

* Support was added for the Intel AMX programming model.
[f80b298](https://reviews.llvm.org/rGf80b29878b0).

* An InstructionCost class was introduced, intended to be used by cost methods
instead of just returning an integer.
[9b76160](https://reviews.llvm.org/rG9b76160e53f).

* As part of experimental RISC-V vector support, a pass was added to remove
duplicate VSETVLI instructions in a basic block.
[b577d2d](https://reviews.llvm.org/rGb577d2df7bd).


## Clang commits

* The Baremetal toolchain now has a default sysroot location.
[275592e](https://reviews.llvm.org/rG275592e7141).

* A `preferred_name` attribute was added that allows the user to specify that
e.g. `std::string` is the preferred way to express
`std::basic_string<char>`.
[2a2c228](https://reviews.llvm.org/rG2a2c228c7ad).

* A performance-no-int-to-ptr check was added to clang-tidy, flagging every
integer to pointer cast. [39431e4](https://reviews.llvm.org/rG39431e479ff).


## Other project commits

* An ArmNeon MLIR dialect was added.
[7310501](https://reviews.llvm.org/rG7310501f740).

* Routines were added to compiler-rt to convert between fp16 and fp128.
[db61b18](https://reviews.llvm.org/rGdb61b1844e1).

* [l|ll]abs, lround[f|l], llround[f|l] were implemented in LLVM's libc.
[1fd32dc](https://reviews.llvm.org/rG1fd32dcb294),
[7aeb380](https://reviews.llvm.org/rG7aeb3804c46).