[llvm-dev] LLVM Weekly - #259, December 17th 2018

Alex Bradbury via llvm-dev
Mon, 17 Dec 2018 17:12:35 -0000

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

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

Jan Hubička [wrote
up](https://hubicka.blogspot.com/2018/12/firefox-64-built-with-gcc-and-clang.htm)
a comparison of Firefox 64 built with GCC and Clang with LTO. As always with
Jan's posts, it's a great read. One notable difference is that
Clang-produced
binaries are substantially larger (48% larger code section) because Clang does
little to size-optimize cold regions. Also see the [Hacker News
thread](https://news.ycombinator.com/item?id=18693739) for more discussion.


## On the mailing lists

* Johannes Doerfert shared an RFC on [introducing transitive and abstract call
sites](http://lists.llvm.org/pipermail/llvm-dev/2018-December/128424.html) in
order to improve IPO in the presence of function pointers passed to runtime
functions.

* Oliver Giroux started a thread on [extending libcxx for use in a CUDA C++
standard
library](http://lists.llvm.org/pipermail/libcxx-dev/2018-December/000092.html).
A key part of this proposal is the introduction of "freestanding"
mode.

* Anastasia Stulova started an RFC thread on [fixing address spaces in C++
cast
operators](http://lists.llvm.org/pipermail/cfe-dev/2018-December/060546.html).

* James Y Knight started discussing [tag and branch naming in the git
conversion
prototype](http://lists.llvm.org/pipermail/llvm-dev/2018-December/128484.html).

* Johannes Doerfert started a thread discussing the fact [stripPointerCasts
can return a value with a different bit pattern to the
input](http://lists.llvm.org/pipermail/llvm-dev/2018-December/128423.html).


## LLVM commits

* A new signed fixed point multiplication intrinsic was introduced.
[r348912](https://reviews.llvm.org/rL349812).

* bugpoint will now search for 'opt', 'clang' and other
executables from the
LLVM build rather than just searching the user's PATH.
[r348734](https://reviews.llvm.org/rL348734).

* The AMDGPU backend gained a new pass to manage the mode register (currently
just double precision floating point rounding mode).
[r348754](https://reviews.llvm.org/rL348754).

* Code-gen for RISC-V FMAs was added.
[r349023](https://reviews.llvm.org/rL349023).

* The PowerPC instruction definitions were refactored to differentiate between
the different varieties of pseudo-instruction.
[r349044](https://reviews.llvm.org/rL349044).


## Clang commits

* Try-catch blocks in constexpr fucntions are now supported, as proposed for
C++20. [r348789](https://reviews.llvm.org/rL348789).

* Clang learned to support `-frecord-command-line`, which embeds the driver
command-line in an ELF section in the output.
[r349155](https://reviews.llvm.org/rL349155).


## Other project commits

* libcxx gained a new alternative version of std::function.
[r348812](https://reviews.llvm.org/rL348812).

* LLD now understands `--plugin-opt=emit-llvm` which will combine all bitcode
files and write the result to an output file without doing codegen. The Gold
LTO plugin has the same option. [r349198](https://reviews.llvm.org/rL349198).

* Initial scaffolding was added to LLDB to recognise symbol files generated by
breakpad. [r348773](https://reviews.llvm.org/rL348773).