Alex Bradbury via llvm-dev
2017-Jul-31 18:29 UTC
[llvm-dev] LLVM Weekly - #187, Jul 31st 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).