LLVM Weekly - #484, April 10th 2023
Welcome to the four hundred and eighty-fourth 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, or @llvmweekly@fosstodon.org or @asb@fosstodon.org.
News and articles from around the web and events
LLVM 16.0.1 was released.
Round table submissions for EuroLLVM 2023 are due on April 15th. Additionally, today (10th April) is the last day for early bird ticket pricing.
Most of the videos from the recent Latch-Up conference organised by the Free and Open Source Silicon Foundation are now up on YouTube, including a number of talks at the intersection of LLVM and open source hardware design.
The next Berlin LLVM Meetup will take place on Wednesday 19th April, where Michal Rostecki will talk about eBPF in LLVM. Additionally, the LLVM Bay Area meetup is taking place today, April 10th.
Jonathan Wight wrote a Gist on using LLVM’s libfuzzer with Swift.
Nikita Popov blogged about LLVM’s middle-end optimization pipeline.
According to the LLVM calendar in the coming week there will be:
- Office hours with the following hosts: Aaron Ballman, Alexey Vader, Alina Sbirlea, Kristof Beyls, Johannes Doerfert.
- Online sync-ups on the following topics: OpenMP, Flang, RISC-V, MLIR, SPIR-V, and LLVM GPU.
- For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.
On the forums
Ellis Hoag and colleagues at Meta posted an RFC on a temporal profiling extension to IRPGO (which I unfortunately missed when it was first posted). A patch has now been posted for review.
Nicolai Hähnle started an RFC thread on introducing target type classes to LLVM, building on top of the recent work to add target extension types. With this change, users of LLVM can define their own custom types and enjoy the full flexibility that is available to built-in target types.
J Ryan Stinnett is requesting feedback on a range of recently posted debug info issues. These issues were created using a new approach (developed with Stephen Kell) for debug info testing, with more details promised in the near future. As you’ll see in the message, they’re very keen to collaborate more closely with the upstream community on this work so if this is an area of interest please take a look.
Yuta Mukai shared on RFC on a new loop distribution pass for software pipelining, also pointing to a proof of concept implementation on Phabricator.
Razvan Lupusoru started an MLIR RFC on OpenACC dialect data operation improvements.
Anshil Gandhi proposed adding diagnostics support in the disassembler, modeled on Clang’s diagnostics.
LLVM commits
DWARF CFI (call frame information) instructions are now emitted for MSP430. 9a9c6b8.
Basic floating point register definitions and the FMOVE instruction were added to the M68k backend. 7486b7b.
Old references to “flag” were finally renamed to “glue”. ef2d2a1, f00ef8b, 219ff07, b5f207e.
The RISC-V backend’s policy on which revision of specifications are implemented was documented. d7b2003.
Lit’s builtin “diff” command gained the
-I
flag to ignore changes where all lines match a given regex. 22068a3.
Clang commits
A modernize-type-traits check was added to clang-tidy. 376168b.
clang-format gained an option to have one port per line in Verilog. 74cc438.
Other project commits
The IRDL dialect was added to MLIR, allowing users to represent dynamic dialect definitions as an MLIR program. 0e0db0a.
LLVM’s libc gained implementations of strchrnul, strsep, and strxfrm. bc2b161, b4ab398, a1e4f1d.
Flang’s design document on polymorphic entities was updated to reflect the actual implementation. 9b90700.