LLVM Weekly - #476, February 13th 2023
Welcome to the four hundred and seventy-sixth 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 [email protected], or @llvmweekly or @asbradbury on Twitter.
News and articles from around the web and events
Student travel grants applications now open for EuroLLVM 2023, closing on March 5th.
Recordings from the LLVM devroom at FOSDEM are now posted.
The next Toronto Clang/LLVM meetup will take place on Feb 16th.
MaskRay blogged about LeakSanitizer.
Slides and a recording from this month’s open MLIR meeting are now available. Mehdi Amini presented on operation properties.
LLVM 16.0.0-rc2 has been tagged.
According to the LLVM calendar in the coming week there will be:
- Office hours with the following hosts: Aaron Ballman, Alexey Bader, Alina Sbirlea, Phoebe Wang, Johannes Doerfert, Michal Paszkowski.
- Online sync-ups on the following topics: OpenMP, Clang C/C++ language working group, Flang, RISC-V, SPIR-V.
- For more details see the LLVM calendar, getting involved documentation on online sync ups and office hours.
On the forums
Tanya Lattner, on behalf of the LLVM Foundation is inviting involvement in a series of LLVM Foundation strategic planning sessions. These will cover Educational outreach, diversity and inclusion, scholarships and grants, and community infrastructure and health.
A new thread was started for questions about EuroLLVM 2023.
Tobias Hieta proposed documenting and standardising the Python code style within LLVM. Response so far is positive, with a few questions about precise details.
Michael Platings advertised that a design doc reflecting the discussion in the multilib RFC thread is now up for review.
Markus Böck shared a PSA that MLIR’s default fold method signature has moved to using FoldAdaptor.
Sunho Kim provided an update on the implementation of the flexible lexer buffering RFC, including a link to the patches implementing it.
Jay Foad reported that check-llvm times increased by 1.75x with a host toolchain enabling PIE by default, though thankfully linked to patches under review that remove this overhead by modifying MCInstrDesc to use offsets instead of pointers to find lists of implicit operands (thus reducing the number of pointers in readonly data).
Tobias Hieta announced that LLVM_CCACHE_BUILD should be considered deprecated, in favour of the standard CMake arguments to use CCache (
-DCMAKE_{C,CXX}_COMPILER_LAUNCHER=ccache
). As most buildbots rely onLLVM_CCACHE_BUILD
, the old option hasn’t yet been removed.Jim Ingham started an LLDB RFC discussion on introducing an SBValue metadata provider in order to provide machine-readable metadata about variables for use by GUIs.
LLVM commits
Support for NaN-in-negative-zero formats used by AMD, GraphCore, and Qualcomm was added to APFloat. 6109e70.
It’s now possible to ignore COPY instructions when pattern-matching MIR in GlobalISel. 7092467.
The patch to enable ConstraintElim by default was relanded. 8028263.
DataLayout::getIndexType
is now queried to determine the type to use for non-constant GEP indices. 5a11545.The legacy pass manager version of a number of passes was removed: Internalize, StripSymbols, StripNonDebugSymbols, StripDeadDebugInfo, StripDeadPrototypes, VectorCombine, WarnMissedTransformations. 1597774.
MVT now has standard print/debug utilities to aid printf style debugging. 3be1ae2.
An emacs mode for .mir files was committed. 8cbf041.
A generic
TargetLowering::shouldAlignPointerArgs
implementation was added, improving code size and performance for targets that don’t have fast unaligned access. bd87a24.A proposed (not yet finalised) mapping for load/store/fence with RISC-V’s Ztso extension was committed. be6fe95.
The various forwarding headers put in place as part of the TargetParsers move have now been removed, including llvm/ADT/Triple.h. 62c7f03.
Clang commits
-Wunsafe-buffer-usage
can now generate fixits for local variables used for buffer access, suggesting they be changed tostd::span
type. Pragmas were also added to opt-out of unsafe buffer checking. bdf4f2b, 829bcb0.-fsanitize-cfi-icall-experimental-normalize-integers
was added for normalising integer types as vendor extended types for cross-clang LLVM CFI/KCFI support with other languages that can’t represent and encode C/C++ integer types. 71c7313.-mllvm=
can now be used as an alias for-mllvm
. 90094ab.
Other project commits
The memref MLIR dialect can now be lowered to the LLVM dialect using opaque pointers when given the
-finalize-memref-to-llvm
option. The Async lowering gained ause-opaque-pointers
option. 50ea17b, 2ca4642.Flang gained a pass to move array temporaries to the stack, used by
-fstack-arrays
. cc14bf2, bf81ba3.LLVM’s libc gained implementations of scalbn, scalbnf, and scalbnl. 6cb14ad.
libunwind now has a callback-based lookup scheme for JITted unwind info on Darwin. 0751fc68.