LLVM Weekly - #384, May 10th 2021
Welcome to the three hundred and eighty-fourth 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
Serge Guelton blogged about optimising Clang’s line-to-offset mapping, noting that that the function performing this mapping stands out on a profile when preprocessing a large file.
On the mailing lists
Krzysztof Parzyszek proposes deprecating email code reviews in favour of Phabricator. This generated a lot of discussion, with a number of respondents supportive of keeping reviews sent to llvm-commits, even if Phabricator reviews become the default.
Fangrui Song posted about reclaiming some -fno-semantic-interposition optimisation opportunities, and has a companion blog post on the subject.
Arthur Eubanks posted an RFC on introducing an opaque pointer type
Tanya Lattner is seeking nominations for the Code of Conduct Committee
David Chisnall provides some detailed thoughts in response to a question about implementing an LLVM COBOL frontend.
Roman Lebedev summarises thoughts on implementing -Wstack-usage for Clang.
Chris Lattner reports that the LLVM logo page has been updated with the “new” logo.
Nick Desaulniers highlights that the upcoming Linux Plumbers Conf has a proposed Toolchain and Kernel Micro-conference covering GNU and LLVM. To get that approved, he’s seeking expression of interest in participating and potential topics.
Tom Stellard has shared the proposed release schedule for 12.0.1 and 13.0.0.
Michael Clark wrote about a new project, crefl. Crefl provides a clang plugin and API for generating and accessing reflection metadata for C.
LLVM commits
The vector predicated integer binary intrinsics can now be lowered to RISC-V Vector instructions. 6f17613.
The New Pass Manager documentation gained a section on analyses. 9779b66.
GlobalISel was updated to use the DAG call lowering infrastructure in a way more similar to other users. See the commit message for a detailed discussion of the challenges with this and shortcomings of the current infrastructure. fa0b93b.
LLVM’s demangler gained initial support for the new Rust mangling scheme. 7310403.
LLVM’s libSupport gained functions for controlling auto conversion between ASCII and EBCDIC on z/OS. 1527a5e.
A new
parseComma
method was added to MCAsmParser in order to allow better diagnostics to be printed. 7cac6a9.computeKnownBits and computeNumSignBits are now aware of atomics. 6c80361.
The Arm backend can now transform llvm.memcpy and llvm.memset intrinsics to a tail predicated hardware loop for targets supporting the M-profile Vector Extension. 9ff38e2, dfe3ffa.
A new prelegalizer combiner pass was added for GlobalISel AArch64 at O0. 5b15809.
Clang commits
The
-fc++-abi
flag was added for specifying which C++ ABI to use. 84c4754.The
-Wreserved-identifier
warning was introduced to warn when a declaration used an identifier that doesn’t obey the reserved identifier rule from C or C++. b83b232.The behaviour of AllowShortIfStatementsOnASingleLine clang-format option can now be further customised with AllIfsAndElse, which will put ‘else if’ and ‘else’ short statements on a single line. 8d93d7f.
-fsanitize-ignorelist
is now accepted in addition to-fsanitize-blocklist
. d7ec48d.