LLVM Weekly - #288, July 8th 2019

Welcome to the two hundred and eighty-eighth 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

As mentioned last week, registration is open for the 2019 LLVM Developers' Meeting, to be held October 22-23rd in the Bay Area. The call for presentations is also open. Get your submissions in by August 12th.

The next HelloLLVM/HelloGCC social in China will take place in Hangzhou on July 20th.

On the mailing lists

I have proposed that the RISC-V backend be promoted from 'experimental' to 'official' in time for the 9.0 branch and release. See the mailing list for full details on the current status. At lowRISC, we've recently been putting it through its paces with with buildroot, where we can compile over 90% of its over 2000 packages.

Nandor Licker kicked off an RFC on ConstExprPreter, a fast interpreter for C++ constexpr to replace the existing tree evaluator.

David Greene wrote an RFC on first-class complex number support in LLVM IR.

Simon Tatham queried whether it is acceptable to have Python as a build dependency of LLVM. His motivation is to write a TableGen backend in Python, processing the output of llvm-tblgen -dump-json .

Rui Ueyama has tried out the proposed new LLVM variable naming scheme on the LLD codebase.

Bardia Mahjour shared meeting minutes from the loop optimisation working group.

Simon Pilgrim started to enumerate reasons why tablegen is slow.

LLVM commits

The scalable vector IR type was recommited again. r365203.

TableGen now allows DAG ISel patterns to override default operands. r365114.

The llvm-readelf and llvm-objcopy documentation was expanded. r364800, r365042.

BitCode/BitStream was moved to a separate library, to avoid a circular dependency when using it to parse optimisation remarks. r365091.

The X86 backend learned to avoid folding immediate operands to ADD/SUB/AND/OR/XOR when they have multiple uses and compiling for optsize. r365163.

The RISC-V backend now supports the llvm.readcyclecounter intrinsic. r365201.

Clang commits

clang-format gained a new AlignConsecutiveMacros style option. r364938.

__builtin_bit_cast was added, which is used to implement std::bit_cast . r364954.

A new bugprone-posix-return checker was implemented. r365007.

Other project commits