[llvm-dev] LLVM Weekly - #267, February 11th 2019

Alex Bradbury via llvm-dev
Mon, 11 Feb 2019 20:17:43 -0000

LLVM Weekly - #267, February 11th 2019
=====================================
If you prefer, you can read a HTML version of this email at
<http://llvmweekly.org/issue/267>.

Welcome to the two hundred and sixty-seventh 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 8.0.0-rc2 [has been
tagged](http://lists.llvm.org/pipermail/llvm-dev/2019-February/130057.html).

An LLVM 7.1.0 branch [has been
prepared](http://lists.llvm.org/pipermail/llvm-dev/2019-February/129985.html)
for release. This introduces a minor version number for the first time,
necessary as this is an ABI breaking change. The release is purely to fix
[PR39427](https://bugs.llvm.org/show_bug.cgi?id=39427).

The program for EuroLLVM'19 (April 8-9 in Brussels, Belgium) has been
[announced](http://blog.llvm.org/2019/02/eurollvm19-developers-meeting-program.html).

Clazy 1.5 [has been released](https://www.kdab.com/clazy-1-5-released/). Clazy
is a clang compiler plugin which emits warnings related to Qt best practices.


## On the mailing lists

* Michael Platings has written an RFC on [changing variable naming rules in
the LLVM
codebase](http://lists.llvm.org/pipermail/llvm-dev/2019-February/130083.html).
In short, this proposes changing variable names from UpperCamelCase to
lowerCamelCase. It follows on from [discussion last
week](http://lists.llvm.org/pipermail/llvm-dev/2019-February/129854.html). If
you have strong views about variable naming, now is the time to voice them.

* JF Bastien
[reports](http://lists.llvm.org/pipermail/llvm-dev/2019-February/130117.html)
that LLVM's build system will now soft error if you attempt to build using
toolchains older than Clang 3.5, Apple Clang 6.0, GCC 5.1, Visual Studio
2017.

* Bruce Hoult provides [detailed
insight](http://lists.llvm.org/pipermail/llvm-dev/2019-February/129969.html)
into recent changes to the RISC-V Vector proposal.

* Matthew Arsenault
[proposes](http://lists.llvm.org/pipermail/llvm-dev/2019-February/129983.html)
an RFC on enforcing immediate operands for intrinsics in TableGen. There seems
to be broad support for this idea.

* Ananthakrishna Sowda and collaborators
[shared](http://lists.llvm.org/pipermail/llvm-dev/2019-February/130094.html)
an RFC on improving debug information in LLVM to recover optimized-out
function parameters. A version of this proposal is implemented for LLVM 4.0,
but needs updating to current trunk for submission upstream.

* Josef Eisl is [seeking
feedback](http://lists.llvm.org/pipermail/llvm-dev/2019-January/129657.html)
on an RFC to support embedding bitcodes in LLD with LTO. If you'd be
interested in this feature, speak up!

* Dan Liew
[proposes](http://lists.llvm.org/pipermail/llvm-dev/2019-February/129967.html)
removing support for `LLVM_TOOL_<PROJECT>_BUILD` CMake cache variables on
the
basis that you can just use `LLVM_ENABLE_PROJECTS` instead if the mono-repo
layout is being used. He proposes two paths forward.

* Oliver Giroux asks [what C++03 support should `<atomic>`
have](http://lists.llvm.org/pipermail/libcxx-dev/2019-February/000197.html) in
libcxx?

* Louis Dionne
[proposes](http://lists.llvm.org/pipermail/libcxx-dev/2019-February/000191.html)
removing deprecated `<ext/hash_set>`, `<ext/hash_map>`, and
`<ext/_hash>` from
libcxx. There was [some
concern](http://lists.llvm.org/pipermail/libcxx-dev/2019-February/000202.html)
about removing these.


## LLVM commits

* Initial support for asm-goto has been committed.
[r353563](https://reviews.llvm.org/rL353563).

* Runtime of llvm-exegesis was substantially reduced by introducing a map to
avoid a linear search.
[r353024](https://reviews.llvm.org/rL353024).

* The hidden `-print-schedule` flag was removed. Users should move to llvm-mca
for debugging/testing scheduling models.
[r353043](https://reviews.llvm.org/rL353043).

* New intrinsics were introduced for unsigned fixed point multiplication.
[r353059](https://reviews.llvm.org/rL353059).

* CodeGenPrepare learned to sink operands to their users if indicated via the
new `shouldSinkOperands` hook. [r353152](https://reviews.llvm.org/rL353152).

* LLVM's ADT library gained a `fallible_iterator` wrapper.
[r353237](https://reviews.llvm.org/rL353237).

* The BPF backend now supports codegen for the newly added JMP32 instruction.
[r353384](https://reviews.llvm.org/rL353384).

* The minimum toolchain version to compile LLVM was bumped. For now, you can
use `LLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN` to use a soon-to-be-deprecated
toolchain. [r353374](https://reviews.llvm.org/rL353374).


## Clang commits

* The Clang Static Analyzer gained a new Sphinx-based documentation
infrastructure. [r353126](https://reviews.llvm.org/rL353126).

* The SMT solver API was moved into a single file in preparation for being
moved to LLVM. [r353372](https://reviews.llvm.org/rL353372).


## Other project commits

* A 'standalone' version of the Scudo secure memory allocator was
checked in.
[r353055](https://reviews.llvm.org/rL353055).

* LLDB now supports expression evaluation in the context of some object.
[r353149](https://reviews.llvm.org/rL353149).