LLVM Weekly - #80, Jul 13th 2015 =============================== If you prefer, you can read a HTML version of this email at <http://llvmweekly.org/issue/80>. Welcome to the eightieth 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 2015 LLVM Developers' Meeting [has been announced](http://article.gmane.org/gmane.comp.compilers.llvm.devel/87925). It will take place on October the 29th and 30th in San Jose, California. Registration information and a call for papers will be sent out later in the month. LLVM/Clang 3.6.2 [has been tagged](http://article.gmane.org/gmane.comp.compilers.clang.devel/43613). All being well, we can expect 3.6.2 to be released soon. ## On the mailing lists * Daniel Sanders has kicked off an amusingly named conversation on [the trouble with triples](http://article.gmane.org/gmane.comp.compilers.llvm.devel/87804). The thread gives context for a proposed change to move from ambiguous TargetTriple to unambiguous TargetTuples. * Juergen Ributzka has [proposed a new StackMap format](http://article.gmane.org/gmane.comp.compilers.llvm.devel/87930). The feedback seems positive so far. * The discussion regarding the [analysis of responses to the C as used in practice survey](http://article.gmane.org/gmane.comp.compilers.llvm.devel/87279) has rumbled on. Chris Lattner has shared [some of his thoughts on the freedom undefined behaviour gives the compiler to optimise](http://article.gmane.org/gmane.comp.compilers.llvm.devel/87749). * Christos Margiolas has [shared patches for his work on heterogeneous execution with LLVM](http://article.gmane.org/gmane.comp.compilers.llvm.devel/87849). ## LLVM commits * The Hexagon backend gained a BitTracker class. This is intended to be target independent. As described at the top of BitTracker.cpp, this is intended to be used with a target-specific machine instruction evaluator. There have been some other large additions to the Hexagon backend this week too. I hope the authors will consider given another talk on their work at some point. [r241595](http://reviews.llvm.org/rL241595). * llc learnt the `run-pass` option, which will run one specific code generation pass only. [r241476](http://reviews.llvm.org/rL241476). * LLVM now has documentation on its inline assembly! [r241698](http://reviews.llvm.org/rL241698). * The llvm.frameescape and llvm.framerecover intrinsics have been renamed to localescape and localrecover. [r241463](http://reviews.llvm.org/rL241463). * Various refactoring commits have been made with the aim of having a single DataLayout used during compilation, owned by the module. [r241775](http://reviews.llvm.org/rL241775). * A new llvm.canonicalize intrinsics has been introduced, intended to be used to canonicalize floating point values. [r241977](http://reviews.llvm.org/rL241977). * The new argmemonly attribute can be used to mark functions that can only access memory through its argument pointers. [r241979](http://reviews.llvm.org/rL241979). ## Clang commits * A few patches landed in Clang improving Objective-C support. This includes parsing, semantic analysis, and AST support for Objective-C type parameters, support for Objective-C type arguments, the `__kindof` type qualifier. Douglas Gregor has more to say about these changes [on the mailing list](http://article.gmane.org/gmane.comp.compilers.clang.devel/43614). [r241541](http://reviews.llvm.org/rL241541), [r241542](http://reviews.llvm.org/rL241542), [r241548](http://reviews.llvm.org/rL241548), and more. * Clang will attached the readonly or readnone attributes when appropriate to inline assembly instructions, meaning the inline asm will not be treated as conservatively. e.g. in some cases an inline asm block could be hoisted out of a loop. [r241930](http://reviews.llvm.org/rL241930). * PCH (pre-compiled headers) are now wrapped in an object file. [r241690](http://reviews.llvm.org/rL241690), [r241620](http://reviews.llvm.org/rL241620). * Clang now recognises the GCC-compatible `-fprofile-generate` and `-fprofile-use` flags. [r241825](http://reviews.llvm.org/rL241825). ## Other project commits * libcxx add `try_emplace` and `insert_or_assign` to `map` and `unordered_map`, as specified in [N4279](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4279). [r241539](http://reviews.llvm.org/rL241539). * The new LLD COFF linker now has basic support for x86 (it was previously x86-64 only). [r241857](http://reviews.llvm.org/rL241857).