LLVM Weekly - #237, July 16th 2018

Welcome to the two hundred and thirty-seventh 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 call for papers for the LLVM-HPC2018 workshop at SC18 is now out. Paper submissions are due for September 1st 2018 and the workshop takes place on November 12th.

Bloombeg have released clang-metatool, a framework for reusing code in Clang tools. "When we first started writing clang tools, we realized that there is a lot of life cycle management that we had to repeat. In some cases, people advocate the usage of global variables to manage the life-cycle of that data, but that makes code reuse across tools even harder. Additionally, we also learned that when writing a tool, it will be beneficial if the code is split in two phases. First a data collection phase, and later a post-processing phase that actually performed the bulk of the logic of the tool."

On the mailing lists

LLVM commits

A new speculative load hardening pass was added for X86, aiming to mitigate Spectre variant #1. r336990.

TableGen gained a general-purpose JSON backend, allowing all records to be exported as a JSON data structure. r336771.

The JSON library originally developed as part of clangd has been moved to llvm/Support. r336534.

The WebAssembly backend gained support for binary atomic read-modify-write operations. r336615.

By default, FileCheck will no longer allow overlapping CHECK-DAG directives. The previous behaviour can be enabled using the -allow-deprecated-dag-overlap option. r336847.

It is now possible to define 'PatFrags', a list of multiple alternative patterns that may all match to the same instruction. r336999.

Clang commits

The new bugprone-exception-escape checker will identify functions that may throw an exception but shouldn't, such as destructors, moves constructors, move assignment operators, noexcept functions and so on. r336997.

clangd now supports indexing macros. r336553.

Other project commits