Alex Bradbury via llvm-dev
2015-Sep-21 12:06 UTC
[llvm-dev] LLVM Weekly - #90, Sep 21st 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).