LLVM Weekly - #391, June 28th 2021
Welcome to the three hundred and ninety-first 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
No particular news to highlight this week.
On the mailing lists
Leonard Chan started an RFC discussion on building LLVM tools into a single binary (busybox-style), and followed up with a WIP prototype.
Tom Stellard proposed only changing the libclang.so SONAME when the ABI changes.
LLVM 12.0.1-rc3 has been tagged.
Andrew Kaylor started a thread about floating point variance in the test suite, noting that it’s still the case that some tests fail if the floating point calculations don’t exactly match the reference results.
Nick Desaulniers created an RFC about inlining and mismatched function attributes, noting several cases where inlining can produce unexpected or surprising results.
Luke Drummond helpfully summarised the various responses on the thread about appropriate use of the ‘NFC’ tag.
Arthur Eubanks initiated a discussion on ABI attributes on arguments vs parameters.
Alexander Yermolovich is seeking feedback on refactoring llvm-dwp into a library in order to aid the implementation of BOLT.
Arthur Eubanks is advertising for help in completing the opaque pointers implementation plan.
There’s been yet more discussion on moving the LLVM mailing lists to Discourse. Aaron Ballman raised a concern about fracturing the community.
Anirudh Prasad proposed a new mechanism for tieing a particular inline asm operand to a specific register, that has also been proposed in GCC. Responses so far have been positive.
David Spickett sent an update on the patches adding AArch64 memory tagging support to LLDB, nothing they are awaiting review.
LLVM commits
A new flag was added to force all pointers to be opaque pointers, in order to help with testing. 4c8174f.
The AMDGPU backend gained a new pass to optimise the live ranges of VGPRs. 208332d.
The IR verifier will now fail on overrunning and invalid indices for the insert/extract vector intrinsics. 3c4dbf6.
An initial implementation of llvm-sim, an IR similarity visualisation tool, was committed. 9e73f7c.
New documentation was added on the use of opt and the new pass manager. e15673d.
Clang commits
clang-format now has basic support for formatting JSON. 8b7881a.
Install targets were created for scan-build-py. d9cf829.
clang-format gained a new LambdaBodyIndentation option and an IfMacros option (a list of macros that should be interpreted as conditionals instead of function calls). 64cf5eb, be9a87f.
Other project commits
A Bazel build configuration was added to the repo, following approval of the proposal to do so. 4aeb2e6.
LLDB can now use LLVM’s demangling library to demangle symbols using Rust’s v0 scheme. 0a2d4f3.
The DFSan shadow and origin memory layouts were modified to match MSan. 45f6d55.
Benchmarks for memcmp and bzero were added to LLVM’s libc. 87065c0.
Libcxx’s status ranges implementation status page was updated. e7091da.
MLIR’s async-parallel-for pass was updated to implement recursive async work splitting for scf.parallel operations. 86ad0af.