LLVM Weekly - #270, March 4th 2019

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

There seems to have been a higher than usual volume of activity on the mailing lists this week. Apologies in advance if I missed anything!

News and articles from around the web

LLVM 8.0.0-rc3 has been tagged, source and binaries are available.

JLang, a Java-to-LLVM ahead-of-time compiler has been released.

On the mailing lists

LLVM commits

The first part of support for "context sensitive PGO" (CSPGO) was committed. With CSPGO, a second round of PGO is performed after inlining and indirect call promotion etc. See the commit message for further details. r354930.

A new order file instrumentation pass was added. This logs the execution ordering of functions, logging each function when it is first executed. r355133.

Basic support was added for the Cortex-A76, Cortex-A76AE, and Cortex-M35P. r354788, r354868.

The RegisterScavenger interface was extended to allow it to fail if a spill is required. r354816.

llvm-objdump gained support for -M target specific options, initially -Mreg-names-raw/-std for Arm. r354870.

Volatility and atomicity/ordering have been separated in SelectionDAG. i.e. atomic memory accesses are no longer necessarily volatile. This patch is intended to have no functional change, as for now LLVM will be as conservative for an atomic access as for a volatile access (though out-of-tree backends may want to check). r355025.

Clang commits

clangd gained some more detailed documentation, with accompanying screenshots. r354992.

The WebAssembly Clang driver now uses -matomics rather than -mthread-model . r351112.

The Format library has itself been clang-formatted. r355182.

Other project commits