Alex Bradbury via llvm-dev
2018-Mar-26 18:14 UTC
[llvm-dev] LLVM Weekly - #221, Mar 26th 2018
LLVM Weekly - #221, Mar 26th 2018 ================================ If you prefer, you can read a HTML version of this email at <http://llvmweekly.org/issue/221>. Welcome to the two hundred and twenty-first 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](https://www.linkedin.com/in/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 at asbradbury.org>, or @llvmweekly or @asbradbury on Twitter. ## News and articles from around the web Don't forget to register for [EuroLLVM 2018](http://llvm.org/devmtg/2018-04/), which will take place April 16th-17th in Bristol, UK. The next LLVM social in Paris will [take place](http://lists.llvm.org/pipermail/llvm-dev/2018-March/122102.html) tomorrow, March 27th. Gergö Barany will be presenting about "Finding Missed Optimizations in LLVM". ## On the mailing lists * Mikhail Maltsev has posted an [RFC on function pointer alignment](http://lists.llvm.org/pipermail/llvm-dev/2018-March/121953.html). Currently computeKnownBits uses function alignment to infer the least significant bits of a function pointer, but for Arm targets the LSB is used to indicate if the function is a Thumb function. Mikhail proposes to extend the datalayout. * Anastasia Stulova is still [seeking feedback](http://lists.llvm.org/pipermail/cfe-dev/2018-March/057355.html) on a proposal to add OpenCL C++ support. * Nicola Zaghen has shared an RFC on [changing the `DEBUG()` macro to `LLVM_DEBUG()`](http://lists.llvm.org/pipermail/llvm-dev/2018-March/122097.html). So far, everyone agrees this is a worthwhile change. * Dan Liew is looking to [revive the DebugIR pass](http://lists.llvm.org/pipermail/llvm-dev/2018-March/122013.html). This pass emits LLVM IR in debug metadata, but was removed due to lack of maintenance. * Chandler Carruth has shared a detailed RFC on [speculative load hardening](http://lists.llvm.org/pipermail/llvm-dev/2018-March/122085.html), a mitigation approach for Specture variant 1 vulnerabilities (bounds check bypass). Overhead is typically below 30%. * George Rimar asks if [LLD should support the recently specific .note.gnu.property or Intel CET](http://lists.llvm.org/pipermail/llvm-dev/2018-March/121951.html). Rafael Avila de Espindola and Rui Ueyama suggest waiting until it sees adoption or user demand. * In response to a query on the mailing list, Nuno Lopes [summarises the current status of the 'Killing Undef and Spreading Poison' RFC](http://lists.llvm.org/pipermail/llvm-dev/2018-March/121940.html). * Peter Padlewski has shared a new [Devirtualization v2 RFC](http://lists.llvm.org/pipermail/llvm-dev/2018-March/121931.html), written with a group of collaborators. This updated proposal avoids a potential miscompilation that was possible in the previous proposal. ## LLVM commits * The LLVM language reference manual has been updated to describe the default floating point environment. [r327998](http://reviews.llvm.org/rL327998). * An AsmParser implementation has been added for the WebAssembly backend. [r328028](http://reviews.llvm.org/rL328028). * The RISC-V backend gained codegen support for the RV32F instruction set extension (single precision floating point). [r327976](http://reviews.llvm.org/rL327976), [r327979](http://reviews.llvm.org/rL327979), [r328104](http://reviews.llvm.org/rL328104). * It is no longer possible to cast from a string to a variable reference in TableGen. [r327844](http://reviews.llvm.org/rL327844). * The latest version of the demangler from libcxxabi has been imported. [r327859](http://reviews.llvm.org/rL327859). * A new analysis printer was introduced to dump 'must execute' facts. [r328004](http://reviews.llvm.org/rL328004), [r328015](http://reviews.llvm.org/rL328015). * The RISC-V backend gained a peephole optimisation for loads/stores. [r327381](http://reviews.llvm.org/rL327381). * A new post-register allocation pass was added to sink copies into a successor block. [r328237](http://reviews.llvm.org/rL328237). * MIR printing, `opt -dot-cfg` and `-debug` printing has been made substantially faster by making the scanning of a module for struct types lazy. [r328246](http://reviews.llvm.org/rL328246). * HWASan has been ported to Linux x86-64. [r328342](http://reviews.llvm.org/rL328342). * TargetLoweringObjectFile has been moved from CodeGen to Target, MachineValueType from CodeGen to Support, and ValueTypes from CodeGen to IR. [r328392](http://reviews.llvm.org/rL328392), [r328395](http://reviews.llvm.org/rL328395), [r328397](http://reviews.llvm.org/rL328397). ## Clang commits * Initial code for the clang-doc for C/C++ documentation generation has been committed. See the [original RFC](http://lists.llvm.org/pipermail/cfe-dev/2017-December/056203.html) for more information. [r328270](http://reviews.llvm.org/rL328270). * clang-tidy gained a new checker for function calls with ignored return values. [r327833](http://reviews.llvm.org/rL327833). * Intrinsics were added for ARMv8.2-A FP16 vectors. [r328277](http://reviews.llvm.org/rL328277). ## Other project commits * The LLVM test suite repository now contains the Livermore Compiler Analysis Loop Suite loop kernels. [r328330](http://reviews.llvm.org/rL328330). * libcxx's std::allocator now respects over-aligned types. [r328180](http://reviews.llvm.org/rL328180).