[LLVMdev] LLVM Weekly - #49, Dec 8th 2014

Alex Bradbury asb at asbradbury.org
Mon Dec 8 08:08:55 PST 2014


LLVM Weekly - #49, Dec 8th 2014
===============================

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

Welcome to the forty-ninth 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

Most of the 2014 LLVM Developers' Meeting videos and slides are [now
online](http://llvm.org/devmtg/2014-10/index.html). Sadly, there are no videos
from the talks by Apple employees yet. Hopefully they'll be appearing later.

QuarksLab has a rather nice write-up of [deobfuscating an OLLVM-protected
program](http://blog.quarkslab.com/deobfuscation-recovering-an-ollvm-protected-program.html).

The LLVM-based ELLCC has been making progress on [ELK, a bare-metal POSIX-like
environment](http://ellcc.org/blog/?p=22979).

Support for statepoints landed in LLVM this week, and Philip Reames has a blog
post detailing [some notes and
caveats](http://www.philipreames.com/Blog/2014/12/04/statepoint-patches-have-landed/).
See also the mailing list discussion linked to below about future plans for GC
in LLVM.


## On the mailing lists

* Sami Liedes [shares his workflow for using afl-fuzz with the Clang test
suite](http://article.gmane.org/gmane.comp.compilers.llvm.devel/79491). In 11
hours of testing he managed to find 34 distinct assertion failures and at
least one segmentation fault.

* Duncan P.N. Exon Smith has [shared an updated on his work on the
metadata-value
split](http://article.gmane.org/gmane.comp.compilers.llvm.devel/79437),
detailing the new semantic restrictions this will entail.

* Philip Reames has a post [detailing his future plans for GC in
LLVM](http://article.gmane.org/gmane.comp.compilers.llvm.devel/79435).
Comments are invited. The aim is to eventually delete the existing gcroot
lowering code. If you are actively using this, please do speak up.

* John Yates, who worked on the compiler for the Apollo Computer's DN10K has
[shared a description of how that compiler would have handled one of the
recent examples from the Souper
work](http://article.gmane.org/gmane.comp.compilers.llvm.devel/79416).

* How can you reproduce Clang's `-O3` using `opt`? The
[answer](http://article.gmane.org/gmane.comp.compilers.llvm.devel/79367),
thanks for Tobias Grosser, is `clang -O3 -mllvm -disable-llvm-optzns` followed
by `opt -O3`.

* Tobias Grosser is seeking community feedback on [where in the pipeline the
Polly loop optimiser should
run](http://article.gmane.org/gmane.comp.compilers.llvm.devel/79366). The post
is well worth a read for the discussion of expected trade-offs.

* Rafael EspĂ­ndola has been working on type merging during LTO and ultimately
[proposes moving to a single pointer type in LLVM
IR](http://article.gmane.org/gmane.comp.compilers.llvm.cvs/218148). There
seems to be positive feedback on the idea, given that pointer types don't
convey useful information to the optimizer and don't really provide safety.


## LLVM commits

* The statepoint infrastructure for garbage collection has landed. See the
final patch in the series for documentation.
[r223078](http://reviews.llvm.org/rL223078),
[r223085](http://reviews.llvm.org/rL223085),
[r223137](http://reviews.llvm.org/rL223137),
[r223143](http://reviews.llvm.org/rL223143).

* The LLVM assembler gained support for ARM's funky modified-immediate
assembly syntax. [r223113](http://reviews.llvm.org/rL223113).

* The OCaml bindings now has a CMake buildsystem.
[r223071](http://reviews.llvm.org/rL223071).

* The PowerPC backend gained support for readcyclecounter on PPC32.
[r223161](http://reviews.llvm.org/rL223161).

* Support for 'prologue' metadata on functions has been added. This can be
used for inserting arbitrary code at a function entrypoint. This was
previously known as prefix data, and that term has been recycled to be used
for inserting data just before the function entrypoint.
[r223189](http://reviews.llvm.org/rL223189).

* PowerPC gained a Power8 instruction schedule definition
[r223257](http://reviews.llvm.org/rL223257).


## Clang commits

* LLVM IR for vtable addresses now uses the type of the field being pointed
to, to enable more optimisations. [r223267](http://reviews.llvm.org/rL223267).

* New attributes have been added to specify AMDGPU register limits. This is a
performance hint that can be used to attempt to limit the number of used
registers. [r223384](http://reviews.llvm.org/rL223384).

* Clang gained the `__has_declspec_attribute` preprocessor macro.
[r223467](http://reviews.llvm.org/rL223467).

* `__has_attribute` now only looks for GNU-style attributes. You should be
able to use `__has_cpp_atribute` or `__has_declspec_attribute` instead.
[r223468](http://reviews.llvm.org/rL223468).

## Other project commits

* DataFlowSanitizer is now supported for MIPS64.
[r223517](http://reviews.llvm.org/rL223517).

* libcxx now supported `std::random_device` on (P)NaCl.
[r223068](http://reviews.llvm.org/rL223068).

* An effort has started in lld to reduce abstraction around InputGraph, which
has been found to get in the way of new features due to excessive information
hiding. [r223330](http://reviews.llvm.org/rL223330). The commit has been
temporarily reverted due to breakage on Darwin and ELF.

* A large chunk of necessary code for Clang module support has been added to
LLDB. [r223433](http://reviews.llvm.org/rL223433).

* LLDB now has [documented coding
conventions](http://lldb.llvm.org/lldb-coding-conventions.html).
[r223543](http://reviews.llvm.org/rL223543).




More information about the llvm-dev mailing list