LLVM Weekly - #438, May 23rd 2022
Welcome to the four hundred and thirty-eighth 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
The Compiler Explorer has just celebrated its 10th birthday. Congratulations, and thank you to Matt Godbolt and everyone else involved in running it.
Documentation on LLVM’s libc is now live at libc.llvm.org.
Recordings from the Pure Virtual C++ conference are now available.
The May Women in Compilers and Tools meetup will take place later this week, with Professor Michelle Strout offering an “Ask Me Anything” session.
On the forums
Christopher Di Bella shared an RFC on improving Clang’s diagnostics, including a suggestions to emit machine-parseable Static Analysis Results Interchange Format (SARIF) output.
Tanya Lattner shared a summary of upcoming project policy changes. Response has been broadly positive, with some feedback on specific wording.
Carlos Alberto Enciso posted an RFC on llvm-dva, the Debug Information Visual Analyzer.
Nicolas Vasilache posted an MLIR RFC on parallel abstractions for tensors and buffers.
There was more discussion on enabling opaque pointers by default and the remaining barriers to doing so.
Paul Kirth posted a detailed post-mortem on debugging and resolve a flaky sanitizer test.
Kristof Beyls shared details of the regular LLVM Pointer Authentication sync-up and pasted historical minutes.
Tianqi Chen initiated a discussion on making cl::opt more friendly for JITing or heterogeneous compilation. A number of respondents suggested that configuring the pass pipeline via a different mechanism to cl::opt might be preferable.
Schuyler Eldridge shared a list of Chisel features not supported in CIRCT currently.
Xiang Li is looking for help with HLSL reviews.
Tom Stellard is seeking volunteers to help with the LLVM release process.
LLVM commits
New documentation on instruction referencing for debug info was added. 7a1d5ef.
The M68k backend now uses the variable length decoder. cf0b6df.
Initial support was added for a pointer difference based runtime check scheme for vectorisation. b7315ff.
The PeepholeOptimizer can now eliminate redundant copies from a constant physical register. 7dbf2e7.
Support was landed for writing sections, relocations, and symbols for XCOFF64. 8d6e2c3.
The AMDGPU SIShrinkInstructions pass was modified to aggressively fold immediates regardless of how many uses they have. This trades off increased code size for decreased register usage. e292650.
DeadArgElim now uses poison instead of undef as a placeholder for dead arguments. 5fc9449.
AArch64 gained support for
-fzero-call-used-regs
. 6e00a34.
Clang commits
Clang static analyzer’s cross-translation-unit analysis gained a new two-phase implementation. 56b9b97.
Delta-encoding is now used for consecutive SourceLocations in PCH/PCM files, saving ~3.5% size. 4df795b.
A page was added to track C defect report status. ade5b55.
A file containing design notes for the pseudo parser in clang-tools-extra was added. 79ca4ed.
Other project commits
A basic TableGen language server was added to MLIR (with the intent to eventually move it to llvm/). 5de12bb.
sprintf, snprintf, strlcpy, and strlcat where added to LLVM’s libc. ff6fe39, 9f1d905, fc2c8b2, b118330.
Further patches to enable system-wide tracing in LLDB were committed, including support for per-core tracing in lldb-server. 1f49714, 1637545, 1188faa.
MLIR gained a topological sort utility and pass. c8457eb.