[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