[llvm-dev] LLVM Weekly - #178, May 29th 2017

Alex Bradbury via llvm-dev llvm-dev at lists.llvm.org
Mon May 29 09:51:02 PDT 2017


LLVM Weekly - #178, May 29th 2017
=================================

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

Welcome to the one hundred and seventy-eighth 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](http://asbradbury.org). 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 Rutgers architecture and programming languages research group have a
helpful blog post about [the subtleties of undefined behaviour in LLVM
shifts](https://compilersatrutgers.wordpress.com/2017/05/24/llvms-shifty-semantics/).

As [noticed on Hacker News](https://news.ycombinator.com/item?id=14429825), a
new LLVM backend for Go, [gollvm](https://go.googlesource.com/gollvm/) seems
to be in development.

The next Zurich LLVM social will be held [on May
31st](http://lists.llvm.org/pipermail/llvm-dev/2017-May/113357.html). Please
register if you would like to attend.


## On the mailing lists

* Sanjoy Patel initiated a discussion on transformations of
[select-of-select](http://lists.llvm.org/pipermail/llvm-dev/2017-May/113261.html).
This resulted in a lengthy thread on poison. One notable response was [the one
from Nuno
Lopes](http://lists.llvm.org/pipermail/llvm-dev/2017-May/113272.html), which
includes a summary table. This table doesn't render in the archive view, but
[this tweet has a
screenshot](https://twitter.com/johnregehr/status/867042518021492736).

* Colin LeMahieu is looking at developing an optimising assembler for Hexagon
and is [interested in feedback or
suggestions](http://lists.llvm.org/pipermail/llvm-dev/2017-May/113326.html)
from others who are interested, or have worked on something similar.

* Erik Pilkington is interning at Apple this summer and [will be working on
parallel STL
algorithms](http://lists.llvm.org/pipermail/cfe-dev/2017-May/053841.html). He
is looking for input on this. Hal Finkel [explained his reasoning for wanting
an implementation that provides different underlying concurrency
mechanisms](http://lists.llvm.org/pipermail/cfe-dev/2017-May/053847.html).

* Zachary Turner asks if [the llvm Support and ADT libraries should be
split](http://lists.llvm.org/pipermail/llvm-dev/2017-May/113387.html). A
number of the responses wonder if there is a more principled way to do this
than just splitting between the files TableGen depends on vs those it doesn't.

* Anton Korobeynikov notes that [traffic to the APT repo has increased
significantly
recently](http://lists.llvm.org/pipermail/llvm-dev/2017-May/113269.html),
seemingly due to traffic going to cloud hosting services. If you are running a
CI system or building images using the LLVM apt repository, please ensure you
are using local caching where possible.

* Andrew Trick has responded to a previous question about modelling long
register reservations with [some useful
advice](http://lists.llvm.org/pipermail/llvm-dev/2017-May/113268.html).


## LLVM commits

* The LLVM documentation has been expanded to include tips on benchmarking.
[r303769](http://reviews.llvm.org/rL303769).

* A new GVNSink pass has been added, which sinks instructions based on Global
Value Numbering. [r303850](http://reviews.llvm.org/rL303850).

* A set of new constrained intrinsics have been added (e.g.
llvm.experimental.constrained.sqrt). These intrinsics provide equivalent
behaviour to a corresponding libm function, but allow the precise behaviour
with respect to the rounding mode and exception behaviour to be controlled.
[r303922](http://reviews.llvm.org/rL303922).

* Iterator and range accessors have been added for the PHI nodes of a basic
block. [r303964](http://reviews.llvm.org/rL303964).

* A new localizer pass has been added for use with O0 GlobalISel. It shortens
the live ranges of constants to reduce spills introduced by the fast register
allocator. [r304051](http://reviews.llvm.org/rL304051).

* The scheduling model for AArch64 Falkor has been refined.
[r304108](http://reviews.llvm.org/rL304108).

* The mapping tables for the X86 backend used to convert between register and
memory forms of each instruction are now generated by TableGen.
[r304088](http://reviews.llvm.org/rL304088).


## Clang commits

* There's been a flurry of activity on coroutine support this week. e.g.
elision of allocation and deallocation.
[r303596](http://reviews.llvm.org/rL303596),
[r303599](http://reviews.llvm.org/rL303599).

* git-clang-format is now Python 3 compatible.
[r303871](http://reviews.llvm.org/rL303871).


## Other project commits

* The `<experimental/coroutine>` header has been added to libcxx, along with
tests. With this as well as the Clang changes, you should be able to explore
coroutine support in your own code.
[r303836](http://reviews.llvm.org/rL303836),
[r304101](http://reviews.llvm.org/rL304101).

* New remote packet types for trace data have been added to LLDB.
[r303972](http://reviews.llvm.org/rL303972).


More information about the llvm-dev mailing list