Alex Bradbury via llvm-dev
2015-Dec-14 12:40 UTC
[llvm-dev] LLVM Weekly - #102, Dec 14th 2015
LLVM Weekly - #102, Dec 14th 2015 ================================ If you prefer, you can read a HTML version of this email at <http://llvmweekly.org/issue/102>. Welcome to the one hundred and second 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 Version 1.5 of the Rust programming language [has been released](http://blog.rust-lang.org/2015/12/10/Rust-1.5.html). Rust of course uses LLVM as its backend. George Balatsouras has written a blog post on [compiling a project using autotools to LLVM bitcode](http://gbalats.github.io/2015/12/10/compiling-autotooled-projects-to-LLVM-bitcode.html). ## On the mailing lists * Derek Schuff kicked off a discussion about whether [virtual registers should be allowed after register allocation for targets with infinite virtual register sets](http://lists.llvm.org/pipermail/llvm-dev/2015-December/093172.html). For targets such as WebAssembly and NVPTX, it of course doesn't make sense to have a fixed size register file. A number of people raised concerns that using virtual registers after register allocation seems like a hack that could result in difficult corner cases, or suggested that supporting infinite (or at least growable) physical register sets might be an interesting alternative. Matthias Braun gave a really good [summary of the issues](http://lists.llvm.org/pipermail/llvm-dev/2015-December/093215.html). * Discussion has continued on adding an HasInaccessibleState attribute. Vaivaswatha Nagaraj summarised the [key points of the discussion so far](http://lists.llvm.org/pipermail/llvm-dev/2015-December/093108.html) while Joseph Tremoulet [shared some thoughts based on his experience on the Microsoft Phoenix compiler](http://lists.llvm.org/pipermail/llvm-dev/2015-December/093139.html). * Alexander Riccio is interested in feedback on his [proposal to integrate more static analysis tests](http://lists.llvm.org/pipermail/cfe-dev/2015-December/046384.html). He's looking to import code published by NIST. * Philip Reames has posted an RFC on [extending atomic loads and stores to floating point and vector types](http://lists.llvm.org/pipermail/cfe-dev/2015-December/046384.html). Feedback appears to be positive. * Hans Wennborg has proposed a [schedule for the 3.8 release](http://lists.llvm.org/pipermail/llvm-dev/2015-December/093273.html). Under this proposal, 3.8 would be branched on the 13th of January 2016 with a final release targeted for 18th February. * Craig Topper has provided a [useful description of how patterns are ordered by TableGen](http://lists.llvm.org/pipermail/llvm-dev/2015-December/093239.html). * David Li has posted an update detailing [remaining steps for size reduction of profile-guided optimisation](http://lists.llvm.org/pipermail/llvm-dev/2015-December/093170.html). * When writing your own backend, how should you handle checking the range of immediates for your assembly parser? Alex Bradbury [explains how](http://lists.llvm.org/pipermail/llvm-dev/2015-December/093093.html). ## LLVM commits * A new minimum spanning tree based method of instrumenting code for profile-guided optimisation was added. This guarantees the minimum number of CFG edges are instrumented. [r255132](http://reviews.llvm.org/rL255132). * MatchBSwap in InstCombine will now also detect bit reversals. [r255334](http://reviews.llvm.org/rL255334). * Sample-based profile-guided optimisation memory usage has been reduced by 10x by changing from using a DenseMap for sample records to a std::map. [r255389](http://reviews.llvm.org/rL255389). * An `Instruction::getFunction` method was added. It's perhaps surprising this didn't exist before. [r254975](http://reviews.llvm.org/rL254975). * FP16 vector instructions defined in ARMv8.2-A are now supported. [r255010](http://reviews.llvm.org/rL255010). * The EarlyCSE (common subexpression elimination) pass learned to perform value forwarding for unordered atomics. [r255054](http://reviews.llvm.org/rL255054). * Debug info in LLVM IR can now refer to macros. [r255245](http://reviews.llvm.org/rL255245). * LLVM's developer policy has been updated to detail the currently accepted C API stability policy and other guidelines. [r255300](http://reviews.llvm.org/rL255300). * A massive rework of funclet-oriented exception handling (needed for Windows exceptions) has landed. [r255422](http://reviews.llvm.org/rL255422). ## Clang commits * Clang gained an option to use the new ThinLTO pipeline. [r254927](http://reviews.llvm.org/rL254927). * Hexagon will use the integrated assembler by default. [r255127](http://reviews.llvm.org/rL255127). * dllexport and dllimport attributes are now exposed through the libclang API. [r255273](http://reviews.llvm.org/rL255273). ## Other project commits * ThreadSanitizer gained initial support for PPC64. [r255057](http://reviews.llvm.org/rL255057).