LLVM Weekly - #429, March 21st 2022
If you prefer, you can read a HTML version of this email at http://llvmweekly.org/issue/429.
Welcome to the four hundred and twenty-ninth 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.
I’m delighted to share that I’ve joined Igalia’s compilers team. Established 20 years ago, Igalia are a worker-owned cooperative employing over 100 developers who make huge contributions to a wide range of upstream open source projects. I couldn’t be more excited to be part of it! You can now expect to see me cropping up on lib/Target/WebAssembly in addition to the usual lib/Target/RISCV.
News and articles from around the web
Sudara blogged about how to create LLDB type summaries and synthetic children for your custom types.
On the forums
-
Tobias Hieta re-summarised the status of the proposal to increase the GCC and Clang requirements to support C++17 in LLVM.
-
Serge Guelton provided an update on the include cleanup with a graph showing the changes in the number of lines output by the preprocessor when building libLLVM.so.
-
Ellis Hoag shared details of how to use lightweight instrumentation and its results.
-
Tanya Lattner reshared an update from Discourse on changes to outgoing/incoming email.
-
The recording and slides from the MLIR meeting on ml_program are now available. As are the ones from the meeting on interfaces and dialects for controlling transformation.
-
Alex Zinenko shared an MLIR RFC on interfaces and dialects for precise IR transformation control.
-
Michał Górny shared a proposal for more complete multiprocess support in LLDB.
LLVM commits
-
Whole program devirtualisation’s checking mode was extended to support fallback to indirect call. fee0bde.
-
Calls to
__divei4
and related builtins will now be emitted for division/remainder of large integers. 09854f2. -
Opaque pointers are now automatically detected in .ll files, meaning it’s not necessary to specify
-opaque-pointers
when updating IR tests from typed pointers to opque pointers. 295172e. -
The RISC-V backend gained support for the experimental Zvfh extension to support half types in vectors. bbd2ecf.
-
More details were added to the MemorySSA docs 187a5f2.
-
A new TableGen backend was added that generates X86 mnemonic-based opcode groupings. fdcb256.
-
A CMake flag was added to turn
llvm_unreachable
intobuiltin_trap
when assertions are disabled. 7b98391. -
The Arm backend’s use of atomic expansion routines was fixed to use libatomic APIs on platforms where
__sync_*
routines aren’t known to exist. 2f497ec.
Clang commits
-
ext_vector_type can now be applied to booleans, allowing vectors of bools, which are intended to be used for vector mask registers. 0aab344.
-
The ‘tune-cpu’ IR attribute is now set with the precise name of the X86 processor being targeted. dc15265.
-
Literal suffices for
_BitInt
were introduced. 8cba721. -
The pseudoparser was moved from clang to clang-tools-extra. b97856c.
-
Multiple attributes can now be specified in
#pragma clang attribute push
. 33a9eac.
Other project commits
-
End-to-end codegen tests were added for wasm_simd128.h. 7062094.
-
Many patches for lowering of additional constructs and intrinsics were landed in Flang. 67b23fe, 308fc3f, and much more.
-
LLVM’s libc gained an implementation of lseek. 827575a.
-
Instructions were added for building LLDB with Intel Processor Trace support. 752e9cd.
-
Detailed documentation was added for the PDL Language (PDL), a custom frontend language for writing pattern rewrites targeting MLIR. 943ad66.
-
An initial language server was added for PDLL. 52b34df.
-
The MLIR bufferization documentation was updated. 975284a.