[llvm-dev] LLVM Weekly - #116, Mar 21st 2016

Alex Bradbury via llvm-dev llvm-dev at lists.llvm.org
Mon Mar 21 05:02:59 PDT 2016


LLVM Weekly - #116, Mar 21st 2016
=================================

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

Welcome to the one hundred and sixteenth 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

If you're a student and would like to get paid to work on an LLVM-related
project over the summer then do consider [applying for Google Summer of Code
with
LLVM](https://summerofcode.withgoogle.com/organizations/5450930363301888/).
More details about Summer of Code are available
[here](https://summerofcode.withgoogle.com/how-it-works/). The deadline for
applications is this Friday, March 25th at 1900 GMT. I'd also encourage you to
look at [lowRISC's project
ideas](http://www.lowrisc.org/docs/gsoc-2016-ideas/) if you have an interest
in open source hardware.

Stephen Kelly has written about his [new Clang-based tool for porting a C++
codebase to use
almost-always-auto](https://steveire.wordpress.com/2016/03/19/aaargh-aaa-right-good-and-hygenic/).
As was pointed out on Twitter, Ryan Stortz from Trail of Bits has a tools that
removes auto and does
[roughly the opposite](https://github.com/trailofbits/clang-tidy-audit).

Honza Hubička has written up his experiments of [building LibreOffice with
GCC6 and
LTO](http://hubicka.blogspot.co.uk/2016/03/building-libreoffice-with-gcc-6-and-lto.html).
This includes a comparison to a build using LLVM and Clang.

Nick Clifton has shared an update for February and March [on the GNU
toolchain](https://gcc.gnu.org/ml/gcc/2016-03/msg00164.html) that may be of
interest.

The developer of the Capstone disassembly framework and the Unicorn
multi-architecture simulator is running a funding campaign for the [Keystone
multi-architecture assembler framework](http://www.keystone-engine.org/). Like
Capstone, this will build on LLVM but also
[aims to go beyond it](http://www.keystone-engine.org/docs/beyond_llvm.html).


## On the mailing lists

* Ehsan Amiri has shared an [RFC on a change in the InstCombine canonical
form](http://lists.llvm.org/pipermail/llvm-dev/2016-March/096901.html). In the
ensuing discussion, the question of the current state of the typeless pointer
work was raised [and
answered](http://lists.llvm.org/pipermail/llvm-dev/2016-March/096928.html).

* Sean Silva has shared some [recent performance observations about LLD with
--build-id](http://lists.llvm.org/pipermail/llvm-dev/2016-March/096879.html).
Adding support for this option has added a measurable slowdown which should be
considered when reviewing comparisons with other linkers from before it was
added.

* I normally prefer to link to mailing list threads where there has already
been some discussion or attempts at answers, but I think this one is worth
some more eyeballs. Jia Chen is interested in [the tradeoffs in LLVM using
more sophisticated pointer
analyses](http://lists.llvm.org/pipermail/llvm-dev/2016-March/096851.html).
There are no responses at the time of writing, but it seems an interesting
question.

* Huw Davies has proposed a [new IR attribute,
incoming-stack-align](http://lists.llvm.org/pipermail/llvm-dev/2016-March/096762.html).
This is needed for Wine which may require functions to have an ABI stack
alignment different to the host's alignment.

## LLVM commits

* A new Error support class has been added to support structured error
handling. See the associated updates to the LLVM programmer's manual for more
info. [r263609](http://reviews.llvm.org/rL263609).

* New documentation was committed for advanced CMake build configurations.
[r263834](http://reviews.llvm.org/rL263834).

* Support was added for MIPS32R6 compact branches.
[r263444](http://reviews.llvm.org/rL263444).

* The MemCpyOptimizer will now attempt to reorder instructions in order to
create an optimisable sequence. [r263503](http://reviews.llvm.org/rL263503).

* llvm-readobj learnt to print sections and relocations in the GNU style.
[r263561](http://reviews.llvm.org/rL263561).


## Clang commits

* Attributes have been added for the `preserve_mostcc` and `preserve_allcc`
calling conventions. [r263647](http://reviews.llvm.org/rL263647).

* clang-format will handle some cases of automatic semicolon insertion in
JavaScript. [r263470](http://reviews.llvm.org/rL263470).

* Clang learned to convert some Objective-C message sends to runtime calls.
[r263607](http://reviews.llvm.org/rL263607).


## Other project commits

* AddressSanitizer is now supported on mips/mips64 Android.
[r263261](http://reviews.llvm.org/rL263261).

* The documentation on the LLD linker has added a few numbers to give an idea
of the sort of inputs it needs to handle. e.g. Chrome with debug info contains
roughly 13M relocations, 6.3M symbols, 1.8M sections and 17k files.
[r263466](http://reviews.llvm.org/rL263466).


More information about the llvm-dev mailing list