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 https://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
-
Kirill Bobyrev shares an RFC on the design of an efficient symbol index for Clangd.
-
Annie Cherkaev is seeking feedback on a tool which statically computes the worst-case stack depth for programs whose call-graphs are statically constrained. This was developed for Zircon.
-
Maxim Kazantsev kicks off a discussion about giving up on the @llvm.experimental.guard intrinsic.
-
Hal Finkel shared an RFC on adding new nofree and nosynch function attributes. nofree indicates the function doesn't directly or indirectly call a memory de-allocation function. Based on the feedback so far, Hal will move forwards with a full set of patches.
-
Eric Fiselier is seeking feedback on upstreaming new clang-tidy checks useful for developers of libc++. Jonas Toth points out, there's already precedent for upstreaming project-specific checks (LLVM, Zircon/Fuchsia).
-
Thomas Preudhomme proposes adding support to FileCheck for numeric variables and expressions.
-
Kristof Beyls provides an update on patches for Speculative Load Hardening on AArch64.
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.