LLVM Weekly - #296, September 2nd 2019

Welcome to the two hundred and ninety-sixth 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 LLVM 9.0.0 release candidate 3 is available.

On the mailing lists

LLVM commits

The LoopIdiomRecognize pass can now recognise a BCmp loop. r370454.

llvm-ifs, an LLVM Interface Stubs merging and object file generation tool was committed. r370499.

A new shouldExtendTypeInLibCall hook was added and used to ensure libcall lowering on RV64 properly respects the ABI r370275.

The GlobalISel importer learned to handled patterns containing INSERT_SUBREG and SUBREG_TO_REG r369973, r370254.

Scalable vectors are now supported in intrinsics. r370053.

The return values of allocation functions are now annotated with dereferenceable_or_null . r370168.

Arm MTE support was updated with an optimisation for unchecked load/stores of stack offsets. r370490.

Clang commits

Clang will now warn when it is about to exhaust the stack and can allocate a new stack by spawning a new thread. This improves the user experience when dealing with e.g. heavily recursive template instantiations. r369940.

The clang-tidy-vs Visual Studio plugin was removed. Users are encouraged to use Clang Power Tools instead. r370096.

The new -gen-cdb-fragment-path option can be used to emit a fragment of a compilation database for each compilation. r369938.

MaxAtomicInlineWidth and MaxAtomicPromoteWidth are now set appropriately for RISC-V targets. r370073.

Semantic restrictions were implemented for C++20 designated initializers. r370544.

Other project commits