[llvm-dev] LLVM Weekly - #237, July 16th 2018
Alex Bradbury via llvm-dev
llvm-dev at lists.llvm.org
Mon Jul 16 12:36:33 PDT 2018
LLVM Weekly - #237, July 16th 2018
==================================
If you prefer, you can read a HTML version of this email at
<http://llvmweekly.org/issue/237>.
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](https://www.linkedin.com/in/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 at 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](http://lists.llvm.org/pipermail/llvm-dev/2018-July/124592.html). Paper
submissions are due for September 1st 2018 and the workshop takes place on
November 12th.
Bloombeg have released
[clang-metatool](https://bloomberg.github.io/clangmetatool/), 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](http://lists.llvm.org/pipermail/cfe-dev/2018-July/058487.html).
* Annie Cherkaev is [seeking
feedback](http://lists.llvm.org/pipermail/llvm-dev/2018-July/124572.html) 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](http://lists.llvm.org/pipermail/llvm-dev/2018-July/124523.html).
* Hal Finkel shared an RFC on [adding new nofree and nosynch function
attributes](http://lists.llvm.org/pipermail/llvm-dev/2018-July/124555.html).
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](http://lists.llvm.org/pipermail/cfe-dev/2018-July/058429.html) on
upstreaming new clang-tidy checks useful for developers of libc++. Jonas Toth
[points out](http://lists.llvm.org/pipermail/cfe-dev/2018-July/058440.html),
there's already precedent for upstreaming project-specific checks (LLVM,
Zircon/Fuchsia).
* Thomas Preudhomme
[proposes](http://lists.llvm.org/pipermail/llvm-dev/2018-July/124598.html)
adding support to FileCheck for numeric variables and expressions.
* Kristof Beyls provides an
[update](http://lists.llvm.org/pipermail/llvm-dev/2018-July/124495.html) 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](https://reviews.llvm.org/rL336990).
* TableGen gained a general-purpose JSON backend, allowing all records to be
exported as a JSON data structure.
[r336771](https://reviews.llvm.org/rL336771).
* The JSON library originally developed as part of clangd has been moved to
llvm/Support. [r336534](https://reviews.llvm.org/rL336534).
* The WebAssembly backend gained support for binary atomic read-modify-write
operations. [r336615](https://reviews.llvm.org/rL336615).
* 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](https://reviews.llvm.org/rL336847).
* It is now possible to define 'PatFrags', a list of multiple alternative
patterns that may all match to the same instruction.
[r336999](https://reviews.llvm.org/rL336999).
## 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](https://reviews.llvm.org/rL336997).
* clangd now supports indexing macros.
[r336553](https://reviews.llvm.org/rL336553).
## Other project commits
* LLD gained experimental support for `SHT_RELR` sections. This is a new
section type intended to minimize executable size of PIE binaries and shared
libraries by reducing the space needed to store relative relocations.
[r336594](https://reviews.llvm.org/rL336594).
* gcov profiling for big-endian systems was fixed.
[r336993](https://reviews.llvm.org/rL336993).
More information about the llvm-dev
mailing list