LLVM Weekly - #505, September 4th 2023
Welcome to the five hundred and fifth 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
LLVM socials in Stockholm have now restarted with the next to be held on 27th September. The next meetup in Darmstadt will also take place on 27th September.
The Linaro blog features a new post comparing LLVM Flang with other Fortran compilers.
The call for presentation for the Clang-built Linux meetup at the Linux Plumbers conference is now up. It will take place on November 11th.
The call for presentations for the MLIR workshop at the LLVM Developers' Meeting is now open.
According to the LLVM calendar in the coming week there will be:
- Office hours with the following hosts: Tobias Grosser, Anastasia Stulova, Johannes Doerfert, Quentin Colombet.
- Online sync-ups on the following topics: Flang, OpenMP in LLVM, classic flang, Clang C/C++ language working group, loop optimisations, OpenMP in Flang, MLIR, PPC, HLSL, SPIR-V.
- For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.
On the forums
Pull requests have now been enabled for the llvm-project repo and pull request notification emails are now being sent to the commits lists. Relatedly, Tobias Hieta has shceduled office hours for people having problems with the move, Tom Stellard has been receiving input on file patterns for pull request subscription teams, and Louis Dionne started to discuss the logistics of the transition for libc++/libc++abi/libunwind. Pre-merge checks should be working now. Finally, James Henderson posted an RFC on introducing a policy for use of the ‘resolve conversation’ button on GitHub reviews.
Tobias Hieta provided an update on the LLVM 17.0.0-final release process. There will be fourth release candidate shortly and then Tobias says “I would like to ask reviewers to treat the period between RC4 and final a little stricter - we only want to take serious regressions, miss compiles, or crashes at this point.”
Aaron Ballman posted an RFC on diagnosing the use of VLAs in C++.
Christopher Di Bella proposes exposing Clang’s diagnostic engine to C++. This would, for instance, allow library authors to set up warnings on misuse of their library.
MLIR News #54 is out.
Victor Kingi wrote up work over the past three months to add optimisation reporting to Flang.
Andrew Gozillon shared an MLIR RFC on updating the OpenMP dialects map to support array boundaries and capture type.
“iamlouk” kicked off an RFC thread on improving outer-loop vectorisation in LLVM in the VPlan-native path.
Min-Yih Hsu posted an RFC on refactoring existing TableGen code to actively include the TableGen files they need.
Andy Kaylor started an RFC thread on constant-folding of floating-point operations.
LLVM commits
Documentation was updated for the new GitHub workflow. 63b2911.
The operands of the
atomic_store
SelectionDAG node were swapped so they now match the order of operands for a regular store. ad9d13d.LLVM learned to syntax highlight assembly. This is currently enabled for AArch64 and X86. 77d1032, 95062d7, dd2911d.
lit -v
was updated to no longer print theScript:
section and-vv
is now just an alias for-v
. Additionally, the printed shell commands from the execution trace are now easier to copy and paste. 09b6e45, c981c533.A ‘closed world’ flag was introduced to the Attributor, which allows the attributor to assume all functions are known and so all potential callees are declared/defined in the module. 498887a.
The GlobPattern library learned to support brace expansions e.g.
foo.{c,h}
. 8daace8.The old GICombiner TableGen backend was removed, now the MatchTable-based GlobalISel combiner is the default. 54d0cf5.
An llvm.exp10 intrinsic was added. 66a652a.
Clang commits
rdar links were removed from Clang. 0f1c1be.
Code completion is now supported by clang-repl. 79af92b.
CloudABI support was removed. 5165593.
A new flag
--print-supported-extensions
was added for RISC-V, which as the name suggets will print a list of ISA extensions (and their versions) recognised by the compiler. 4b40ced.An AST node was added for C++ concepts. c2bf9ba.
GNU ld support for Solaris was added. d39a9e3.
Other project commits
libcxx’s contribution documentation was expanded. 195015c.
nanosleep, clock, anda bort were implemented in LLVM’s libc for GPU targets. 30307a7, 07102a1, ca10bc4.
_sync
out-of-line atomics were implemented in compiler-rt for AArch64 in order to allow use of compiler-rt with GCC That emits these. 4bb2416.MLIR’s bufferization infrastructure gained support for unstructured control flow. 6ecebb4.