LLVM Weekly - #443, June 27th 2022
Welcome to the four 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 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
More videos from EuroLLVM have been posted.
The Berlin LLVM meetup is starting up again, with the first new meetup set to take place this Wednesday June 29th.
On the forums
LLVM 14.0.6 was released.
Nikita Popov provided an update on the migration of tests to opaque pointers, listing to a helper script to help automate the transition.
Nicolai Hähnle kicked off a discussion about making LLVM play nicer when used as a shared library in a plugin setting, proposing how to clean up ManagedStatics and cl::Option.
There’s been lots of additional discussion over the past week in the thread on adding an MLIR-based Clang IR.
Joshua Cranmer initiated an RFC discussion on providing better support for typed pointers in an opaque pointers world, motivated by targets like SPIR-V and DXIL which target a typed IR and require types of at least some pointers to be maintained. The proposal suggests extensions to the
elementtype
attribute and introducing the concept of “opaque types” to allow manipulation of these typed values. Nikita Popov suggested that existing support for opaque structs could be used as the starting point for this while Alex Bradbury provided input on how such a system could be used to support GC types in upcoming WebAssembly specifications.Eli Friedman summarised the current status of Arm64EC patches.
Alex Zinenko proposed removing MLIR’s bare pointer calling convention for memrefs converted to the LLVM dialect.
Cole Kissane posted an RFC on adding Zstandard to LLVM as an alternative compression method to zlib.
Jeff Niu proposed the addition of a DataFlow analysis framework to MLIR.
Thomas Raoux proposed adding a new pass to set load/store alignment, moving this functionality out of InstCombine. Respondents so far are positive.
Renato Golin is looking to restart the Cambridge UK LLVM meetup and has a series of polls related to doing so. Please do vote if you think this is something you may want to attend.
LLVM commits
Initial codegen support was added for LoongArch. a992115, efc7005, 709e4ad, cf71f97.
llvm-reduce was modified to not introduce undefs. 2962f9d.
The process for triaging bug reports for LLVM releases was documented. 7dbb366.
A new pass was added to expand hardware loop pseudoinstructions on PPC. a71fe49.
Sub-register liveness tracking was reenabled for RISC-V vectors. 59cde21.
!exists<T>(s)
was added to the TableGen language. It will check whether a record with typeT
and names
exists. 6344848.Basic macrofusion infrastructure was added for the RISC-V backend. 4045b62.
The reasons why accessing mutable outer analyses is disallowed in the new pass manager were documented. 865812c.
-max-inline-stacksize=N
was introduced to control inlining of functions with large stack sizes. c50e6f5.
Clang commits
A new checker for misuses of errno was added to the Clang static analyzer. 60f3b07.
Very initial clang-format Verilog support was added, including support for parsing Verilog if statements and preprocessor directives. 9ed2e68, 2e32ff1.
-fstrict-flex-arrays=<n>
was added to allow configuring stricter handling of flexible arrays. 886715a.Initial support for the MSC optimize pragma was added. 186bea3.
A
-verify-config
command line argument was added to clang-tidy. 5ca68d5.