[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