LLVM Weekly - #230, May 28th 2018

Welcome to the two hundred and thirtieth 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 12th LLVM Social Berlin will be held this Thursday 31st May. Stefan Gränitz will talk about ThinLTO and Incremental JIT Compilation.

On the mailing lists

Martin Storsjö reports that a demonstration of Windows on ARM64 at the Microsoft Build conference showed VLC build with Clang, LLD, and mingw-w64.

Jessica Paquette is pinging for any remaining objections to turning on MachineOutliner by default for AArch64 under -Oz.

Erich Keane would like more feedback on the host compiler proposal.

Ulrich Weigand has shared a lengthy update on the status of strict FP, ending with a detailed list of proposed next steps.

Peter Collingbourne proposes support for adding a new section to object output which indicates which symbols are address-significant, and so can't be safely merged using identical code folding in the linker.

Paul Robinson has shared an RFC on formalizing FileCheck features, proposing a clear conceptual model for its operation.

LLVM commits

Support for "thunk" outlining was added for AArch64. This uses a tail-call when outlining a sequence that ends in a call. r333015.

A new machine instruction property 'isMoveReg' was introduced alongside a new isCopyInstr hook. This support is a pre-requisite for a patch which allows LiveDebugValues to follow a variable's value moving from one register to another. r333093.

A series of patches that aims to improve the performance of InstructionSelect during GlobalISel have started to land. r332907.

The RISC-V backend gained support for tail call optimisation. r333137.

Floating point binary operations with undef operands now fold to NaN. r332920.

The llvm-exegesis analysis output now uses HTML in order to produce a more readable report. r332979.

The DEBUG macro has been removed now all in-tree users have been updated to LLVM_DEBUG . r333091.

The CostPerUse attribute is now set on RISC-V registers which are unlikely to be accessible in compressed (16-bit) instructions. r333132.

The LoopInstSimplify pass has been restored and will see improvements and integration into the loop pass pipeline. r333250.

Clang commits

Support was committed for the GNUstep Objective-C ABI version 2. r332950.

__builtin_classify_type support was reworked to better match GCC. r333126.

The clang-interpreter example was converted to use the ORC JIT API. r333302.

Other project commits