LLVM Weekly - #435, May 2nd 2022
Welcome to the four hundred and thirty-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, or @llvmweekly or @asbradbury on Twitter.
News and articles from around the web
LLVM 14.0.2 and 14.0.3 were released.
David Spickett blogged about adding support for Arm’s Memory Tagging Extension to LLDB.
The Call for Proposals for the toolchains and kernel track at the Linux Plumbers Conf 2022 is now open.
EuroLLVM registration is almost sold out and will close on May 2nd. Additionally, Tanya Lattner is seeking volunteers to help moderate sessions at EuroLLVM.
Marek Polacek blogged about new C++ features in GCC 12.
The speaker for the May Women in Compilers and Tools meetup has been announced. Michelle Strout (professor in the Department of Computer Science at the University of Arizona an Chapel team manager at HPE) will host an AMA (‘Ask Me Anything’) session.
LLVM Weekly readers might be interested in the recently launched programming languages papers you might love newsletter by Varun.
On the forums
The discussion on graduating CIRCT to the monorepo continued. A useful starting point for getting up to speed on that debate is Stella Laurenzo’s summary of the discussion so far.
Tom Honermann posted an RFC for supporting decimal floating point in Clang.
Alex Bradbury posted an RFC on representing WebAssembly tables in C/C++ or Clang.
Chris Bieneman shared that a GitHub project has now been set up to track HLSL progress.
Brooks Davis queried whether the full LLVM version should continue to be embedded in lib/clang/x.x.x.
Chris Bieneman created an RFC proposing to deprecate and remove LLVM_BUILD_EXTERNAL_COMPILER_RT. It should be fully subsumed by
LLVM_ENABLE_RUNTIMES=compiler-rt
.LLVM GPU News #33 is out.
LLVM commits
As previously discussed on Discourse, the LLVM Code of Conduct was updated to remove the word ‘draft’ from all documents, add information about the CoC committee expectations, a place for transparency reports, and a complete reporting guide. eb2c30b.
A new
llvm.is.fpclass
intrinsic was introduced. 170a903.lit gained support for
%if ... %else
syntax for RUN lines, allowing to RUN lines to be modifed based on features available. 1041a96.llvm-reduce can now handle multiple MachineFunctions. 7c2db66.
Swing Modulo Scheduling was enabled by default for the Arm Cortex-M7. dcb7764.
The legacy LoopUnswitch pas was removed. The new pass manager replacement is SimpleLoopUnswitch. fb4113e.
Clang commits
New CMake targets were added to control the installation of platform/architecture specific resource headers. This allows compiler distributions that don’t need resource headers for other targets to avoid shipping them. a70cf56.
clangd gained support for concept declarations and requires expressions. 75e16fd.
Initial structure for the include-cleaner library was added. 41ac245.
A C++ ABI bug on SystemZ for passing arguments of structs containing a zero-width bitfield was fixed. 9b38e2e.
Other project commits
Extensible dialects (dialects that can be extended with new operations and types defined at runtime) were introduced to MLIR. 9e0b553.
A new ‘on demand symbols’ feature was added to LLDB. 7b81192.
The flang driver gained support for generating executables. 97a32d3.
The compiler-rt profile library was marked as supported on RISC-V. b5047c7.
feof, ferror, and clearerr were implemented in LLVM’s libc. 9db0037.