[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
<http://llvmweekly.org/issue/173>.

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
plugin](https://www.kdab.com/uncovering-32-qt-best-practices-compile-time-clazy/),
which has a variety of checks and warnings for Qt codebases.

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

I've just spotted that another language using LLVM for codegen,
[Pony](https://www.ponylang.org/), now has a [weekly development
summary](https://www.ponylang.org/blog/2017/04/last-week-in-pony---april-23-2017/).

"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
community](http://lists.llvm.org/pipermail/llvm-dev/2017-April/112300.html),
while Daniel Berlin [responded to many of these
points](http://lists.llvm.org/pipermail/llvm-dev/2017-April/112302.htm).

* 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
progress](http://lists.llvm.org/pipermail/llvm-dev/2017-April/112203.html).

* Gerolf Hoflehner [explains more about the use of CTMark for tracking LLVM
compiler-time
performance](http://lists.llvm.org/pipermail/llvm-dev/2017-April/112166.html).


## 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.
[r300464](http://reviews.llvm.org/rL300464).

* 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.
[r300986](http://reviews.llvm.org/rL300986),
[r301005](http://reviews.llvm.org/rL301005).

* 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),
[r300840](http://reviews.llvm.org/rL300840),
[r300842](http://reviews.llvm.org/rL300842).


## Clang commits

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

* `#pragma clang attribute` has been introduced. This can be used to apply an
attribute to multiple declarations by 'pushing' or 'popping' the attribute.
[r300556](http://reviews.llvm.org/rL300556).

* git-clang-format is now mostly Python 3 compatible.
[r300891](http://reviews.llvm.org/rL300891).


## Other project commits

* LLD gained support for `--compress-debug-sections`.
[r300444](http://reviews.llvm.org/rL300444).

* 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.
[r300548](http://reviews.llvm.org/rL300548).


More information about the llvm-dev mailing list