LLVM Weekly - #133, Jul 18th 2016

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

I'm now back in the UK after being in Boston for the fourth RISC-V workshop along with my colleagues on the lowRISC project to produce a complete open-source SoC. You may be interested in my notes from talks at the event.

News and articles from around the web

The LLVM Foundation is advertising for applicants to become a board member. If you are interested in becoming a board member, note this current application round closes on July 27th.

Sanjoy Das has written a blog post on inter-procedural optimisation and derefinement.

On the mailing lists

LLVM commits

GVNHoist, a code hoisting pass based on global value numbering has been added. This hoists duplicated computations with the goal of reducing the size of functions before inline heuristics so as to reduce the total cost of function inlining. r275561.

The first patch implementing 'hotness' attributes has landed. Currently, for missed optimisation remarks for loop distribution it will indicate the hotness (the multiplication of the block frequency with the function entry count). r275583.

A new LazyBFI (lazy block frequency info) pass was added. With this pass, block frequencies are computed only when the results are explicitly requested by the analysis client. r275250.

LLVM's ADT library gained an LLVM_MARK_AS_BITMASK_ENUM define, which can be used to enable bitwise operations on enums without a static_cast . r275292.

llvm-cov learnt to use multiple threads to speed up report generation. r275321.

The XRay function tracing framework is starting to land, with the first patch adding support for entry and exit sleds for functions. r275367.

An improved algorithm is now used for selecting a base constant in constant hoisting. r275382.

Various SelectionDAG methods (getLoad, getStore, and more) have been modified to take a single flags argument (bitset) rather than multiple booleans. r275592.

CFLAA gained an initial 'CFLAnders' implementation. r275602.

Clang commits

-fxray-instrument and -fxray-instruction-threshold were added to control XRay function tracing. r275330.

Implementation of C++17's init-statement for if and switch has been completed now semantic analysis and code generation has been added. r275350.

The new -fno-pch-timestamp option will disable inclusion of timestamps in a PCH file, and is intended to allow distributed build systems to use PCH. r275267.

clang-rename gained some documentation. r275388.

Other project commits