[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