[LLVMdev] LLVM Weekly - #50, Dec 15th 2014

Alex Bradbury asb at asbradbury.org
Mon Dec 15 03:26:40 PST 2014


LLVM Weekly - #50, Dec 15th 2014
================================

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

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

I'll be at [MICRO-47](http://www.microarch.org/micro47/) this week. If you're
there do say hi, especially if you want to chat about LLVM or lowRISC/RISC-V.


## News and articles from around the web

The videos and slides from the 2014 LLVM dev meeting went online last week. I
already linked to them then, but there's enough interesting stuff there I
think I can justify [linking again](http://llvm.org/devmtg/2014-10/).

LLVM/Clang 3.5.1-rc1 [has been
tagged](http://article.gmane.org/gmane.comp.compilers.llvm.devel/79743).
Volunteer testers are very welcome.

Clang UPC 3.4.1 [has been
released](http://clangupc.github.io/2014/11/03/clang-upc-3-4-1-1-announcement/).
This is a Unified Parallel C compiler that can target SMP systems or
[Portals4](http://clangupc.github.io/portals4/).


## On the mailing lists

* Discussion has continued on [future plans for GC in
LLVM](http://article.gmane.org/gmane.comp.compilers.llvm.devel/79435) with
input from [Russel Hadley at
Microsoft](http://article.gmane.org/gmane.comp.compilers.llvm.devel/79567) and
[Ben Karel](article.gmane.org/gmane.comp.compilers.llvm.devel/79581), who
seems to be the most extensive user of the existing GC infrastructure with his
[Foster language](https://code.google.com/p/foster/).

* Chris Bieneman started a discussion about [supporting stripping out unused
instrinsics](http://article.gmane.org/gmane.comp.compilers.llvm.devel/79657)
with the aim of reducing the size of libLLVM. The proposed patches reduce
binary size by
[~500k](http://article.gmane.org/gmane.comp.compilers.llvm.devel/79736), which
he later points out is more significant in the context of their already
size-reduced build.

* Marshall Clow has shared a [proposal on how to manage ABI changes in
libc++](http://article.gmane.org/gmane.comp.compilers.clang.devel/40061). The
proposal involves introducing macros to enable ABI-breaking changes.


## LLVM commits

* The LLVM Kaleidoscope tutorial has been extended with an 8th chapter,
describing how to add debug information using DWARF And DIBuilder.
[r223671](http://reviews.llvm.org/rL223671). A rendered version can be found
[here](http://llvm.org/docs/tutorial/LangImpl8.html).

* Extensive documentation has been added for the MergeFunctions pass.
[r223931](http://reviews.llvm.org/rL223931).

* A monster commit to split Metadata from the Value class hierarchy has
landed. [r223802](http://reviews.llvm.org/rL223802).

* InstrProf has been born. This involves the `llvm.instrprof_increment`
instrinsic and the `-instrprof` pass. This moves logic from Clang's CodeGenPGO
into LLVM. [r223672](http://reviews.llvm.org/rL223672).

* With the addition of support for SELECT nodes, the MIPS backend now supports
codegen of MIPS-II targets on the LLVM test-suite. Code generation has also
been enabled for MIPS-III. [r224124](http://reviews.llvm.org/rL224124),
[r224128](http://reviews.llvm.org/rL224128).

* Work has started on an LLVM-based dsymutil tool, with the aim to replace
Darwin's dsymutil (a DWARF linker).
[r223793](http://reviews.llvm.org/rL224134).

* LiveInterval has gained support to track the liveness of subregisters.
[r223877](http://reviews.llvm.org/rL223877).

* Work has started on converting moves to pushes on X86 when appropriate.
[r223757](http://reviews.llvm.org/rL223757).

* Print and verify passes are now added after each MachineFunctionPass by
default, rather than on some arbitrarily chosen subset.
[r224042](http://reviews.llvm.org/rL224059).

* LLVM now requires Python 2.7. Previously 2.5 was required.
[r224129](http://reviews.llvm.org/rL224129).


## Clang commits

* The `__builtin_call_with_static_chain` GNU extension has been implemented.
[r224167](http://reviews.llvm.org/rL224167).

* Clang's CodeGenPGO has moved to using the new LLVM `-instrprof` pass.
[r223683](http://reviews.llvm.org/rL223683).

* Clang now accepts Intel microarchitecture names as the `-march` argument.
[r223776](http://reviews.llvm.org/rL223776).


## Other project commits

* libcxx gained relational operators in std::experimental::optional.
[r223775](http://reviews.llvm.org/rL223775).

* libcxx can now be built as a 32-bit library.
[r224096](http://reviews.llvm.org/rL224096).

* The lldb unwinder has learned to use unwind information from the
compact-unwind section for x86-64 and i386 on Darwin.
[r223625](http://reviews.llvm.org/rL223625).



More information about the llvm-dev mailing list