LLVM Weekly - #233, June 18th 2018

Welcome to the two hundred and thirty-third 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 2018 LLVM Developers' Meeting has been announced for October 17th-18th in San Jose. Registration is now open.

zapcc, a caching C++ compiler based on Clang is now open source. It claims substantial speedups for heavily-templated C++. See this previous cfe-dev post for an overview of the technology.

On the mailing lists

Hal Finkel is arranging a poll on the date to hold a webinar on the proposed rewrite of Flang, "Clang for Fortran".

Alex Bradbury kicked off an RFC thread on the lowering of atomic LL/SC loop in LLVM. This revisits a topic raised by James Knight in 2016. Most architectures have restrictions on the form of an LL/SC loop (e.g. number and type of instructions, presence of other memory accesses) in order to guarantee forward progress. This thread proposes a late expansion lowering strategy for the inner LL/SC loop, while expanding anything else at the IR level. Tim Northover is concerned about possible performance loss, and Krzysztof Parzyszek comments that Hexagon actually has no real restrictions on LL/SC loops.

Pavel Labath has given an update on efforts to add DWARF5 accelerator table support to LLVM, while Paul Robinson gave a broad update on DWARF v5 support.

Paul Robinson started a discussion on bug-closing protocol.

LLVM commits

A new compact binary format is supported for sample profiles, reducing the size by about 2/3rds. r334447.

Codegen support for atomics has started to land for RISC-V. r334590, r334591.

The microMIPS size reduction pass has been extended to transform SW/LW pairs to SWP/LWP. r334595.

There is now a default SelectionDAG expansion for rotates. r334497.

A new merge-git.sh script has been added, performing similar functionality to the svn-based merge.sh script. r334568.

Clang commits

The new -fforce-emit-vtables option forces the emission of vtables even in modules where it isn't necessary, which increases opportunities for devirtualisation. r334600.

clang-format gained a new BreakInheritanceList option. r334408.

Other project commits