LLVM Weekly - #292, August 5th 2019

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

LLVM 9.0.0-rc1 has been tagged.

You can find out more about the LLVM project's move to GitHub on the LLVM blog.

On the mailing lists

Leonard Chen proposes switching to the new pass manager by default, now that 9.0 has branched.

David Greene wrote an RFC on strong typedef utilities for LLVM, which describes utility classes intended to increase type safety within the LLVM codebase.

A major blocker to transitioning the LLVM codebase to C++14 has now been cleared. Now that Google have migrated to libc++, the migration plan can move forwards.

Alex L shared an RFC on improving Clang's FileManager, which right now model file entries with multiple names correctly.

Michael Kruse queries whether LLVM can optimise based on the assumption that stack overflow is undefined behaviour, and how this might interact with the noreturn/nounwind/willreturn function attributes.

Rui Ueyama proposes adding an LLD feature to generate a build dependency file, similar to the -MD flag for Clang and GCC.

Bardia Mahjour shares minutes from the loop optimisation working group.

LLVM commits

An LLVM bitstream-based remark serializer was introduced. This has two serialisation modes: separate and standalone. r367364.

Unnamed function arguments are now printed with their automatically generated name (e.g. "i32 %0") in definitions. r367755.

A new Alignment type was introduced to the LLVM codebase. r367393.

APInt gained a new clearLowBits() method. r367287.

The git-llvm helper will now ask for confirmation if it would push multiple commits. r367321.

The AArch64 backend gained support for "tagged globals", where global variable addresses may include a pointer tag in bits 53-63. r367475.

The raw_ostream interface was improved to allow you to "write" colours using operator<< . r367649.

Clang commits

A new -Wimplicit-float-conversion warning was introduced. r367497.

clang-tidy gained a new google-upgrade-googletest-case checker which updates uses of a deprecated API. r367263.

Other project commits