LLVM Weekly - #462, November 7th 2022
Welcome to the four hundred and sixty-second 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 2022 LLVM Developers' Meeting is going on this week in San Jose. It looks set to be a great event, it’s a shame I’m not able to make it over this year.
LLVM 15.0.4 was released.
The next LLVM Cambridge UK social will take place on 15th November at 1830.
On the forums
Chris Bieneman, Kit Barton, Andreas Bergen, and Mike Edwards shared a proposal for an ‘LLVM Education Initiative’.
Reid Tatge published an RFC on MDL: a micro-architecture description language for LLVM. “While being significantly more expressive than TableGen’s Schedules and Itineraries used in LLVM, MDL is also more concise, and simpler to read and write while supporting a much broader class of embedded and accelerator architectures. We currently can automatically generate MDL descriptions for all upstream targets which are in many cases 1/10 the size of the equivalent TableGen descriptions. We’ve integrated this with LLVM, and are sending out this RFC because we believe it could be valuable to the larger LLVM community”.
Francesco Petrogalli proposed a method for auto-generating RISC-V CPU definitions using TableGen.
The slides and recording from the recent open MLIR meeting on modelling undefined behaviour in MLIR are now available.
“troggo” shared a public service announcement on the MLIR pass pipeline anchor becoming explicit in various APIs.
Matt Arsenault posted an RFC on adding inc and dec operations to atomicrmw.
LLVM commits
Documentation was added for the assignment tracking debuginfo feature. 33c7ae5.
The
readnone
,readonly
,writeonly
,argmemonly
,inaccessiblememonly
, andinacessiblemem_or_argmemonly
function attributes have been replaced by a singlememory(...)
attribute. 304f1d5.The
getModRefInfoMask
method was introduced as a generalisation ofpointsToConstantMemory
, allowing reasoning about locally-invariant memory (memory known to be invariant for the life of the SSA value representing that pointer). See the commit message for more details. 01859da.Support was added for some new SVE2.1 instructions (contiguous loads/stores to multiple consecutive vectors, cntp, and more). 3eafca5, 2d7eb1b, 5f7a8cf, bfd1395, be369ea, 9a9b904.
Support was added for the X86 AVX-NE-CONVERT instructions. aee2a35.
The old
llvm/utils/{countloc.sh,getsrcs.sh,llvmdo,llvmgrep}
scripts were removed. f2ea446.Rules for addrspacecast were clarified in the LangRef. da137e1.
Basic definition were added for the Cortex-A715 CPU. fa8aeab.
MC-layer support for various AARch64 SME instructions was committed. 7fd2afa, a20112a, 529a932.
Clang commits
Clang learned to diagnose uses of invalid or resolved module names in a module export declaration. b8ceb9f.
-mcpu/-mtune=native
is now supported on RISC-V. 7c50bcb.
Other project commits
LLVM’s libc documentation was massively expanded with a new porting guide, a contributing guide, an explanation of the “fullbuild mode”, example programs and CMake snippets, and guidance on building and testing libc. 9dd7388, a2a87ee, 136b927, 9145bf1, b12c677.
compiler-rt now supports building builtins for LoongArch. 6e6704b.
Flang’s lowering design for procedure pointers was documented. 01ccb23.
wasm-ld now supports importing or exporting the output module’s memory with arbitrary names. d4c8a0e.
It is now documented that libomptarget and plugins are not guaranteed to be backwards compatible. 8eab182b.