[LLVMdev] LLVM Weekly - #61, Mar 2nd 2015

Alex Bradbury asb at asbradbury.org
Mon Mar 2 03:10:18 PST 2015


LLVM Weekly - #61, Mar 2nd 2015
===============================

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

Welcome to the sixty-first 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 biggest headline this week is undoubtedly the release of LLVM/Clang 3.6.
See the [LLVM 3.6 release
notes](http://llvm.org/releases/3.6.0/docs/ReleaseNotes.html) and the [Clang
3.6 release
notes](http://llvm.org/releases/3.6.0/tools/clang/docs/ReleaseNotes.html) for
a full run-down of the major changes.

The [LLVMSharp](http://www.llvmsharp.org/) C# and .NET bindings to LLVM have
been released.

Pyston, the LLVM-based Python JIT developed by Dropbox has had its [0.3
release](http://blog.pyston.org/2015/02/24/pyston-0-3-self-hosting-sufficiency/).
It is now minimally self-hosting. You can also see [performance
results](http://speed.pyston.org/comparison/) online.

Readers may enjoy this [walkthrough of creating a basic compiler with
LLVM](http://www.wilfred.me.uk/blog/2015/02/21/my-first-llvm-compiler/).


## On the mailing lists

* Diego Novillo has [announced Google's intention to work on PGO profiling
support in
LLVM](http://article.gmane.org/gmane.comp.compilers.llvm.devel/82814). We can
expect a document soon to give more detail on the plans and stimulate further
discussion.

* Ashutosh Nema is [proposing a new loop versioning
optimisation](http://article.gmane.org/gmane.comp.compilers.llvm.devel/82883).
This is where multiple versions of the loop are generated and the
implementation chosen based on runtime memory aliasing tests. It was suggested
that some recent work on Loop Access Analysis provides some of this
functionality.

* Philip Reames has [suggested writing a performance guide for frontend
authors](http://article.gmane.org/gmane.comp.compilers.llvm.devel/82740).
Unsurprisingly, the idea is popular.

* Zachary Turner has suggested [separating embedded Python from the rest of
LLDB](http://article.gmane.org/gmane.comp.debugging.lldb.devel/6686). As
detailed in the post, it is difficult to provide compatibility with the
standard Python binary build for Windows and precompiled Python modules.

* Ahmed Bougacha started a discussion on [disabling
GlobalMerge](http://article.gmane.org/gmane.comp.compilers.llvm.devel/82870),
which is currently enabled for ARM and AARch64. Much of the ensuing discussion
centers around understanding why there seems to be a performance degradation
when using GlobalMerge with LTO.

* Katya Romanova moved a [discussion on a jump threading optimisation
bug](http://article.gmane.org/gmane.comp.compilers.llvm.devel/82730) to
llvm-dev. The issue is due to the fact an unreachable block is generated with
ill-formed instruction, and there is a lot of follow on discussion about
whether passes should generate unreachable blocks.

* Dibyendu Majumdar wrote to the list to [ask about issues eliminating
redundant
loads](http://article.gmane.org/gmane.comp.compilers.llvm.devel/82698). He
managed to [work out the
issue](http://article.gmane.org/gmane.comp.compilers.llvm.devel/82816).


## LLVM commits

* Work has started on the move towards opaque pointer types. See the commit
messages for more details and help on migrating existing textual IR.
[r230786](http://reviews.llvm.org/rL230786),
[r230794](http://reviews.llvm.org/rL230794).

* The PlaceSafepoints and RewriteGCForStatepoints passes have been documented.
[r230420](http://reviews.llvm.org/rL230420).

* The GC statepoints documentation has been cleaned up and extended with
example IR, assembly, and stackmaps.
[r230601](http://reviews.llvm.org/rL230601).

* The loop-invariant code motion pass has been refactored to expose its core
functionality as utility functions that other transformations could use.
[r230178](http://reviews.llvm.org/rL230178).

* Implementation of support for alloca on MIPS fast-isel has started.
[r230300](http://reviews.llvm.org/rL230300).

* The PowerPC backend gained support for the QPX vector instruction set.
[r230413](http://reviews.llvm.org/rL230413).

* InductiveRangeCheckElimination can now handle loops with decreasing
induction variables. [r230618](http://reviews.llvm.org/rL230618).

* Among other improvements, llvm-pdbdump gained colorized output.
[r230476](http://reviews.llvm.org/rL230476).

* The Forward Control Flow Integrity Pass has been removed as it is being
rethought and is currently unused.
[r230780](http://reviews.llvm.org/rL230780).

* The Performance Tips for Frontend Authors document was born.
[r230807](http://reviews.llvm.org/rL230807).


## Clang commits

* The control flow integrity design docs has been updated to document
optimisations. [r230458](http://reviews.llvm.org/rL230458),
[r230588](http://reviews.llvm.org/rL230588).


## Other project commits

* Remote testing support was added to the libc++ and libc++abi test suites.
[r230592](http://reviews.llvm.org/rL230592),
[r230643](http://reviews.llvm.org/rL230643).

* LLD learned to understand .gnu.linkonce input sections.
[r230194](http://reviews.llvm.org/rL230194).



More information about the llvm-dev mailing list