LLVM Weekly - #239, July 30th 2018

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

News and articles from around the web

GCC 8.2 has been released.

On the mailing lists

Kirill Bobyrev proposes moving the google-benchmark library into the main LLVM repository. It's currently included in libcxx and the test-suite, and clangd would now like to use it. Responses are positive so far.

Craig Topper starts a discussion on improving the performance of dot product reduction loops.

Philip Reames shares a couple of ideas for extensions of the loop unswitch cost model.

Alexandros Lamprineas is seeking feedback on re-enabling GVNHoist by default.

Matthew Arsenault starts a discussion about the behaviour of the llvm.minnum/llvm.maxnum intrinsics. He points out that the behaviour doesn't match IEEE-754 as the LangRef currently suggests. Stephen Canon helpfully clarifies recent changes to the IEEE-754 standard with respect to these operations.

LLVM commits

The MachineOutliner is now enabled by default under -Oz for AArch64. This offers an additional 4.5% code size improvements. r338133.

A new ArmCodeGenPrepare backend pass was added in order to perform type promotion on icmp operands. r337687.

The BPF backend gained a new -bpf-expand-memcpy-in-order option. r337977.

MC support for the Armv8.2-A crypto extensions was added. r338010.

The RISC-V backend gained support for the 'interrupt' function attribute. r338047.

Clang commits

Clang learned to use non-zero memset when possible for automatic variables. r337887.

Clang's OpenMP documentation was updated to describe recent changes. r338049.

Other project commits