LLVM Weekly - #202, Nov 13th 2017

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

Trip reports have started to appear from the ISO C++ standards meeting in Albuquerque. Check out Herb Sutter's writeup and the Reddit trip report written by Bryce Lelbach and other commmittee members.

It looks like all the videos from the 2017 LLVM Dev Meeting have now been posted.

On the mailing lists

LLVM commits

GlobalISel learned to legalize non-power-of-2 sized types. r317560.

The set of fast-math flags have been updated and expanded. See the commit message for full details. r317488.

llvm-opt-fuzzer was introduced to allow fuzzing of optimisation passes. The interface is similar to llvm-isel-fuzzer. r317883.

A cross-compilation toolchain configuration has been added for using clang-cl on non-Windows hosts to target MSVC. r317830.

All TargetOpcode::* instructions now have properties set explicitly, meaning you can freely use guessInstructionProperties=0 in your backend to opt-out of property inference. This change made it obvious what hasSideEffects was being inferred as '1' in unexpected cases, e.g. PHI. This has now been corrected, and patches are in review that fix hasSideEffects for other instructions. r317674, r317721.

The xray-converter tool can now convert XRay traces to Chrome's Trace Event Format. r317531.

Documentation has been added on cross-compiling and testing the compiler-rt builtins for Arm targets with QEMU. r317554.

FileCheck now supports a -D flag which can be used to define variables used in CHECK lines. r317572.

MC layer support for AArch64 SVE has started to land. r317590, r317591.

Target/TargetInstrInfo.h moved to CodeGen/TargetInstrInfo.h. r317647.

A number of additional RISC-V backend patches have finally landed. Codegen support for memory operations, conditional branches, and function calls. Please help review some of my remaining patches. r317685, r317690, r317691.

The llvm.sideeffect intrinsic has been introduced. This intrinsic prevents optimisations passes from optimising away any loops that contain it. r317729.

The AMDGPU backend gained a number of new optimisations. r317750, r317751, r317752, and more.

Clang commits

The _Float16 and __fp16 types have been documented. r317558.

The redundant expression checker can now detect redundant expressions that contain macros. r317570.

Other project commits

The LLVM test suite now includes the HACCKernels (Hardware/Hybrid Accelerated Cosmology Code) benchmark. r317483.

ubsan-minimal no longer depends on libc++. r317969.

The NativeRegisterContext class in LLDB has seen some minor refactoring, which is likely to lead to changes if you have out of tree platform plugins. r317881.

Review corner

The LLVM Weekly review corner serves to highlight patches that are stuck waiting awaiting review, or work from first-time contributors. See here for more information and how to submit you work for inclusion. Of course the hope is that highlighting these patches will enable LLVM Weekly readers will step up and help to get them merged. I'll be reporting back each week on any activity generated on these patches, as well as sharing a new batch. If you want your patch included you must submit it via the linked form.

We had one patch submission last week and it did attract new review activity thanks to David Li.

There were two new review corner submissions this week: