[llvm-dev] LLVM Weekly - #187, Jul 31st 2017

Alex Bradbury via llvm-dev llvm-dev at lists.llvm.org
Mon Jul 31 11:29:38 PDT 2017


LLVM Weekly - #187, Jul 31st 2017
=================================

If you prefer, you can read a HTML version of this email at
<http://llvmweekly.org/issue/187>.

Welcome to the one hundred and eighty-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](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

OpenBSD has [switched](http://marc.info/?l=openbsd-cvs&m=150109829003860&w=2)
to using Clang as the default compiler for amd64 and i386 platforms.

[KLEE](http://klee.github.io/) version 1.4.0 has been
[released](https://github.com/klee/klee/releases/tag/v1.4.0). Amazingly, the
KLEE symbolic execution engine seems to have escaped a mention in LLVM Weekly
so far. Reminder to anyone building projects built on or relevant to LLVM:
dropping me an email about your latest release is always welcome, if you don't
email me or llvm-dev there's a good chance I won't see it.

ELLCC [has seen a new release](http://ellcc.org/?p=79773), adding full support
for shared libraries and a new ellcc helper utility.

LLVM 5.0.0-rc1 [has been
tagged](http://lists.llvm.org/pipermail/llvm-dev/2017-July/115882.html).

Version 1.2 of the
[Clazy](https://phabricator.kde.org/source/clazy/browse/master/README.md)
Clang plugin [has been released](https://www.kdab.com/clazy-1-2-released/).
This adds a number of new checks for common Qt coding issues, and prebuilt
Windows binaries are now available.


## On the mailing lists

* Alex Lorenz has written an RFC on [the initiation of refactoring actions in
Clang](http://lists.llvm.org/pipermail/cfe-dev/2017-July/054831.html). This
RFC is part of the effort to upstream refactoring features used in XCode 9.

* There has been a large amount of follow-on discussion to last week's thread
about [IR-level interprocedural
outlining](http://lists.llvm.org/pipermail/llvm-dev/2017-July/115666.html).
For the more recent discussions, Jessica Paquette's
[response](http://lists.llvm.org/pipermail/llvm-dev/2017-July/115759.html) is
a good starting point. Some of the commenters observe that if possible,
sharing common code between MachineOutliner and this new IR-level outliner
would be beneficial.

* Ever wanted a summary of register classes in the X86 target? Craig Topper
[has you
covered](http://lists.llvm.org/pipermail/llvm-dev/2017-July/115920.html).

* Why is llvm.stacksave() necessary? David Chisnall [has the
answer](http://lists.llvm.org/pipermail/llvm-dev/2017-July/115806.html) in his
responses.


## LLVM commits

* llvm.dbg.value no longer takes an offset parameter.
[r309426](http://reviews.llvm.org/rL309426).

* LazyValueInfo has been improved by constant-propagating zero extension of a
switch condition value through case edges. This reduces code size and
performance of the Python 2.7 eval loop by about 5%.
[r309415](http://reviews.llvm.org/rL309415).

* Development has started on llvm-rc, which aims to provide the core
functionality of MS Visual Studio Resource Converter.
[r308940](http://reviews.llvm.org/rL308940).

* The ARM backend has been updated to use C++11 enum classes for the majority
of enums. [r309287](http://reviews.llvm.org/rL309287).

* Bitrotted support for aliases in MergeFunctions has been removed.
[r309313](http://reviews.llvm.org/rL309313).


## Clang commits

* The `-nostdlib++` flag has been introduced, which disables linking in the
C++ standard library. [r308997](http://reviews.llvm.org/rL308997).

* The Undefined Behavior Sanitizer (UBSan) learned to detect undefined
behaviour in calls to builtins. [r309459](http://reviews.llvm.org/rL309459).


## Other project commits

* The libcxxabi demangler has been largely rewritten. The implementation now
produces an abstract syntax tree, which results in higher performance than the
previous std::string manipulation.
[r309340](http://reviews.llvm.org/rL309340).

* The support for 'qurantined' memory in the Scudo secure memory allocator has
been overhauled. The quarantine aims to mitigate against use-after-free
attacks by delaying the reallocation of memory.
[r308884](http://reviews.llvm.org/rL308884).

* Polly's Simplify pass gained support for write access coalescing.
[r309489](http://reviews.llvm.org/rL309489).


More information about the llvm-dev mailing list