LLVM Weekly - #87, Aug 31st 2015

Welcome to the 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. 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@asbradbury.org, or @llvmweekly or @asbradbury on Twitter.

It's a bank holiday weekend here in the UK, so apologies that you're reading
this a few hours later than usual. As a quick reminder, if you're able to be
in Geneva for the 9th-11th October then you should definitely come along to
ORConf.

News and articles from around the web

At the time of writing, LLVM 3.7.0 has not yet seen its official release, but
it has been
tagged. The
final release should be out within the next day or so. Congratulations to
everyone involved.

LLVM commits

The 'kaleidoscope' tutorial has seen a major update. Now, rather than
introducing MCJIT it describes how to use ORC, building a custom JIT called
KaleidoscopeJIT. r246002.

WebAssembly backend implementation work has been continuing over the past
few weeks. The individual commits tend to be small and focused (as good
commits should be). I mainly wanted to include a mention to highlight how work
is ongoing.
e.g. this recent commit added support for emitting simple call s-expressions.
r245986.

The documentation on statepoints now has more to say about base pointers and
related assumptions and optimisations.
r246103.

Constant propagation is enabled for more single precisions math functions,
such as acosf, powf, logf. r246194.

The function llvm::splitCodeGen has been introduced in order to support
the implementation of parallel LTO code generation. It uses SplitModule to
split the module in to linkable partitions that are distributed among threads
to be codegenned. r246236.

There's been another change to DebugInfo. DISubprogram definitions must now
be marked as distinct. The commit message includes a suggested script for
updating IR. r246327.

Chandler has been doing some refactoring of the ARM target parsing code with
the hope of making it more efficient. He's reduced the cases where the code is
called, which has a noticeable effect on some LLVM timings (e.g. check-llvm
with non-optimized builds is 15 seconds faster).
r246370,
r246378.

Clang commits

A NullabilityChecker has been introduced, which is designed to catch a
number of nullability-related issues.
r246105.

Other project commits

ThreadSanitizer is now enabled for AArch64 with 42-bit virtual addressing on
Linux. r246330.

libcxx now contains release goals for 3.8 in its TODO.txt. This includes the
Filesystem TS and the asynchronous I/O TS.
r245864.

LLD's ELF linker gained a basic AMDGPU ReaderWriter that enables it to emit
binaries that can be consumed by the HSA runtime.
r246155.