LLVM Weekly - #96, Nov 2nd 2015
Welcome to the ninety-sixth 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. Subscribe to future issues at https://llvmweekly.org and pass it on to anyone else you think may be interested. Please send any tips or feedback to asb@asbradbury.org, or @llvmweekly or @asbradbury on Twitter.
News and articles from around the web
Some slides have started to appear from last week's LLVM Dev Meeting already. It seems like a good time was had by all, I'm disappointed to have missed it. To pre-empt the obvious question, yes the talks were recorded and videos will be up in the next few weeks. In particular, see the slides from Chris Lattner and Joe Groff on the Swift Intermediate Language. Slides are also up for Hans Wennborg's lightning talk on switch lowering improvements as well as Reid Kleckner and David Majnemer's talk on extending exception handling in LLVM to support MSVC's model.
Timothy Jones has written a blog post about throttled SLP and how counter-intuitively you can boost performance by limiting vectorisation. This was developed with Vasileios Porpodas who presented the paper at PACT and talked about it at last week's LLVM dev meeting.
Microsoft have begun to publicly document the PDB format with the aim of helping the Clang and LLVM communities. The original creator of PDB also shared a series of thoughts and details on Twitter.
Portable Computing Language (pocl) v0.12 has been released. pocl aims to be an open-source, performance portable implementation of the OpenCL standard. This release includes support for HSA-compliant devices and is the last one that will build with older LLVM versions.
On the mailing lists
-
Discussion about the proposed move of LLVM and related projects to the Apache License v2.0 has continued. Chris Lattner checked back in to say he's looking more closely at the concerns about the GPLv2 compatibility that would be lost in the license change.
-
Asiri Rathnayake has posted an RFC on his plan to fix and maintain the no-exceptions build of libcxx. It seems people are supportive of the idea.
-
Chris Bieneman has posted a late October update on progress moving towards CMake. The list of blocking issues continues to shrink.
-
Dave Bartolomeo has posted an RFC on adding support for emitting debug info in Microsoft's CodeView debug format.
-
Steve Montgomery has a useful answer to a question about handling pre/post increment addressing modes.
-
Amjad Aboud has posted an RFC on supporting macros in LLVM debug info.
-
Cong Hou is seeking feedback and performance reports on the newly added vectorizer-maximize-bandwidth flag.
LLVM commits
-
An improvement to codegen for ARM/ELF for global variable addresses means that Chromium for Android builds are now 4% smaller. r251322.
-
Support for the Apple WatchOS ABI and its compact unwind information has landed. r251570, r251573.
-
LLVM's bitcode format can now include an identification block. This contains a string that can be used to give information on the bitcode producer as well as an 'epoch' number, intended to increase monotonically as incompatible changes to the bitcode are made. This should allow for more user-friendly error messages upon attempting to read incompatible bitcode. r251325.
-
Experimental C bindings for the Orc JIT compilation API have been added. r251472.
-
The 'interrupt' attribute on functions is now supported for mips32r2+. r251286.
-
AARch64LoadStoreOptimizer learned to merge two halfword loads into a single 32-bit load. r251438.
Clang commits
-
Implementation of support for C++1z coroutines continues. r251387.
-
The
-Wdouble-promotion
warning was implemented, which warns when an implicit conversion increases the width of a single precision float to a double. r251588. -
Support for new
__builtin_{add,sub,mul}_overflow
builtins was added. These work generically for operands of any integer type. r251651. -
Command-line options for targetting watchOS and tvOS were added to Clang as well as ABI changes. r251706, r251710.
-
The libClang bindings now expose the
is_mutable_field
. r251410.
Other project commits
The llvm test-suite gained a new CMake+Lit build system/harness. r251431.