LLVM Weekly - #157, Jan 2nd 2017

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

News and articles from around the web

Happy New Year! Today marks three whole years of LLVM Weekly issues - in fact an unbroken streak of 157 consecutive Mondays so far. Thank you to all of my readers, especially those who have helped keep me motivated by providing feedback or have assisted in suggesting content for inclusion. I hope you all have a happy and productive 2017, punctuated of course by a new LLVM Weekly issue in your inbox at the start of every week.

A group at the UFMG compilers laboratory have released DawnCC, a tool to automatically insert OpenACC or OpenMP pragmas.

The first bay-area LLVM social of 2017 will be taking place this Tuesday the 5th at 7pm.

On the mailing lists

Davide Italiano has shared some thoughts on issues with sparse conditional constant propagation (SCCP) in the presence of undef, and some ideas on addressing them.

Piotr Padlewski has kicked off a discussion on enforcing or further encouraging the use of clang-tidy in LLVM development. The thread also includes a related but somewhat parallel discussion on the use of emplace_back in LLVM.

Vedant Kumar has provided a really helpful description of the definition of clobber and local dependence in the context of DeadStoreElimination.

Davide Italiano has put out a call for testers to help identify remaining issues with the NewGVN pass.

LLVM commits

The new pass manager is continuing to make progress. With this commit, the whole LLVM test suite can be built at O3 using it. r290664.

A new 'element-wise atomic' memcpy intrinsic has been introduced. r290708.

AVX-512 instructions that can be encoded with a shorter 'VEX' prefix encoding, now will be. r290663.

Module metadata is now indexed in bitcode, which allows the reader to load records lazily on-demand. r290690.

Clang commits

Relaxed matching of template template arguments in C++17 was implemented, but is disabled by default. r290792.

A new checker was added for suspected misuse of enums. r290600.

Other project commits