LLVM Weekly - #191, Aug 28th 2017

Welcome to the one hundred and ninety-first 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

LLVM 5.0.0-rc3 has now been tagged. As Hans Wennborg makes clear, the hope is this will be a true "release candidate" and no additional changes will be needed prior to the final release.

The Flang Fortran front-end to LLVM has been announced. The GitHub repo appeared with little fanfare a few months ago, but this announcement clarifies the current state of the codebase and points to a number of new mailing lists for those wanting to collaborate on the effort.

Emscripten is making progress towards using the upstream LLVM WebAssembly backend by default.

The LLVM Heat Printer utility colours callgraphs or CFGs based on execution frequency.

unformat is a cunning tool which generates an appropriate .clang-format file for a given codebase, based on the conventions that are currently being used.

On the mailing lists

LLVM commits

A backend for the ARC processor core has been added. r311667.

A new library, FuzzMutate has been committed. This provides structured fuzzing for LLVM IR. r311402.

libFuzzer has been moved from LLVM to compiler-rt. r311405.

Cache size and associativity can now be modeled in TargetTransformInfo. r311647.

The X86 backend has become better at folding read-modify-write sequences to X86 read-modify-write instructions. r311806.

The Cortex-A75 and A-55 are now recognised by LLVM. r311316.

MC-layer support for ARMv8.3-A Javascript conversion operations has been added. r311448.

Debug messages have been added to SelectionDAG getNode methods, to aid debugging instruction selection. Extra debug messages have also been added to AArch64 legalisation and custom lowering. r311444, r311533.

The llvm.experimental.constrained.fma intrinsic has been introduced. r311629.

Clang commits

The new -fclang-abi-compat flag can be used to request Clang attempt to remain ABI-compatible with previous ABI versions. r311823.

The StmtDataCollector class in clang analyzer is now customisable through subclassing and use of the helpers in StmtDataCollectors.inc. r311569.

Clang refactoring gained initial support for AST selections. r311655.

The -fsanitize-coverage=pc-table and fsanitize-coverage=inline-8bit-counters command line options have been documented. r311719.

Other project commits