LLVM Weekly - #343, July 27th 2020
Welcome to the three hundred and forty-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
LLVM 10.0.1-final has been tagged.
Hassam Uddin wrote up a quick introduction to register allocation. Note this is a high-level introduction, and isn't tied to any particular compiler framework (sample code is given in OCaml).
On the mailing lists
-
Arthur Eubanks started a thread about the new pass manager status, which spawned discussion bout flipping to the new pass manager by default. Sjoerd Meijer shared concerns related to observed code size regressions.
-
Varun Gandhi suggested that LLVM should explain the lack of C++ ABI stability in the developer policy, prompting a reasonable amount of discussion about the policy and the possible use of deprecation notices.
-
Alexander Richardson posted an RFC on requiring explicit address space arguments for PointerType, motivated by reducing the difficulty of updating out-of-tree targets like CHERI as well as avoiding bugs for in-tree targest like AVR that use non-zero pointer address spaces.
-
David Blaikie started a thread to discuss a potential misoptimisation with zero-length functions.
-
Tanya Lattner sent a reminder that applications for the LLVM Foundation Board of Directors are due by July 30th.
LLVM commits
-
The CMake minimum version has been bumped to 3.13.4. afa1afd.
-
Target-specific InstCombine code has now been moved into the targets. 2a6c871.
-
An "extract" test utility was added, to support multiple documents / test cases in a single test file. d054c7e.
-
update_test_checks
andupdate_cc_test_checks
gained a new option to allow function attributes to be checked. 937bad3. -
A new
byref
argument attribute was introduced. Unlike byval, it doesn't imply that a copy is made anywhere or that the argument is passed on the stack. 5e999cb. -
AMDGPU GlobalISel gained initial support for calls. 61f1f2a.
-
A "development-mode InlineAdvisor" was added, supporting loading models with a command-line parameter and collecting training logs. 70f8d0a.
-
Loop peeling support was added to the loop fusion pass. 38a8217.
-
The abs/umin/umax/smin/smax intrinsics were added. fef0cf0, deb4bb2.
-
As part of the work to integrate lowering of GC live operands into the register allocator, GC relocation can now be lowered to virtual registers. 3da1a96.
Clang commits
-
A new
--ld-path
command line flag was added, and should be used in favour of-fuse-ld
for specifying the path to the linker. 1bc5c84. -
clang-format gained a new BitFieldColonSpacing option 52ab7aa.
Other project commits
-
LLVM's libc gained implementations of strstr, fmin, fminf, fminl, strnlen, fmax, fmaxf, fmaxl and memrchr. d080635, 7ce32f8, f773d37, 4096088, 5a9630b.
-
The
[[clang::trivial_abi]]
annotation has now been added tostd::unique_ptr
in libcxx, allowing further optimisations. 76887bc. -
MLIR's SPIR-V to LLVM conversion is now documented. b74ab49.
-
lld-macho gained partial support for weak definitions. 31d5885.
-
LLDB now has support for AArch64 SVE register information and core file register access. 7e017de.