LLVM Weekly - #527, February 5th 2024
Welcome to the five hundred and twenty-seventh 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, @llvmweekly or @asbradbury on Twitter, or @llvmweekly@fosstodon.org or @asb@fosstodon.org.
News and articles from around the web and events
Registration for EuroLLVM 2024 is now open and the submission deadline was extended by 24 hours.
The next Cambridge compiler social will take place this Wednesday February 7th. Be sure to register if you’re planning to attend.
Carbon (which of course generates LLVM IR) now has a newsletter.
According to the LLVM calendar in the coming week there will be:
- Office hours with the following hosts: Anastasia Stulova, Johannes Doerfert, Quentin Colombet.
- Online sync-ups on the following topics: Flang, pointer authentication, SYCL, MemorySSA, AArch64, new contributor session, LLVM/offload, classic flang, C/C++ language working group, loop optimisations, OpenMP in Flang, MLIR, PowerPC, SPIR-V, MLGO.
- For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.
On the forums
LLVM 18.1.0-rc1 was released.
Chris Bieneman provided an update on the proposal for project governance, suggesting that it uses LLVM’s “contentious decision making process” and including a proposed timeline for moving forwards.
Nikita Popov posted an RFC on adding 3-way comparison intrinsics, corresponding to C++’s
operator<=>
and Rust’sPartialOrd
andOrd
traits.Tarun Prabhu provided a breakdown of results for the gfortran test suite compiled with flang.
Paul T Robinson kicked off an RFC thread on doing a mass clang-format of the LLVM codebase.
Aiden Grossman is still seeking any feedback on the RFC for an incubator project for llvm-ir-dataset-utils.
Tanya Lattner bumped the request for mentors/projects/support for Outreachy May internships.
Aiden Grossman adjusted the LLVM precommit CI proposal based on feedback.
Ettore Tiotto posted an MLIR RFC to add a dialect, ‘GEN’, for Intel GPUs.
David Chisnall started a discussion about the rising costs of EuroLLVM tickets, which generated plenty of responses, including Tanya Lattner’s with a graph of per person cost over recent years.
Chuanqi Xu initiated a debate about when to prefer unittests over matching the dumped AST in Clang testing.
Jinsong Ji proposed turning on LLVM_USE_SPLIT_DWARF by default for debug builds on Linux, reducing the size of the build directory substantially.
The minutes from the December 2023 LLVM Foundation board meeting have been posted.
reviewable.io and graphite.dev are now enabled for the LLVM repo.
Haojian Wu suggested adding a temporary flang to guard access to an in-development C++20 feature in Clang, which triggered a discussion on the merits of such flags vs finding a way to incrementally add the feature without such needing one.
“michaelrj-google” proposed a policy for committing to LLVM-libc, resulting in a discussion with some respondents arguing that project-specific policies should be avoided with others arguing that sub-projects should be able to self-organise.
David Blaikie started a thread about handling of PRs that are landed without review in the case of PRs opened to revert another PR via GitHub’s web UI, or opened solely to make use of pre-commit checks.
LLVM commits
A document was added on the architecture and design philosophy of DXIL support. 151559c.
The MyFirstTypoFix doc’s section on dealing with post-commit issues (such as buildbot failurse) was reworked. Additionally, the automated comment on a merged PR from a new contributor also gives more details about dealing with buildbot results. 3df262f, 44ba4c7.
Experimental instruction selection support was added for the RISC-V Zimop extension and MC layer support for the Zabha and Zalasr extensions. 0461448, 89f87c3, e296ced.
Encoding optimisation and assembler relaxations were implemented for immediate operands for X86 APX instructions. 5910e34.
The ordering constraints on extensions in the RISC-V ISA string passed to
-march
were relaxed. 7dc7fc0.New repetition modes were added to llvm-exegesis. d8b61d7.
Intrinsics are now supported in GlobalISel MIR patterns. 7ec996d.
llvm-dwarfdump --verify
now displays an aggregated summary of issues found. bfdd782.An
isLegalStridedLoadStore
hook was added to TargetTransformInfo. 8ad14b6.MachinePipeliner support was added for AArch64 (disabled by default). 70eab12.
A
deftype
keyword was added to TableGen in order to support type aliases. acf6811.A new
useFPRegsForHalfType()
hook was added. 274d1b0.Convergence region analysis was added to the SPIR-V backend. 7b08b43.
Clang commits
TypeLoc gained a
dump()
method to aid ad-hoc debugging. 8d1b1c9.Lifetime extension in range-based for loops (P2718R0) was implemented. 0aff71c.
A struct of homogeneous scalable vectors is now supported as a function argument for RISC-V. f5154b9.
Other project commits
LLDB now supports large watchpoints. 147d7a6.
In libcxx, vector growth was optimised for trivially relocatable types. 67eee4a0.
Flang now attaches target_cpu and target_features attributes to MLIR functions, ensuring these attributes make it through to LLVM IR function attributes. 837bff1.
epoll_wait
functions were implemented in LLVM’s libc. 9f3854a.Function attributes related to fast-math are now supported in MLIR’s LLVMIR dialect. 748c295.
func, call, and return operations were added to MLIR’s EmitC dialect. e7d40a8.