[LLVMdev] LLVM Weekly - #22, Jun 2nd 2014

Alex Bradbury asb at asbradbury.org
Mon Jun 2 07:36:47 PDT 2014


LLVM Weekly - #22, Jun 2nd 2014
===============================

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

Welcome to the twenty-second 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.

Last week I expressed worry about GMANE not updating. I'm happy to report that
it's back to normal now. Some of my readers might be interested in my [account
of the neat Raspberry Pi-based projects I saw at Maker Faire Bay
Area](http://www.raspberrypi.org/raspberry-pi-projects-at-the-maker-faire-bay-area/).

## News and articles from around the web

David Given has
[shared](http://article.gmane.org/gmane.comp.compilers.llvm.devel/73349) his
partially complete backend for the VideoCore IV VPU as used in the BCM2835 in
the Raspberry Pi. It would also be interesting to see a QPU LLVM backend now
it has been [publicly
documented](http://www.raspberrypi.org/a-birthday-present-from-broadcom/).

Documentation on how TableGen's DAGISel backend works [has been
updated](https://github.com/draperlaboratory/fracture/wiki/How-TableGen%27s-DAGISel-Backend-Works).

The [LLVM Compiler Infrastructure in HPC
Workshop](http://llvm-hpc-workshop.github.io/) has been announced. This is a
workshop to be held in conjunction with SC14. The deadline for the call for
papers is September 1st.

[Tartan](http://people.collabora.com/~pwith/gnome-clang/) is a Clang analysis
plugin for GLib and GNOME. To quote its homepage "The plugin works by loading
gobject-introspection metadata for all functions it encounters (both functions
exported by the code being compiled, if it is a library; and functions called
by it). This metadata is then used to add compiler attributes to the code,
such as non-NULL attributes, which the compiler can then use for static
analysis and emitting extra compiler warnings."


## On the mailing lists

* Jack Howarth has posted to ask [what can be done to merge the clang-omp
merge along more
quickly](http://article.gmane.org/gmane.comp.compilers.clang.devel/36961).
Andrey Bokhanko followed up with some [clarifications and
elaborations](http://article.gmane.org/gmane.comp.compilers.clang.devel/36974).
Hal Finkel has also [more clearly described the OpenMP language support vs the
OpenMP runtime
library](http://article.gmane.org/gmane.comp.compilers.clang.devel/36981).

* Simon Cook posed an interesting question about [a backend with 32-bit
registers for load/store but otherwise mostly 16
bit](http://article.gmane.org/gmane.comp.compilers.llvm.devel/73365). Sadly
there are no answers yet.

* Qiong Cai has a [few questions on LLVM
JIT](http://article.gmane.org/gmane.comp.compilers.llvm.devel/73325). Philip
Reames [answers
concisely](http://article.gmane.org/gmane.comp.compilers.llvm.devel/73339).

* Tim Northover [proposes adding load linked and store conditional atomic
instructions to LLVM
IR](http://article.gmane.org/gmane.comp.compilers.llvm.devel/73355). David
Chisnall has a thorough [answer to the
proposal](http://article.gmane.org/gmane.comp.compilers.llvm.devel/73413) that
suggests weak cmpxchg would be an easier and overall better addition.


## LLVM commits

* A LoadCombine pass was added, though is disabled by default for now.
[r209791](http://reviews.llvm.org/rL209791).

* AAPCS-VFP has been taught to deal with Cortex-M4 (which only has single
precision floating point). [r209650](http://reviews.llvm.org/rL209650).

* InstructionCombining gained support for combining GEPs across PHI nodes.
[r209843](http://reviews.llvm.org/rL209843).

* Vectorization of intrinsics such as powi, cttz and ctlz is now allowed.
[r209873](http://reviews.llvm.org/rL209873).

* MIPS64 long branch has been optimised to be 3 instructions smaller.
[r209678](http://reviews.llvm.org/rL209678).


## Clang commits

* OpenMP implementation continues. Parsing and Sema have been implemented for
OMPAlignedClause. [r209816](http://reviews.llvm.org/rL209816).

* The `-Rpass-missed` and `-Rpass-analysis` flags have been added. pass-missed
is used by optimizers for inform the user when they tried to apply an
optimisation but couldn't, while pass-analysis is used to report analysis
results back to the user. A followup commit documents the family of flags.
[r209839](http://reviews.llvm.org/rL209839),
[r209841](http://reviews.llvm.org/rL209841).

* The clang optimize pragma has now been documented.
[r209738](http://reviews.llvm.org/rL209738).

* There has been some API refactoring. The release and take methods were
removed from ActionResult and Owned removed from Sema.
[r209800](http://reviews.llvm.org/rL209800),
[r209812](http://reviews.llvm.org/rL209812).


## Other project commits

* ThreadSanitizer has seem a refactoring of storage of meta information for
heap blocks and sync objects. [r209810](http://reviews.llvm.org/rL209810).



More information about the llvm-dev mailing list