LLVM Weekly - #455, September 19th 2022
If you prefer, you can read a HTML version of this email at http://llvmweekly.org/issue/455.
Welcome to the four hundred and fifty-fifth 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 http://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
Herb Sutter has presented cppfront, a proposed potential C++ ‘syntax 2’.
Siddhesh Poyarekar writes on the Red Hat blog about new levels of fortification supported in GCC, providing additional protoection against buffer overflows.
On the forums
-
Peter Smith wrote up on notes on initialization code for embedded systems and how this could be applied to LLVM libc.
-
Aaron Ballman suggested adding a new Discourse forum for potentially breaking or disruptive changes for Clang. After some discussion, the conclusion was to use Announcements and to start adding the clang-vendors Phabricator project as a subscriber to relevant reviews.
-
Andrei Safronov started an RFC thread on upstreaming a Tensilica Xtensa backend.
-
Joshua Cranmer shared an RFC on adding opaque types to LLVM IR.
-
Gulfem Savrun Yeniceri is gauging interest in a profiling and coverage and compiler-rt roundtable at the 2022 LLVM Developers’ Meeting.
-
Tobias Hieta started a discussion about centralising the source of truth for the current version of LLVM within the monorepo.
-
John Regehr asked about a minimal out-of-tree pass template. Andrzej Warzynski pointed to Hello-World from llvm-tutor.
-
Gabor Marton proposed adding a
branchTransfercallback to Clang’s dataflow analysis framework. -
Chuang-Yu Cheng queried whether defining a single instruction with different operand types is preferred to multiple instruction definitions and received differing opinions in response.
LLVM commits
-
An IR regularisation pass was added for SPIRV, which performs a number of transformations in order to prepare the LLVM IR for the IR translation. 3544d20.
-
llvm-remarkutil was added, a utility for converting between different types of remarks. 7d80b94.
-
AArch64 implemented ABI lowering for calls to/from streaming SME functions and a design document on this ABI was committed. b00c36c, 4fc2c92, bd4935c.
-
TableGen will now produce a
getSubRegisterClassfunction. 7834194. -
Fixes were made to the way the MachinePipeliner interprets the scheduling model. 116838b.
Clang commits
-
Clang release notes will now features a “potentially breaking changes” section. e076680.
-
-fsanitizer-coverage=control-flowwas added. 3e52c09. -
The link between
-ffast-mathand-ffp-contractflags has been broken, matching GCC. 1b69ce1.
Other project commits
-
LLVM’s libc gained implementations of dup, dup2, dup3, access, pread, pwrite, remove, setrlimit, getrlimit, and uname functions. 8989aa0, 419580c, 6e675fb, d23d858, f5cbbb9, 7fb96fb.
-
The performance of exp2f, sinhf, and coshf in LLVM’s libc was improved. e6226e6, 1c89ae7.
-
Relocation scanning in the LLD ELF linker was parallelised, leading to meaningful speedups (e.g. 1.27x as fast for a release Clang with 8 threads on Skylake). e6aebff.
-
MLIR linalg’s vectorisation pattern was retired. 5279e11.