LLVM Weekly - #432, April 11th 2022
Welcome to the four hundred and thirty-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
Registration is now open for EuroLLVM 2022. It will be held May 10-11 in London, and registration will close on May 4th.
As a reminder, per the Google Summer of Code timeline, applications are due by April 19th. See here for a all the information you may need about LLVM’s involvement in GSoC 2022.
The recording from the March Women in Compilers and Tools meetup is now available, featuring Theresa Foley speaking about “Taking the Slang Shading Language from Research to Production”.
On the forums
Augie Fackler proposed attributes for allocator functions in LLVM IR, motivated by the Rust use case (which has its own allocator functions that aren’t recognised by LLVM).
Arthur Eubanks proposed removing bugpoint (as part of the new pass manager migration), with
llvm/utils/reduce_pipeline.py
,llvm-reduce
, andOptBisect
suggested as alternatives. From responses so far, there are some concerns that these alternatives don’t yet cover all the functionality bugpoint has.Anastasia Stulova shared a proposed deprecation timeline for the opencl-c.h header.
Alexandros Lamprineas asks if it’s time to enable function specialisation by default, sharing performance results for SPEC2017 and llvm-test-suite.
Balazs Benics proposes moving Clang Static Analyzer engine options to Tablegen.
Tom Stallard requested that LLVM contributors check the LLVM Release Status project for assigned issues.
Thomas Raoux wrote an RFC proposal on adding an Nvidia/PTX MLIR dialect.
Craig Topper is seeking advice on addressing an issue preventing signed 32-bit integer induction variables being promoted to i64.
River Riddle summarised recent discussion on the MLIR RFC to add new interfaces/dialects that allow more precise control over IR transformation.
“rgal” shared an update on the program repository research project at SNSystems, summarising its main outputs and also announcing that the project won’t be continued further at this time.
LLVM commits
The
LLVM_ENABLE_NEW_PASS_MANAGER
CMake option can now only be set to On/True. This means it’s no longer possible to enable the legacy pass manager by default, though it can be explicitly enabled with appropriate flags at runtime. ed4e6e0.The minimum toolchain version needed to build LLVM was increased. 4c72deb.
The DXILPrepare CodeGen pass was added, which handles the IR transformations required to convert modern LLVM IR into something that more closely resemble LLVM-3.7 IR that will be emitted by the DXIL bitcode writer. 6599fda.
The macros used in the IR verifier were renamed from
Assert*
toCheck*
. c54ad13.MIPS-I load delay slots are now supported. 303c180.
A NotAtomic lowering strategy was added and used for AMDGPU for atomics in private address spaces. 7f14a1d, e6012c8.
Clang commits
Documentation was added on the work to add HLSL support to Clang. 9e3678e.
Clang now supports a
randomize_layout
attribute on structs, which will randomise the memory layout. This is a compile-time hardening technique that is also supported by GCC and used in the Linux kernel. 7aa8c38.A huge commit added
-no-opaque-pointers
to Clang tests whose output will change when opaque pointers are enabled by default. 532dc62, b16a3b4.A CSKY target definition and compiler driver was added to Clang. 97e4960.