LLVM Weekly - #390, June 21st 2021
Welcome to the three hundred and ninetieth 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
Uma Srinivasan will be presenting “From Packing Decimals With Cobol to Optimizing Tweets With Scala: A Journey Through Space, Time, & Culture with Compilers” at the Women in Compilers and Tools June Meetup. June 24th, 6pm PDT.
A new book on LLVM has been published - Learn LLVM 12 by Kai Nacke.
On the mailing lists
The thread suggesting a migration to Discourse has seen continued discussions. To pick a few messages:
- Christian Kühnel shared a draft migration user-guide.
- James Y Knight reported that the Open Source Community Infrastructure would be willing to provide Mailman3 hosting.
- John McCall provided a summary of issues with mailing lists. “Now, forums have their own usability annoyances, without question. […] My point is that those problems should not be treated as blockers when we have equal or worse problems with mailing lists that we’ve just come to accept.”
Reid Kleckner summarised responses to the RFC on LLD-as-a-library.
Tom Stellard announced that 12.0.1-rc2 has been tagged and an extended deadline for requesting backports.
Matt Morehouse responded to an old thread on first-class metadata with a list of potential use cases.
Gulfem Savrun Yeniceri proposes adding a binary id to profiles, in order to aid matching executables to profiles.
John McCall responded to the RFC thread on byte types in LLVM, summarising how this may relate to work to add a provenance model to C, and arguing that it would be better to start by considering inttoptr and ptrtoint casts.
Luke Drummond started a conversation about when it is appropriate to use the [NFC] tag.
LLVM GPU News Issue #14 is out.
Kito Cheng posted an RFC on providing a #pragma to implement the riscv_vector.h contents, avoiding the parsing of ~60k lines. David Rector pointed to recent work to solve a similar problem in OpenCL.
LLVM commits
A CustomBehaviour class was added llvm-mca, intended to allow developers to implement modelling for instructions that require special handling. f7a23ec.
The SpeculateAroundPHIs pass was removed, with the commit message noting some of the regressions observed with the NewPM transition may have been caused by it. e523645.
DW_CFA_LLVM_
was added, as part of the work to add extensions for heterogeneous debugging on AMDGPU. 167e7af.DebugInfo handling was added for IR outlined functions. 2c21278.
Initial GlobalISel infrastructure was added for M68k. 2193347.
Relocation emission for RISC-V was refactored and improved, bringing it more closely in line with GNU as. bbea642.
The MIRPrinter gained machine metadata support. b9c05af.
Clang commits
Improvements were made for named return value optimisation. 12c90e2.
The performance-unnecessary-copy-initialization checker was updated to fix some false positive cases. bdd5da9.
Other project commits
EmitC, an MLIR dialect for emitting C++, was upstreamed to MLIR. 876de06.
Identical code folding was implemented in lld-macho. f27e454.
An implementation of a two-level distributed barrier was added to LLVM’s OpenMP library. 25073a4.
LLVM’s libc gained implementation of a set of abstract elementary operations acting on fixed chunks of memory, intended to be used as building blocks for higher level abstractions. 454d92a.