[llvm-dev] LLVM Weekly - #253, November 5th 2018

Alex Bradbury via llvm-dev llvm-dev at lists.llvm.org
Mon Nov 5 14:05:01 PST 2018


LLVM Weekly - #253, November 5th 2018
=====================================

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

Welcome to the two hundred and fifty-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

If you're lucky enough to be at SC18 in Dallas this year, there is a lot of
LLVM-related talks and meetups to check out. On Sunday 11th November you'll
want to attend the [LLVM Social and Flang
meetup](http://lists.llvm.org/pipermail/llvm-dev/2018-October/127303.html).
Then on Monday 12th you can attend the [Fifth Workshop on the LLVM Compiler
Infrastructure in HPC](https://llvm-hpc5-workshop.github.io/). Then on Tuesday
13th you can attend the [LLVM in HPC: What's
New?](https://sc18.supercomputing.org/presentation/?id=bof111&sess=sess372)
BoF as well as Hal Finkel's talk "Teaching LLVM's Optimizer to Understand
OpenMP" at the OpenMP Booth (1.45pm-2.15pm).

The call for papers if open for the [LLVM Performance Workshop at CGO
2019](http://lists.llvm.org/pipermail/llvm-dev/2018-October/127304.html). The
workshop will take place on 16th Feb 2019 in Washington DC. The deadline for
submissions is December 15.

LLVM 7.0.1-rc2 has [been
tagged](http://lists.llvm.org/pipermail/llvm-dev/2018-November/127464.html).
Time to get testing!

John Regehr has a short blog post on [recently added implicit integer cast
sanitizers](https://blog.regehr.org/archives/1633).

Herb Sutter has written a [pre-trip
report](https://herbsutter.com/2018/11/05/pre-trip-report-fall-iso-c-standards-meeting-san-diego/)
for the San Diego ISO C++ standards meeting that is starting today.


## On the mailing lists

* Justin Bogner started a discussion on [dealing with out-of-tree changes and
the proposed LLVM git
monorepo](http://lists.llvm.org/pipermail/llvm-dev/2018-October/127334.html).
He describes the issues faced for maintainers of out-of-tree targets when
trying to migrate to the monorepo, which has a completely different history to
the previous git mirrors. James Y Knight
[reports](http://lists.llvm.org/pipermail/llvm-dev/2018-November/127496.html)
he's preparing a tool to help rewrite these downstream repositories.

* [libc++ is not using `always_inline` anymore for visibility
purposes](http://lists.llvm.org/pipermail/cfe-dev/2018-October/059980.html).
A 7% reduction in size of the Chrome binary was reported after this patch.

* Nico Weber gave a
[report](http://lists.llvm.org/pipermail/llvm-dev/2018-October/127342.html)
from his round-table on the [GN meta-build
system](https://gn.googlesource.com/gn). He is seeking feedback on adding GN
build files to the repo. This generated substantial discussion, with a number
of concerns raised about the maintenance burden of adding a second build
system (after only relatively recently dropping autoconf+Make).

* Eric Schweitz has written an RFC on [adding debug information to LLVM to
support
Fortran](http://lists.llvm.org/pipermail/llvm-dev/2018-November/127419.html).

* Mircea Trofin
[proposes](http://lists.llvm.org/pipermail/llvm-dev/2018-November/127461.html)
adding support for trace profile driven cache prefetching insertion for LLVM.
The LLVM-side support takes as input a profile in afdo format which contains
prefetch hint recommendations.

* David Greene has shared an RFC on [adding a system model to
LLVM](http://lists.llvm.org/pipermail/llvm-dev/2018-October/127319.html). This
would capture information caches, prefetch heuristics, streaming memory
buffers etc. This is based on the system model used in the Cray compiler.

* Louis Dionne has started a discussion on the [per-translation unit ABI
guarantee of
libc++](http://lists.llvm.org/pipermail/libcxx-dev/2018-October/000038.html).
This thread proposes dropping the guarantee that TUs can be linked together
even if they use different headers of libc++ and is actively seeking feedback.
Is this guarantee important to you? If so, speak up.

* Joey Gouly
[proposes](http://lists.llvm.org/pipermail/cfe-dev/2018-November/060041.html)
using TableGen to define OpenCL builtins and generate a trie and tables for
recognising and constructing the thousands of function declarations.

* John McCall offers a great summary of [the challenges of using LLVM IR for
high-level
optimisations](http://lists.llvm.org/pipermail/cfe-dev/2018-October/059982.html).

* David Greene started a discussion on [the LLVM RFC
process](http://lists.llvm.org/pipermail/llvm-dev/2018-October/127316.html).
Kristina Brooks
[raised](http://lists.llvm.org/pipermail/llvm-dev/2018-October/127318.html)
concerns that RFCs often go without many responses on the mailing lists.


## LLVM commits

* `-Wimplicit-fallthrough` is now enabled when building LLVM.
[r345887](https://reviews.llvm.org/rL345887).

* The `llvm.sponentry` intrinsic was added in order to correctly support
setjmp on the AArch64 Windows platform.
[r345909](http://reviews.llvm.org/rL345909).

* The MachineVerifier is now enabled by default for X86.
[r345593](http://reviews.llvm.org/rL345593).

* The DAGCombiner learned to narrow vector binops when extraction is cheap.
[r345602](http://reviews.llvm.org/rL345602).

* New constrained intrinsics for maxnum and minnum were added. These can be
used when a specified rounding mode or floating-point exception behaviour is
required. [r345650](http://reviews.llvm.org/rL345650).

* TableGen's PredicateExpander now allows more complex constraints to be given
on instruction operands for use in complex scheduling predicates.
[r345714](http://reviews.llvm.org/rL345714).

* The Microsoft demangler now exposes its AST publicly for use in LLDB.
[r345837](http://reviews.llvm.org/rL345837).


## Clang commits

* The implicit integer conversion sanitizer is now fully functional.
[r345660](http://reviews.llvm.org/rL345660).

* clang-query gained an API for non-exclusive output. Allowing e.g. AST
dumping and diagnostics output at once.
[r345522](http://reviews.llvm.org/rL345522).


## Other project commits

* Users wanting to link together translation units built with different
versions of libc++ headers into the same final linked image must define the
`_LIBCPP_HIDE_FROM_ABI_PER_TU` macro to 1.
[r345516](https://reviews.llvm.org/rL345516).

* By setting `LIBCXX_ABI_NAMESPACE` it's possible for users to customise the
libc++ versioning namespace and build custom versions of libc++ that can be
linked into binaries with other libc++ versions without causing symbol
conflicts. [r345657](https://reviews.llvm.org/rL345657).


More information about the llvm-dev mailing list