Alex Bradbury via llvm-dev
2019-Dec-23 14:41 UTC
[llvm-dev] LLVM Weekly - #312, December 23rd 2019
LLVM Weekly - #312, December 23rd 2019 ===================================== If you prefer, you can read a HTML version of this email at <http://llvmweekly.org/issue/312>. Welcome to the three hundred and twelfth 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 LLVM 9.0.1-final [has been tagged](http://lists.llvm.org/pipermail/llvm-dev/2019-December/137763.html). EuroLLVM 2020 registration is [now open](http://lists.llvm.org/pipermail/llvm-dev/2019-December/137648.html). The [call for papers](https://www.llvm.org/devmtg/2020-04/#cfp) remains open until Jan 11th. The event itself will take place April 6th-7h in Paris. As a reminder, the call for papers for the fourth LLVM performance working at CGO 2020 [is open until January 5th](http://lists.llvm.org/pipermail/llvm-dev/2019-December/137787.html). The workshop will take place on 23rd Feb in San Diego. ## On the mailing lists * Florian Hahn kicked off a discussion on [matrix support in Clang](http://lists.llvm.org/pipermail/cfe-dev/2019-December/064141.html). Building on top of the recently added LLVM support for matrix operations, this would add a new matrix type to clang and a set of builtins to operate. * Peter Waller started a discussion on [landing flang (previously known as f18) into the monorepo](http://lists.llvm.org/pipermail/llvm-dev/2019-December/137661.html). James Y Knight [summarises](http://lists.llvm.org/pipermail/llvm-dev/2019-December/137687.html) his argument for why using a merge commit in this case makes sense, even though in general we disallow them. * Johannes Doerfert wrote up an RFC on [encoding more complex information in llvm.assume](http://lists.llvm.org/pipermail/llvm-dev/2019-December/137632.html). The RFC details problems with the current scheme and shares some design ideas. Johannes has [produced an initial prototype](http://lists.llvm.org/pipermail/llvm-dev/2019-December/137726.html). * Quentin Colombet [provides clear advice](http://lists.llvm.org/pipermail/llvm-dev/2019-December/137700.html) for a recurring question. Namely how to spill from one register class to another, when spilling to the stack would be prohibitively expensive. * There has been discussion on the long-running opaque pointers work this week. Tim Northover [provides a status updated and RFC on future direction](http://lists.llvm.org/pipermail/llvm-dev/2019-December/137684.html) and [answers queries in another thread](http://lists.llvm.org/pipermail/llvm-dev/2019-December/137683.html). * Fangrui Song started a discussion about [adding Python 2 compatibility to utility scripts](http://lists.llvm.org/pipermail/llvm-dev/2019-December/137634.html). Most people agreed that maintaining Python 2 compatibility for now is useful, as long as it's not too difficult to do so. * Bardia Mahour shared [minutes from the loop optimisation working group meeting on Dec 18th](http://lists.llvm.org/pipermail/llvm-dev/2019-December/137697.html). * Michael Kruse [wrote an RFC on user-directed code transformations with clang pragmas](http://lists.llvm.org/pipermail/cfe-dev/2019-December/064122.html). Initial patches have already been uploaded to Phabricator. * Stephen Kelly made an RFC proposal for [making AST matchers easier to use](http://lists.llvm.org/pipermail/cfe-dev/2019-December/064142.html). The key part of this proposal higlighted by Stephen is to change the default behaviour of AST matchers to ignore invisible nodes. ## LLVM commits * Initial support was added for aligning branches on x86 within a 32-byte boundary. This is part of work intended to mitigate performance regressions from Intel's microcode update for the Jump Conditional Code erratum. [14fc20c](https://reviews.llvm.org/rG14fc20ca628). * The necessary hooks to allow the machine outliner to run were written for RISC-V [a116f28](https://reviews.llvm.org/rGa116f28a0d7). * BasicBlockUtils gained a new utility to remove redundant dbg.value instructions. [1c49553](https://reviews.llvm.org/rG1c49553c19a). * The `update_{llc,cc}_test_checks.py` scripts now have tests. [240aff8](https://reviews.llvm.org/rG240aff80e0e). * The AArch64 backend now supports return address signing for outlined functions. [df0cc10](https://reviews.llvm.org/rGdf0cc105fa7). * A per-function TargetLibraryInfo is now used, allowing `-fno-builtin` to be handled using function attributes. [878ab6d](https://reviews.llvm.org/rG878ab6df033). * The git-llvm script was extended to allow push to GitHub via SSH. [38dd2d5](https://reviews.llvm.org/rG38dd2d50924). * Constrained intrinsics were added for signed and unsigned conversations of integers to floating point, as well as llvm.minimum/llvm.maximum. [b1d8576](https://reviews.llvm.org/rGb1d8576b0a9), [1946461](https://reviews.llvm.org/rG19464613440). * A single ldp or sdp will now be generated for a volatile i128 load/store on AArch64. [364b8f5](https://reviews.llvm.org/rG364b8f5fbe0). * InstCombine will consider over 1000 iterations as an infinite loop (this can be configured via a command line option). [c431c40](https://reviews.llvm.org/rGc431c407ebc). ## Clang commits * The Syntax library now allows the mutation of syntax trees. [1ad1504](https://reviews.llvm.org/rG1ad15046dcf). * The `-fno-temp-file` flag disables the creation of temporary files during compilation.[d129aa1](https://reviews.llvm.org/rGd129aa1d536). * Concepts development work continues with the addition of support for constrained partial specializations and functions overloads. [d3f5769](https://reviews.llvm.org/rGd3f5769d5e9). * A support patch was added that clears the way for property-based serialisation for "cased" types. [efd0dfb](https://reviews.llvm.org/rGefd0dfbd700), [da74c4d](https://reviews.llvm.org/rGda74c4d2d82), and more. * Deprecation warnings were added for expression forms marked deprecated in C++20. [4b00299](https://reviews.llvm.org/rG4b002999585). * The Clang static analyzer now features a checker for handle use in Fuchsia APIs. [82923c7](https://reviews.llvm.org/rG82923c71efa). ## Other project commits * An initial prototype of Lua script interpreter support in LLDB was committed. [2861324](https://reviews.llvm.org/rG2861324208e). * 64-bit RISC-V support was added to libunwind. [ce3d1c6](https://reviews.llvm.org/rGce3d1c6d61d).