[llvm-dev] LLVM Weekly - #90, Sep 21st 2015

Alex Bradbury via llvm-dev llvm-dev at lists.llvm.org
Mon Sep 21 05:06:56 PDT 2015


LLVM Weekly - #90, Sep 21st 2015
================================

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

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

The ISO C++ committee have started putting together a set of [C++ Core
Guidelines](https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md).
The document describes itself as a set of guidelines for using C++ well, with
the intention that adherence to the rules could be checked by an analysis
tool. Bjarne Stroustrup and Herb Sutter are acting as editors for this
project.

A reddit user has posted a [detailed description of how they use
libclang to generate reflection data for
C++](https://www.reddit.com/r/gamedev/comments/3lh0ba/using_clang_to_generate_c_reflection_data/).

Andrew Chambers has written a blog post about his use of [fuzzing to look for
ABI
bugs](http://achacompilers.blogspot.co.uk/2015/09/calling-conventions-are-hard-fuzz-them.html).

This [short and sweet blog
post](http://www.kdab.com/use-static-analysis-improve-performance/) introduces
the [clazy static
checker](https://quickgit.kde.org/?p=scratch%2Fsmartins%2Fclazy.git), a simple
checker for some common suboptimal uses of Qt types. There are plenty of ideas
in the comments for further analyses that might be useful.


## On the mailing lists

* The discussion on 'the trouble with triples' [has
resumed](http://lists.llvm.org/pipermail/llvm-dev/2015-September/090432.html).
Both [Daniel
Sanders](http://lists.llvm.org/pipermail/llvm-dev/2015-September/090437.html)
and [Renato
Golin](http://lists.llvm.org/pipermail/llvm-dev/2015-September/090439.html)
give examples of the kind of problems they're dealing with (yet again, naming
things proves to be one of the great challenges in CS).

* Escha has been looking at [optimising passes using
'side-data'](http://lists.llvm.org/pipermail/llvm-dev/2015-September/090371.html).
This might mean e.g. making use of a spare bit in Value to indicate liveness.
The question is whether this is something we should be looking to do in LLVM.
Daniel Berlin comments that optimising these kinds of cases [would be useful
in the GVN
rewrite](http://lists.llvm.org/pipermail/llvm-dev/2015-September/090467.html).
Chris Lattner follows up with a [sketch of how manipulation of a marker bit
might be
exposed](http://lists.llvm.org/pipermail/llvm-dev/2015-September/090499.html).


## LLVM commits

* Assert builds will now produce human-readable numbers to identify dumped
SelectionDAG nodes. "0x7fcbd9700160: ch = EntryToken" becomes "t0: ch =
EntryToken". [r248010](http://reviews.llvm.org/rL248010).

* Basic support for reading GCC AutoFDO profiles has landed.
[r247874](http://reviews.llvm.org/rL247874).

* The llvm-mc-fuzzer tool has been documented.
[r247979](http://reviews.llvm.org/rL247979).

* The llvm.invariant.group.barrier intrinsic was born.
[r247711](http://reviews.llvm.org/rL247711).

* The LLVM default target triple can now be set to the empty string at
configure time.
[r247775](http://reviews.llvm.org/rL24675http://reviews.llvm.org/rL247775).


## Clang commits

* AST matcher functions have been renamed to match the AST node names
directly. This is a breaking change.
[r247885](http://reviews.llvm.org/rL27885),
[r247887](http://reviews.llvm.org/rL247887).

* The static analyzer gained a new Objective-C checker. DynamicTypeChecker
will check for cases where the dynamic and static type of an object are
unrelated. [r248001](http://reviews.llvm.org/rL248001).


## Other project commits

* The LLD COFF linker has gained some extra parallelisation. Self-link time
has now improved from 1022ms to 654ms.
[r248038](http://reviews.llvm.org/rL248038),
[r248078](http://reviews.llvm.org/rL248078).

* Support code was added to LLDB for recognising and printing Go types.
[r247629](http://reviews.llvm.org/rL247629).

* MemorySanitizer has been enabled for AArch64.
[r247809](http://reviews.llvm.org/rL247809).


More information about the llvm-dev mailing list