LLVM Weekly - #411, November 15th 2021
Welcome to the four hundred and eleventh 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 2021 LLVM Developers' Meeting is taking place virtually this week, Nov 16th-19th.
Simon Byrne blogged about dangers posed by ‘fast-math’ compiler flags.
On the mailing lists
Akash Kothari (on behalf of a consortium of authors) shared a proposal for TLX: Tensor LLVM eXtensions.
Jeremy Morse posted an RFC on enabling ‘instruction referencing’ variable locations for x86_64. Respondents so far are in favour.
Johannes Doerfert asked if it would make sense to have a ‘GPU working group’ with regular meetings.
Mircea Trofin shared an RFC on applying machine learning to live range eviction for the ‘greedy’ register allocator, noting a 0.3%-1.5% improvement in queries per second on selected datacenter-type applications.
Zarko Todorovski is proposing to rename llvm-cov option -name-whitelist to -name-allow-list.
Florian Hahn provided an and updated on adding new vector math builtins to Clang.
Itay Bookstein is seeking feedback on the IR-level semantics of a GlobalIFunc whose resolver is a declaration.
After some systematic testing with a simple Python script, Jay Foad highlighted some missed optimisations of bitwise expressions. ‘Beginner’ tagged bugs have now been filed.
Johannes Doerfert posted an updated RFC on introducing non-capturing stores.
Alan Phipps kicked off an RFC thread on source-based modified condition/decision coverage.
ORC JIT Weekly #44 is out, providing an update on support for MachO debugging.
LLVM GPU News #23 is out.
Arthur Eubanks initiated a thread on removing optimisation size level from the LLVM IR pipeline and relying on minsize/optsize attributes. This generated a fair amount of discussion, both about this specific proposal and about when function attributes should be used to represent optimisation information.
LLVM commits
The llvm-tli-checker tool was committed. This tool compares TargetLibraryInfo’s opinion of the availability of library function calls against the functions actually exported by a specified set of libraries. 38be8f4.
MC layer support for CSKY’s 16-bit instructions was added. 4fb282f.
The initial implementation of a module level inliner was committed. 6cad45d.
Minimal support for the D programming language was added to LLVM’s demangler. A fuzzer for it was also contributed. 22a1aa5, 9af467e.
The operands-skip pass was added to llvm-reduce. This will try to remove instructions in the middle of dependency chains. c15f930.
Clang commits
LambdaCapture-related matchers were added. c0b298f.
A new clang-tidy check was added to detect misleading unicode identifiers. a35efc4.
Clang support was added for the SPIR-V target. a10a69f.
The
# NNN
-based line control extension was documented. bf6986d.Some of the generated resource headers were conditionalised upon the relevant target being registered. This was motivated by the size the RISC-V headers add to the resource directory. c17d9b4.
A new clang-tidy check was added for the initialisation of
absl::Cleanup
. 16b07c8.
Other project commits
A libMLIR-C.so shared library can now be built. c265170.
compiler-rt’s memprof gained support for a raw binary profile serialisation format. 545866c.
The performance of string to float conversion in LLVM’s libc was improved. 8298424, 499ca80.
Outdated LLD design documentation was removed. 43bb5f0.
Identical code folding (ICF) for the LLD MachO linker can now deduplicate functions with identical unwind info. d9b6f7e.