Alex Bradbury via llvm-dev
2017-Apr-24 09:47 UTC
[llvm-dev] LLVM Weekly - #173, Apr 24th 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).