LLVM Weekly - #150, Nov 14th 2016

Welcome to the one hundred and fiftieth 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.

News and articles from around the web

The author of the Cretonne code generator has written a document comparing it to LLVM. There has also been discussion on using Cretonne as a backend for Rust.

You may be interested in the recently released 'bloaty' tool, a size profiler for binaries.

There will be an LLVM social today in Salt Lake City, which should be convenient for anyone attending SC16.

The next LLVM social in Paris will take place on November 22nd. Note registration is required.

On the mailing lists

LLVM commits

The previously proposed type-safe general purpose formatting library has been added in the form of the llvm::formatv function. r286682.

Initial documentation for XRay in LLVM has been committed. r286319.

getelementptr indices can now carry an inrange attribute. r286514.

Scripts to aid working with a git monorepo have been committed to the LLVM tree. Currently only 'push' from the monorepo is supported. Support has also been added to the CMake build system for monorepo-like directory layout (at this point, still unofficial). r286138, r286162.

SystemZ's tablegen instruction definitions have undergone some refactoring. r286263, r286268.

Support was dropped for 'old style' scalar type-based alias analysis tags, though the textual and bitcode 'upgrade' code is still present. r286291.

A new formatter was added to help pretty printing hex bytes into a raw_ostream . r286316.

Operand bundles are no longer considered 'experimental'. r286428.

LLVM gained an initial llvm-strings tool, as a replacement to the binutils strings. It is not yet feature complete. It feels like contributing towards feature parity with binutils strings might be a good starter project for someone wanting to contribute to LLVM. r286556.

Basic plumbing has been added for GlobalISel with the ARM backend - enough to select a ret void . r286573.

ORC RPC utilities have seen a refactoring and some new features, which are described in the commit message. r286620.

The AMDGPU backend now supports half-precision floats. r286753.

Clang commits

The output of -ast-print is now valid C++ code, instead of almost valid C++ code. r286439.

A new optimisation option, -Og was added. In the future, this may disable certain optimisation in order to improve debuggability. r286602.

Other project commits