[llvm-dev] LLVM Weekly - #173, Apr 24th 2017

Alex Bradbury via llvm-dev llvm-dev at lists.llvm.org
Mon Apr 24 02:47:22 PDT 2017

LLVM Weekly - #173, Apr 24th 2017

If you prefer, you can read a HTML version of this email at

Welcome to the one hundred and seventy-third 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](http://asbradbury.org). 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

KDAB have written a blog post about the [clazy clang
which has a variety of checks and warnings for Qt codebases.

The LLVM-based [Crystal](https://crystal-lang.org/) language has just
[released version

I've just spotted that another language using LLVM for codegen,
[Pony](https://www.ponylang.org/), now has a [weekly development

"Source code quality classification based on software metrics" is a [recent
publication](http://fruct.org/publications/fruct20/files/Vyt.pdf) that looks
at extending LLVM to generate standard source code quality metrics.

## On the mailing lists

* Chris Lattner has posted a third update/RFC in the [LLVM relicensing
saga](http://lists.llvm.org/pipermail/llvm-dev/2017-April/112142.html). For
full details, I encourage you to read the email. The proposal is to adopt the
Apache 2.0 license with exceptions to address concerns about GPLv2
compatibility and binary attribution. Mark Kettenis explained the [issues with
Apache as seen by the OpenBSD
while Daniel Berlin [responded to many of these

* Kavon Farvardin has produced an [RFC on better supporting continuation
passing style in
LLVM](http://lists.llvm.org/pipermail/llvm-dev/2017-April/112144.html). This
would aid the implementation of languages such as Haskell and ML using LLVM.

* Diana Picus has [summarised recent GlobalISel news and

* Gerolf Hoflehner [explains more about the use of CTMark for tracking LLVM

## LLVM commits

* LLVM's bitcode format now has a string table. This reduces the link time for
Chromium with ThinLTO by 7% for no-op incremental builds.

* The way the Mips backend handles relocations and addresses has been
documented. This is a recommended read for anyone interested in LLVM backend
work. AArch64 has now been refactored to use a similar approach.

* LLVMMetadataRef, the first step towards a new metadata API has been
committed. [r300447](http://reviews.llvm.org/rL300447).

* libFuzzer gained an interesting new option, `-cleanse_crash` which tries to
replace all bytes in a crash reproducer with garbage while preserving the
crash behaviour. [r300498](http://reviews.llvm.org/rL300498).

* The documentation on statepoints (used to support garbage collection) has
been updated. [r300782](http://reviews.llvm.org/rL300782).

* Support has been added for representing the types needed for ARM's Scalable
Vector Extension. [r300838](http://reviews.llvm.org/rL300838),

## Clang commits

* Optimisation work on UBSan has continued, and the number of null checks has
been substantially reduced. [r300508](http://reviews.llvm.org/rL300508),

* `#pragma clang attribute` has been introduced. This can be used to apply an
attribute to multiple declarations by 'pushing' or 'popping' the attribute.

* git-clang-format is now mostly Python 3 compatible.

## Other project commits

* LLD gained support for `--compress-debug-sections`.

* The ios, tvos and watchos platforms in LLDB have been refactored into a
single parameterised platform. [r300512](http://reviews.llvm.org/rL300512).

* LLDB on NetBSD amd64 now supports FPRs and debug registers.

More information about the llvm-dev mailing list