Alex Bradbury via llvm-dev
2016-Mar-21 12:02 UTC
[llvm-dev] LLVM Weekly - #116, Mar 21st 2016
LLVM Weekly - #116, Mar 21st 2016 ================================ If you prefer, you can read a HTML version of this email at <http://llvmweekly.org/issue/116>. Welcome to the one hundred and sixteenth 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 If you're a student and would like to get paid to work on an LLVM-related project over the summer then do consider [applying for Google Summer of Code with LLVM](https://summerofcode.withgoogle.com/organizations/5450930363301888/). More details about Summer of Code are available [here](https://summerofcode.withgoogle.com/how-it-works/). The deadline for applications is this Friday, March 25th at 1900 GMT. I'd also encourage you to look at [lowRISC's project ideas](http://www.lowrisc.org/docs/gsoc-2016-ideas/) if you have an interest in open source hardware. Stephen Kelly has written about his [new Clang-based tool for porting a C++ codebase to use almost-always-auto](https://steveire.wordpress.com/2016/03/19/aaargh-aaa-right-good-and-hygenic/). As was pointed out on Twitter, Ryan Stortz from Trail of Bits has a tools that removes auto and does [roughly the opposite](https://github.com/trailofbits/clang-tidy-audit). Honza Hubička has written up his experiments of [building LibreOffice with GCC6 and LTO](http://hubicka.blogspot.co.uk/2016/03/building-libreoffice-with-gcc-6-and-lto.html). This includes a comparison to a build using LLVM and Clang. Nick Clifton has shared an update for February and March [on the GNU toolchain](https://gcc.gnu.org/ml/gcc/2016-03/msg00164.html) that may be of interest. The developer of the Capstone disassembly framework and the Unicorn multi-architecture simulator is running a funding campaign for the [Keystone multi-architecture assembler framework](http://www.keystone-engine.org/). Like Capstone, this will build on LLVM but also [aims to go beyond it](http://www.keystone-engine.org/docs/beyond_llvm.html). ## On the mailing lists * Ehsan Amiri has shared an [RFC on a change in the InstCombine canonical form](http://lists.llvm.org/pipermail/llvm-dev/2016-March/096901.html). In the ensuing discussion, the question of the current state of the typeless pointer work was raised [and answered](http://lists.llvm.org/pipermail/llvm-dev/2016-March/096928.html). * Sean Silva has shared some [recent performance observations about LLD with --build-id](http://lists.llvm.org/pipermail/llvm-dev/2016-March/096879.html). Adding support for this option has added a measurable slowdown which should be considered when reviewing comparisons with other linkers from before it was added. * I normally prefer to link to mailing list threads where there has already been some discussion or attempts at answers, but I think this one is worth some more eyeballs. Jia Chen is interested in [the tradeoffs in LLVM using more sophisticated pointer analyses](http://lists.llvm.org/pipermail/llvm-dev/2016-March/096851.html). There are no responses at the time of writing, but it seems an interesting question. * Huw Davies has proposed a [new IR attribute, incoming-stack-align](http://lists.llvm.org/pipermail/llvm-dev/2016-March/096762.html). This is needed for Wine which may require functions to have an ABI stack alignment different to the host's alignment. ## LLVM commits * A new Error support class has been added to support structured error handling. See the associated updates to the LLVM programmer's manual for more info. [r263609](http://reviews.llvm.org/rL263609). * New documentation was committed for advanced CMake build configurations. [r263834](http://reviews.llvm.org/rL263834). * Support was added for MIPS32R6 compact branches. [r263444](http://reviews.llvm.org/rL263444). * The MemCpyOptimizer will now attempt to reorder instructions in order to create an optimisable sequence. [r263503](http://reviews.llvm.org/rL263503). * llvm-readobj learnt to print sections and relocations in the GNU style. [r263561](http://reviews.llvm.org/rL263561). ## Clang commits * Attributes have been added for the `preserve_mostcc` and `preserve_allcc` calling conventions. [r263647](http://reviews.llvm.org/rL263647). * clang-format will handle some cases of automatic semicolon insertion in JavaScript. [r263470](http://reviews.llvm.org/rL263470). * Clang learned to convert some Objective-C message sends to runtime calls. [r263607](http://reviews.llvm.org/rL263607). ## Other project commits * AddressSanitizer is now supported on mips/mips64 Android. [r263261](http://reviews.llvm.org/rL263261). * The documentation on the LLD linker has added a few numbers to give an idea of the sort of inputs it needs to handle. e.g. Chrome with debug info contains roughly 13M relocations, 6.3M symbols, 1.8M sections and 17k files. [r263466](http://reviews.llvm.org/rL263466).