[LLVMdev] LLVM Weekly - #30, Jul 28th 2014

Alex Bradbury asb at asbradbury.org
Mon Jul 28 12:52:57 PDT 2014


LLVM Weekly - #30, Jul 28th 2014
================================

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

Welcome to the thirtieth 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

Nuno Lopes, David Menendez, Santosh Nagarakatte, and John Regehr have [written
about ALIVe](http://blog.regehr.org/archives/1170). This is a very promising
tool that aims to aid the specification and proof of peephole optimisations
(such as those currently found in LLVM's InstCombine). It uses an SMT solver
in order to prove optimisations correct (and if incorrect, provides a
counter-example).

Source and binaries for the first LLVM/Clang 3.5 Release Candidate [are now
available](http://article.gmane.org/gmane.comp.compilers.clang.devel/37969).
If you like your LLVM releases to be on-time and regression-free, do your part
and test them on your codebases.

Thomas Ströder and colleagues have recently published a paper "Proving
Termination and Memory Safety for Programs with Pointer Arithmetic" which
creates symbolic execution graphs from LLVM IR in order to perform its
analysis. The preprint is [available
here](http://verify.rwth-aachen.de/giesl/papers/IJCAR14-LLVM.pdf).

The next Cambridge (UK) LLVM Social will be on the [30th July, at 7.30
pm](http://article.gmane.org/gmane.comp.compilers.clang.devel/37979).


## On the mailing lists

* Amin Shali from Google has posted an [RFC on adding a rename refactoring
tool to
Clang](http://article.gmane.org/gmane.comp.compilers.clang.devel/38026). The
proposed feature addition would consist of a command-line tool to semantically
rename a symbol and an API that could be used by IDEs/editors to do the same.

* Lang Hames [reminds LLVM users to switch to
MCJIT](http://article.gmane.org/gmane.comp.compilers.llvm.devel/75175). The
old JIT infrastucture will be removed after 3.5, so now is the time to look at
porting to MCJIT if you haven't already.

* Rekha R [posed a question about the semantics of add
nsw](http://article.gmane.org/gmane.comp.compilers.llvm.devel/75099) which
elicited some useful responses that might help clarify things if you too have
found it unclear.


## LLVM commits

* Support for scoped noalias metadata has been added. The motivation for this
is to preserve noalias function attribute information when inlining and to
model block-scope C99 restrict pointers.
[r213864](http://reviews.llvm.org/rL213864),
[r213948](http://reviews.llvm.org/rL213948),
[r213949](http://reviews.llvm.org/rL213949).

* The llvm-vtabledump tool is born. This will dump vtables inside object
files. Right now it only supports MS ABI, but will in the future support
Itanium ABI vtables as well. [r213903](http://reviews.llvm.org/rL213903).

* The llvm.assume intrinsic has been added. This can be used to provide the
optimizer with a condition it may assume to be true.
[r213973](http://reviews.llvm.org/rL213973).

* The loop vectorizer has been extended to make use of the alias analysis
infrastructure. [r213486](http://reviews.llvm.org/rL213486).

* Various additions have been made to support the PowerPC ELFv2 ABI.
[r213489](http://reviews.llvm.org/rL213489),
[r213490](http://reviews.llvm.org/rL213490), and more.

* The R600 backend gained an instruction shrinking pass, which will convert
64-bit instructions to 32-bit when possible.
[r213561](http://reviews.llvm.org/rL213561).

* The llvm.loop.vectorize.unroll metadata has been renamed to
llvm.loop.interleave.count. [r213588](http://reviews.llvm.org/rL213588).

* LLVM 3.5 release notes for MIPS have been committed, if you're interested in
seeing a summary of work in the last development cycle.
[r213749](http://reviews.llvm.org/rL213749).

* The IR backward compatibility policy is now documented.
[r213813](http://reviews.llvm.org/rL213813).


## Clang commits

* Support for `#pragma unroll` was added.
[r213574](http://reviews.llvm.org/rL213574).

* Clang learned a range of AVX-512 intrinsics.
[r213641](http://reviews.llvm.org/rL213641).

* Work on MS ABI support continues.
[r214004](http://reviews.llvm.org/rL214004).

## Other project commits

* A dynamic loader for the Hexagon DSP was committed to lldb as well as an ABI
description. [r213565](http://reviews.llvm.org/rL213565),
[r213566](http://reviews.llvm.org/rL213566).

* A new fast-path implementation of C++ demangling has been added to lldb. It
promises significantly better performance.
[r213671](http://reviews.llvm.org/rL213671).




More information about the llvm-dev mailing list