LLVM Weekly - #84, Aug 10th 2015
Welcome to the eighty-fourth 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 http://llvmweekly.org and pass it on to anyone else you think may be interested. Please send any tips or feedback to asb@asbradbury.org, or @llvmweekly or @asbradbury on Twitter.
The canonical home for this issue can be found here at llvmweekly.org.
News and articles from around the web
Adrian Sampson has written a fantastic introduction to LLVM. It's titled LLVM for Grad Students, but it should be useful for anybody looking to use LLVM or just wanting to understand it better.
Brandon Holt has written up a short and helpful post giving hints and tips on debugging LLVM.
The move of the mailing lists from UIUC on to lists.llvm.org is now complete. All public LLVM-related mailing lists are shown here. List addresses have now changed to listname@lists.llvm.org.
There's been some exciting activity in the world of GCC. Support for the draft C++ Concepts TS has been committed. A draft of the technical specification is available here. Additionally, Nick Clifton has posted a useful summary of GNU toolchain developments for July/August.
On the mailing lists
Rong Xu has shared an RFC for late instrumentation in LLVM. The RFC describes (and quantifies) the performance cost of inserting instrumentation for profile-guided optimisation in the frontend and proposes approaches for adding instrumentation in the middle-end instead.
Jingyue Wu kicked off a discussion about modifying the BasicAA alias analysis to understand whether there is aliasing between different address spaces.
Teresa Johnson has posted RFCs for the ThinLTO file API and data structures and the ThinLTO file format.
Chandler Carruth is looking to enable the GlobalModsRef in the default pass pipeline. He's found it performance neutral in his tests so far, but would appreciate more people to try and benchmark it.
Asking for advice on how to get started with LLVM is very common. Few take as much time on detailing their background, motivations, and proposed plan as Arno Bastenhof in a recent message. Probably because of this, his request has attracted some very high quality replies.
LLVM commits
A handy new LLVM Support header was introduced. The TrailingObjects template class abstracts away
reinterpret_cast
, pointer arithmetic, and size calculation needed for the case where a class has some other objects appended to the end of it. r244164.Initial documentation for the Machine IR serialization format has been written. r244292.
Uniquable DICompilerUnits have been disallowed. Old bitcode will be automatically upgraded and the sed script in the commit message should be useful for updating out-of-tree testcases. r243885.
All of the TargetTransformInfo cost APIs now use int rather than unsigned. r244080.
Clang commits
A new checker for code-level localizability issues on OSX/iOS was born. It will warn about the use of non-localized NSStrings passed to UI methods and about failing to include a comment in NSLocalizedString macros.
r244389.New AST matchers have been introduced for constructors that are default, copy, or move. r244036.