LLVM Weekly - #312, December 23rd 2019
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. Subscribe to future issues at https://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.
News and articles from around the web
LLVM 9.0.1-final has been tagged.
EuroLLVM 2020 registration is now open. The call for papers 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. 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. 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. James Y Knight summarises 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. The RFC details problems with the current scheme and shares some design ideas. Johannes has produced an initial prototype.
-
Quentin Colombet provides clear advice 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 and answers queries in another thread.
-
Fangrui Song started a discussion about adding Python 2 compatibility to utility scripts. 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.
-
Michael Kruse wrote an RFC on user-directed code transformations with clang pragmas. Initial patches have already been uploaded to Phabricator.
-
Stephen Kelly made an RFC proposal for making AST matchers easier to use. 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.
-
The necessary hooks to allow the machine outliner to run were written for RISC-V a116f28.
-
BasicBlockUtils gained a new utility to remove redundant dbg.value instructions. 1c49553.
-
The
update_{llc,cc}_test_checks.py
scripts now have tests. 240aff8. -
The AArch64 backend now supports return address signing for outlined functions. df0cc10.
-
A per-function TargetLibraryInfo is now used, allowing
-fno-builtin
to be handled using function attributes. 878ab6d. -
The git-llvm script was extended to allow push to GitHub via SSH. 38dd2d5.
-
Constrained intrinsics were added for signed and unsigned conversations of integers to floating point, as well as llvm.minimum/llvm.maximum. b1d8576, 1946461.
-
A single ldp or sdp will now be generated for a volatile i128 load/store on AArch64. 364b8f5.
-
InstCombine will consider over 1000 iterations as an infinite loop (this can be configured via a command line option). c431c40.
Clang commits
-
The Syntax library now allows the mutation of syntax trees. 1ad1504.
-
The
-fno-temp-file
flag disables the creation of temporary files during compilation.d129aa1. -
Concepts development work continues with the addition of support for constrained partial specializations and functions overloads. d3f5769.
-
A support patch was added that clears the way for property-based serialisation for "cased" types. efd0dfb, da74c4d, and more.
-
Deprecation warnings were added for expression forms marked deprecated in C++20. 4b00299.
-
The Clang static analyzer now features a checker for handle use in Fuchsia APIs. 82923c7.