LLVM Weekly - #316, Jan 20th 2020
Welcome to the three hundred and sixteenth 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
LLVM 10.0 has now branched.
The next batch of C++ Standards Committee papers is now available.
An initial implementation of C++ coroutines has been pushed to GCC master.
On the mailing lists
-
Chris Lattner has made a proposal on improving decision making in the LLVM community. This includes a process for proposing changes and determining what the decision making body should be for these proposals.
-
The merging of f18/flang into the monorepo has been postponed.
-
Lang Hames has posted the first of hopefully many ORC JIT weekly updates. This initial status update gives highlights from 2019 development and outlines the plan for 2020.
-
Alex Bradbury penned an RFC on upstream support for yet-to-be-ratified RISC-V extensions, such as the in-development bit manipulation and vector instruction set extensions. The proposal is to accept patches for these upstream in order to reduce duplicated effort and encourage collaboration, but to guard enabling of these extensions by a suitable unappetising flag.
-
Sriraman Tallam shares an update on the Propeller post-link optimisation framework.
-
Sam Elliott shared the current plan for supporting LTO for RISC-V and encoding target-abi into module flags.
-
Ondrej Sykora proposes implementing the recently published BHive methodolgoy for for benchmarking basic blocks in llvm-exegesis.
-
The thread on moving from Phabricator to GitHub PRs saw a huge volume of new comments in the last week, starting with e.g. this one. Sadly, I don't have time to summarise - apologies.
-
Chris Lattner fed back on the discussion started last week about new approaches for loop transformations in LLVM.
LLVM commits
-
TableGen now supports a
defvar
statement as well asif/then/else
. 3388b0f, ddbc0b1. -
Most target symbols are now hidden by default, reducing the number of public symbols in libLLVM.so by 25%. 0dbcb36.
-
The TLS size can now be selected in the local exec TLS model. 10c11e4.
-
Shrink wrapping is now enabled for RISC-V. cd800f3.
-
The MergeFunctions pass was ported to the new pass manager. 4103318.
-
Support for a new
-x86-branches-within-32B-boundaries
flag was committed. 1a7398e. -
The NEC Vector Engine backend now has minimal codegen for simple functions. 064859b, 773ae62.
-
AArch64 memory tagging instructions will now be merged with adjacent stack slots. d081962.
Clang commits
-
C++ concepts implementation continues with support for type constraints in template type parameters and for requires expressions. ff1e0fc, 0279318.
-
The new
readability-qualified-auto
clang-tidy check will add an asterisk and (if appropriate)const
to auto variables deduced to a pointer or const pointer. 36fcbb8. -
Clang will now re-use the calling process instead of creating a new process for the cc1 invocation. b4a99a0.
-
GCC's VectorType conditional operator extension was implemented. 349636d.
Other project commits
-
Initial memory tagging support was added for the scudo secure memory allocator. c299d19.
-
LLD gained support for
-z force-ibt
and-z shstk
for Intel's Control-flow Enforcement Technology. 7cd429f. -
The use of gtest in LLVM's libc was removed in favour of a new light-weight and minimal dependency framework. c7453fa.
-
libcxx gained optimisations for
basic_string::operator=(const basic_string&)
and thebasic_string
copy constructor. 58c7fa5, a8a9c8e. -
MLIR now supports the SPIR-V conversion target. 47c6ab2.