LLVM Weekly - #90, Sep 21st 2015
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. Subscribe to future issues at https://llvmweekly.org and pass it on to anyone else you think may be interested. Please send any tips or feedback to [email protected], 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. 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++.
Andrew Chambers has written a blog post about his use of fuzzing to look for ABI bugs.
This short and sweet blog post introduces the clazy static checker, 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. Both Daniel Sanders and Renato Golin 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'. 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. Chris Lattner follows up with a sketch of how manipulation of a marker bit might be exposed.
LLVM commits
-
Assert builds will now produce human-readable numbers to identify dumped SelectionDAG nodes. "0x7fcbd9700160: ch = EntryToken" becomes "t0: ch = EntryToken". r248010.
-
Basic support for reading GCC AutoFDO profiles has landed. r247874.
-
The llvm-mc-fuzzer tool has been documented. r247979.
-
The llvm.invariant.group.barrier intrinsic was born. r247711.
-
The LLVM default target triple can now be set to the empty string at configure time. r247775.
Clang commits
-
AST matcher functions have been renamed to match the AST node names directly. This is a breaking change. r247885, r247887.
-
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. r248002.