LLVM Weekly - #315, Jan 13th 2020
Welcome to the three hundred and fifteenth 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 10.0.0 is branching on Wednesday 15th January, with a target date of Feb 26th for the final tag.
On the mailing lists
-
Further discussion took place on flang landing in the monorepo, which was summarised by Richard Barton, who listed the concerns raised etc.
-
Bill Wendling kicked of a discussion on moving to GitHub pull requests. This generated a range of responses discussing teh relative merits of Phabricator's code review vs GitHub, e.g. this one from David Chisnall.
-
Florian Hahn has now posted two patches demonstrating what matrix support in Clang might look like and is seeking feedback.
-
Zakk is seeking input on how to encode the target-abi into LLVM bitcode for LTO. This question is motivated by the RISC-V backend's needs, and Zakk has posted patches for two possible approaches.
-
Volodymyr Sapsai proposed adding a publish-subscribe mechanism for GitHub events, to allow people to implement webhooks for LLVM activity without requiring repo admin involvement.
-
Serge Pavlov started a discussion on calling functions from the non-default floating-point environment, querying whether the floating point state should be saved/restored or not.
-
JF Bastien has bumped the thread he started on the proposed LLVM security group and process.
-
Jie Zhou started a thread seeking advice on the best way of implementing fat pointers for C. David Chisnall fed back guidance on what CHERI did.
-
Chris Kenelly started a discussion on implementing memcpy, memset, memcmp, and bcmp in LLVM's libc. The email contains a wealth of information on measured distrubtions and thoughts on trade-offs. "We see hardware support for these operations as the future".
LLVM commits
-
An initial backend stub was committed for the NEC SX-Aurora TSUBASA Vector Engine. 00c6e98.
-
A scheduling model was committed for the AMD Znver2 (Rome) cores. 3408940.
-
check-llvm now runs 50% faster on macOS and 18% faster on Windows thanks to using an unbounded regex cache. f654493.
-
The AArch64 backend gained definitions for missing Apple CPU names. 903e5c3.
-
The MachineIR infrastructure was enhanced with support for target-specific MIR formatting and parsing. be841f8.
-
AArch64 and X86 gained support for a new patchable-function-entry attribute to add NOPs at function entry. 4d1e23e, a8fbdc5.
-
The developer policy was updated to reflect that now LLVM has moved to Git, the "Author" commit metadata should be used to reflect the original author, rather than needing to add a "Patch by J. Bloggs" line to the commit messages. a5230ac.
Clang commits
-
C++ concepts work continues with initial support for function trailing requires clauses. b65b1f3.
-
New
__builtin_align_up
,__builtin_align_down
, and__builtin_is_aligned
builtins were added, working on both pointers and integers. These were originally implemented in the downstream CHERI fork of LLVM, motivated by a desire to avoid ptr-to-int casts. 8c387cb. -
A new "optionally" AST matcher was added. 2823e91.
-
clang-tidy gained a new bugprone-signed-char-misuse check. 350da40.
Other project commits
-
The vim-lldb plugin was removed from the monorepo as it was unmaintained and doesn't work with Python 3. c5adcdc.
-
Tests in LLVM's libc project were moved to a top-level test directory. 5b24c08.
-
New benchmarks were added to libcxx/benchmarks/string.bench. 0c5102b.
-
LLDB's build page now describes optional dependencies. 317cbda.