LLVM Weekly - #269, February 25th 2019

Welcome to the two hundred and sixty-ninth 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.

If you're interested in working on RISC-V LLVM, open source hardware design, and more then consider applying to work with me at lowRISC CIC. We are hiring for multiple positions to deliver on an exciting, high impact, open source hardware roadmap in collaboration with Google and other industry partners.

News and articles from around the web

Slides from the C4ML "Compilers for Machine Learning" workshop at CGO 2019 are now available. Slides from the talk on MLIR presented by Chris Lattner and Jacques Pienaar will be of particular interest to the LLVM community.

At the C++ Committee meeting in Kona, C++20 was declared feature complete. See this reddit /r/cpp trip report for full details. Most notably, modules and coroutines were added to C++20 at the Kona meeting.

On the mailing lists

Hans Wennborg is requesting release note additions for 8.0.0.

Zachary Turner started a thread on expectations of buildbot email notifications. Specifically, should quick "revert-to-green" be used if an issue was found only in a silent or unofficial buildbot? There seems to be substantial agreement that the answer to this is yes.

James Y Knight proposes an improvement to the textual IR format for nameless blocks, aiming to make the syntax clearer.

Hans Wennborg is seeking assistance with a blocker on the 8.0.0 release, "Sanitizers broken on FreeBSD".

Alex L shared an RFC on adding "(+asserts)" to the Clang version output when it's built with assertions enabled.

LLVM commits

Optional<T> is now trivially copyable when T is trivially copyable. r352464.

The DAGCombiner learned to fold overlapping constant stores. r354676.

On macOS/iOS etc, LLVM can now use the os_signpost() API to expose timing information for Instruments. r354365.

The RISC-V assembler can now handle pseudo-instructions for load/store of a symbol address. r354430.

Clang commits

Coroutine support is now enabled under -std=c++2a . r354736.

The Clang driver gained support for the -static-pie argument as understood by GCC. r354502.

Other project commits