LLVM Weekly - #333, May 18th 2020
Welcome to the three hundred and thirty-third 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
It has now been five years since Rust 1.0 was released (which of course, uses LLVM as a backend). Read all about progress since then on the Rust blog.
Egor Bogatov wrote a blog post on implementing a new peephole optimisation in LLVM.
On the mailing lists
-
Ties Stuij posted an RFC to collect feedback on next steps for BFloat, linking to patches currently up for review.
-
The 7th edition of the MLIR newsletter is now out, higlighting the mlir-npcomp project (prototype for compiling numpy programs) alongside a range of other developments.
-
Alexey Lapshin reported on efforts to have LLD remove obsolete debug info. This
--gc-debuginfo
option has a meaningful impact on size (reducing debug info size by 50%), but increases linking time substantially. -
Richard Barton provided an update on F18/Flang buildbots.
-
Eric Christopher is seeking feedback on LLDB pre-merge testing.
-
ORC JIT Weekly 16 provides information on JITLink ELF/x86 and updates on removable code.
-
Daniel Grumberg posted an RFC on generating CC1 command lines from a CompilerInvocation instances.
-
David Spickett proposes changing Clang's tool search path priority so more specific names on the user's PATH are found before less specific names in the clang install dir.
-
Simon Moll authored an RFC on extending Clang to allow bool as a valid vector element. Some of the following discussion focused on whether a vector of bool would be represented as a vector of i1 in IR, and whether this may cause problems.
LLVM commits
-
The bfloat type was added to LLVM IR, intended to support the BFloat16 type introduced in Armv8.6. 8c24f33.
-
The ARM backend gained support for the machine outliner. 0e4827a.
-
An x86 Speculative Execution Side Effect Suppression pass was added, to mitigate Load Value Injection. Support for LVI load hardening was also added. bf95cf4, e97a3e5, 8ce078c, 08b8b72.
-
The git-svn utilities were removed, as the Git migration makes them redundant. f056dac.
-
Constant pools are now handled in the RISC-V load/store peephole optimisation, improving codegen especially for loading FP constants. 969e703.
-
A comment directive,
COM:
was added to FileCheck. a1fd188. -
AMDGPU gained support for spilling the frame pointer to memory. 09253b6.
-
Alignment of allocas will no longer be promoted beyond the stack alignment. c9c930a.
-
LLVM's DIModule debug metadata was extended to support Fortran modules. e59744f.
-
Support was added for the Marvell ThunderX3T110, including an initial definition of the micro-ops for the scheduling model. 382d3a8.
-
Callbacks were added to allow overriding the datalayout after parsing it from a file. 4532a50.
Clang commits
-
Clang gained support for the matrix type, which can be enabled with
-fenable-matrix
. 1065869. -
The static analyzer's PlacementNewChecker was extended with a chec for insufficient storage of arrays and bad alignment. 7c37684.
-
Use of
_ExtInt
in inline assembly is now prohibited. 5f1f4a5. -
clang-format now supports formatting of aligned nested conditionals. 4db9409.