Alex Bradbury via llvm-dev
2016-Feb-29 14:55 UTC
[llvm-dev] LLVM Weekly - #113, Feb 29th 2016
LLVM Weekly - #113, Feb 29th 2016 ================================ If you prefer, you can read a HTML version of this email at <http://llvmweekly.org/issue/113>. Welcome to the one hundred and thirteenth 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 LLVM and Clang 3.8RC3 [has been tagged](http://lists.llvm.org/pipermail/llvm-dev/2016-February/095756.html). EuroLLVM 2016 is [less than a month away](http://lists.llvm.org/pipermail/llvm-dev/2016-February/095832.html). If you want to attend, be sure to [register](http://www.llvm.org/devmtg/2016-03/#registration). The Red Hat blog has a [summary of new features in the upcoming GCC 6 release](http://developerblog.redhat.com/2016/02/23/upcoming-features-in-gcc-6/). The Meeting C++ blog has a [helpful summary of a subset of the proposals for the next C++ committee meeting](http://meetingcpp.com/index.php/br/items/current-proposals-for-c17.html). ## On the mailing lists * Chandler Carruth has suggested [moving the LLVM test-suite repository to Github](http://lists.llvm.org/pipermail/llvm-dev/2016-February/095809.html). In response to some concerns, Chris Lattner points out that using GitHub in this case [doesn't mean abandoning the current development workflow](http://lists.llvm.org/pipermail/llvm-dev/2016-February/095942.html), it just means it can be augmented with GitHub-style pull requests for those who prefer it. Chandler [summarised the thread](http://lists.llvm.org/pipermail/llvm-dev/2016-February/095943.html) and provided a list of next steps. * Sanjoy Das [pointed out a potential soundness issue with the `available_externally` linkage type](http://lists.llvm.org/pipermail/llvm-dev/2016-February/095833.html). This triggered a very long discussion. James Knight pointed out the same issue [could happen with normal functions in a shared library](http://lists.llvm.org/pipermail/llvm-dev/2016-February/095935.html). There was some back and forth between Hal Finkel and Chandler Carruth [on the best approach to addressing this problem](http://lists.llvm.org/pipermail/llvm-dev/2016-February/096025.html). * Philip Reames asks whether [a PHI depending on another PHI in the same basic block is valid](http://lists.llvm.org/pipermail/llvm-dev/2016-February/095964.html). It's currently accepted by the verifier but arguably shouldn't be. So far, nobody has argued that it should be valid. * Matthias Braun kicked off a discussion on [better defining the semantics of reserved and unallocatable registers](http://lists.llvm.org/pipermail/llvm-dev/2016-February/095947.html). After more discussion, he followed up with a [revised definition](http://lists.llvm.org/pipermail/llvm-dev/2016-February/095999.html). * David Li has posted a [proposal for supporting in-process merging of profile data](http://lists.llvm.org/pipermail/llvm-dev/2016-February/096077.html). ## LLVM commits * The Sparc backend now contains definitions for all registers and instructions defined in the Sparc v8 manual. [r262133](http://reviews.llvm.org/rL262133). * LLVM gained a basic LoopPassManager, though it currently only contains dummy passes. [r261831](http://reviews.llvm.org/rL261831). * A number of TargetInstrInfo predicates now take a reference to a MachineInstr rather than a pointer. [r261605](http://reviews.llvm.org/rL261605). * The WebAssembly backend gained redzone support for the userspace stack. [r261662](http://reviews.llvm.org/rL261662). ## Clang commits * Whole-program vtable optimisation is now available in Clang using the `-fwhole-program-vtables` flag. [r261767](http://reviews.llvm.org/rL261767). * Clang gained `__builtin_canonicalize` which returns the platform-specific canonical encoding of a floating point number. [r262122](http://reviews.llvm.org/rL262122). * A hasAnyName matcher was added. [r261574](http://reviews.llvm.org/rL261574). * The pointer arithmetic checker has been improved to report fewer false positives. [r261632](http://reviews.llvm.org/rL261632). ## Other project commits * The new ELF linker gained support for identical code folding (ICF). This reduces the size of an LLD binary by 3.6% and of a Clang binary by 2.7%. As described in the commit message, this is not a "safe" version of ICF as implemented in GNU gold, so will cause issues if the input relies on two distinct functions always having distinct addresses. [r261912](http://reviews.llvm.org/rL261912). * Polly's tree now contains an `update_check.py` script that may be useful to other LLVM devs. It updates a FileCheck-based lit test by updating the `CHECK:` lines with the actual output of the `RUN:` command. [r261899](http://reviews.llvm.org/rL261899). * LLDB gained a new set of plugins to help debug Java programs, specifically Java code JIT-ed by the Android runtime. [r262015](http://reviews.llvm.org/rL262015). * The new OpenMP 4.5 affinity API is now supported in LLVM's openmp implementation. [r261915](http://reviews.llvm.org/rL261915). * The new ELF linker gained support for the `-r` command-line option, which produces relocatable output (partial linking). [r261838](http://reviews.llvm.org/rL261838). * The CMake/lit runner for SPEC in the LLVM test-suite can now run the C CPU2006 floating point benchmarks (but not the Fortran ones). [r261816](http://reviews.llvm.org/rL261816). * The old ELF linker has been deleted from LLD. [r262158](http://reviews.llvm.org/rL262158).