LLVM Weekly - #328, Apr 13th 2020
Welcome to the three hundred and twenty-eighth 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 https://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
I didn't spot any particular LLVM-related news or blog posts this week. As always, I welcome people emailing me tips on things to include.
On the mailing lists
-
Mircea Trofin authored an RFC on applying machine learning for optimisation policies in LLVM. The described approach has been used to produce a policy for inline for size on x86-64. "Machine learning, in particular reinforcement learning, can address the tensions found in manual heuristics: once features are extracted from the program, the way they are combined and tuned can easily be scaled up through automation, improving effectiveness and generality."
-
The upstreaming of the F18 Fortran frontend as Flang has now been finished.
-
Louis Dionne started a thread to clarify the supported ways to build libc++, libc++abi and libunwind. This generated a range of useful answers, e.g. from Shoaib Meenai and Petr Hosek.
-
Johannes Doerfert started a discussion on reusing OpenMP infrastructure between LLVM/Clang and LLVM/Flang.
-
Amara Emerson posted an RFC on promoting experimental reduction intrinsics to first class intrinsics.
-
Kai Wang started a discussion about vscale and the RISC-V vector extension.
-
Jonas Devlieghere proposed upstreaming reproducer capture/replay of the API test suite in LLDB.
-
Bruno Conde Kind writes to get feedback on adding AnghaBench to the LLVM test suite. This generated discussion related to the fact these tests aren't executable, querying the trade-offs made in creating this benchmark set.
-
Konstantin Schwarz started a discussion on extended inline assembler support in GlobalISel.
-
Chris Lattner queried if functions to dynamically enable and disable multithreading support in LLVM should be reinstated.
LLVM commits
-
Initial fusion for load/multiple/store chains of matrix operations was committed and an option was added to use row-major matrix layout as default. d1fed70, 39f2d9a.
-
MC layer support for the proposed RISC-V bit manipulation extension was added. Target features are prefixed with "experimental-" as the extension is not yet finalised. fae40bd.
-
Sparse conditional constant propagation (SCCP) was improved to make use of ranges for predicate info conditions. 6aabb10.
-
The CFGPrinter gained heat coloring based on the relative 'hotness' of each basic block. 8b67853.
-
LLVM now tries to use a single enum internally to represent FP rounding mode. c7ff5b3.
-
-debugify-and-strip-all
was added to add debug info before a pass and remove it after, making it easier to test for cases where debug info affects codegen. f71350f.
Clang commits
-
In order to respect
-fno-unroll-loops
with LTO, Clang will now addllvm.loop.unroll.disable
metadata when that option is enabled. 338be9c. -
A new clang-tidy check was added, llvmlibc-implementation-in-namespace, which will ensure all llvm-libc implementations fall within the
__llvm_libc
namespace. 00a5755. -
Codegen was implemented for the OpenMP 5.0 iterator constructor. be99c61.
-
A new
-fsanitize-coverage=inline=bool-flag
option was added. ced398f. -
The RISC-V driver now learned to recognise experimental unratified extensions. As agreed via RFC on the mailing list, such extensions can only be enabled with the use of an explicit version number and the use of the
-menable-experimental-extensions
flag. dd1ee6d.
Other project commits
-
Flang (previously known as f18) has now been merged as an LLVM sub-project. b98ad94.
-
As part of the Propeller framework for post link code layout, LLD gained support for basic block sections. 9431787.
-
MLIR gained documentation on the declarative pass specification and updated documentation on canonicalization. c7b83a4, 8d0bc034.
-
concept.same was added to libcxx. 601f763.
-
Scripts were added for building libc++ and libc++abi on apple platforms. 77b46fb.
-
Hexagon support was added to libunwind. 9107594.