[llvm-dev] LLVM Weekly - #165, Feb 27th 2017

Alex Bradbury via llvm-dev llvm-dev at lists.llvm.org
Mon Feb 27 04:22:33 PST 2017

LLVM Weekly - #165, Feb 27th 2017

If you prefer, you can read a HTML version of this email at

Welcome to the one hundred and sixty-fifth 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 list of [accepted sessions for EuroLLVM
2017](http://llvm.org/devmtg/2017-03//2017/02/20/accepted-sessions.html) has
now been announced.

FĂ©lix Cloutier has written a blog post about [how C compilers optimise

This post from Krister Walfridsson looks at [heuristics for estimating branch
probabilities in
GCC](https://kristerw.blogspot.co.uk/2017/02/branch-prediction.html), as well
as discussing branch prediction more generally.

## On the mailing lists

* Stephen Cross is looking for feedback on [his plans to refactor Clang's
target-specific ABI

* Paul Robinson has [proposed setting Clang's default C++ dialect to

* Johannes Doerfert is still seeking feedback on the Parallel IR proposal and
has [updated the
thread](http://lists.llvm.org/pipermail/llvm-dev/2017-February/110501.html) to
note initial patches and a documentation draft are now available.

* Ivan A. Kosarev has shared on RFC on [supporting sanitizers on systems
without virtual memory

* Hans Wennborg has shared an update on the [status of the 4.0.0
listing the current blockers.

* Ashutosh Nema
adding support for vectorising epilogue loops generated to handle remaining
iterations for loops with unknown iteration counts.

## LLVM commits

* A patch to enable splitting some critical edges from indirect branches has
landed. This is motivated by the observation that a clang-compiled Python
interpreter can be significantly (2.5x) slower on some workloads than a
GCC-compiled interpreter, due to unnecessary spills around the computed goto
in the main interpreter loop. [r296149](http://reviews.llvm.org/rL296149).

* The WebAssembly backend now supports the experimental Wasm object file
encoding. [r296190](http://reviews.llvm.org/rL296190).

* The MemorySSA updater now allows aliasing stores to be added.

* Propagation for poison values has been made more aggressive.

* An initial X86InstructionSelector has been implemented as part of the work
towards X86 GlobalISel support. [r295824](http://reviews.llvm.org/rL295824).

* The AArch64RedundantCopyElimination pass learned to do simple copy
propagation. [r295863](http://reviews.llvm.org/rL295863).

## Clang commits

* When producing UBSan-instrumented code, checks for promoted arithmetic will
no longer be generated. [r296213](http://reviews.llvm.org/rL296213).

* Work has started on refactoring lib/Drive/Tools.cpp, splitting
architecture-specific helpers out into separate files.

## Other project commits

* The LLD introductory documentation has seen a large update, including new
link-time performance benchmarks. e.g. a debug build of mysqld takes 7.09s
with GNU ld, 2.49s with GNU gold, and 1.31s with LLD.

* LLDB gained support for hardware breakpoints on ARM and AArch64 Linux.

* New LLD code comments warn about the dangers of copy relocations.

More information about the llvm-dev mailing list