LLVM Weekly - #195, Sep 25th 2017

Welcome to the one hundred and ninety-fifth 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

Tanya Lattner is looking for volunteers for the Hackers Lab at the upcoming LLVM Dev Meeting. "we are asking for volunteers to represent a sub-project or topic related to the meeting. These volunteers should be knowledgeable about the sub-project/topic and able to answer some basic questions or point people to the right developer to talk to. If volunteers want to go a step further, they could prepare a list of bugs that groups could work on during the Hackers Lab."

Version 1.16 of the TTA-based code-design environment (TCE) has been released. This release includes support for LLVM 5.0.

On the mailing lists

Discussions have continued about the integration of Polly in to LLVM. Johannes Doerfert has authored a detailed response. Following this discussion, Tobias Grosser has proposed a process for integrating Polly into LLVM.

Craig Topper is looking for feedback on removing some old 'autoupgrade' code for very old LLVM bitcode. Paul Robinson suggests that a we need to consider a new policy for when the bitcode backwards compatibility "guarantee" can be changed.

Review corner

The LLVM Weekly review corner serves to highlight patches that are stuck waiting awaiting review, or work from first-time contributors. See here for more information and how to submit you work for inclusion. Of course the hope is that highlighting these patches will enable LLVM Weekly readers will step up and help to get them merged. I'll be reporting back each week on any activity generated on these patches, as well as sharing a new batch. If you want your patch included you must submit it via the linked form.

"Test build gets gtest and gmock headers from local include directory on FreeBSD, which breaks the build if those are different from headers included in LLVM sources." D37415, patch by Peter Penzin.

"This adds a better error diagnostic when deleting the evaluation of a lambda expression. The [] of a lambda binds more closely to the delete, so this error suggests adding parentheses, instead of the generic one currently used ('expected expression')." D36357, patch by Nicolas Lesser.

"Clarify Clang warnings about undefined behaviour for bitshifts. It happens that the current output mislead users and makes them think that Clang is wrong." D30295, patch by Daniel Marjamäki.

"This is regarding addition of a new priority selector/heuristic for Scheduler DAG based scheduling. It adds a heuristic to pickup next instruction to schedule if its operands have already been scheduled." D34596, patch by Jatin Bhateja.

LLVM commits

An initial version of a new llvm-cfi-verify tool has landed. It intends to help verify protections inserted by LLVM's control-flow integrity schemes. r313809.

The BPF backend gained inline asm support rL313593.

Instructions have been written on how to request a patch be merged in to the LLVM release branch. r313608.

More detailed and accurate scheduling information was added for the Intel Skylake Client micro-architecture. r313613.

TableGen performance when generating -gen-dag-isel has been improved, making up for a performance regression introduced by support for parameterized register classes. A later patch further improved runtime. r313647, r313783.

Clang commits

The 'noescape' attribute is now supported. r313945.

clang-format has been clang-formatted. r313744.

A new Cross Translation Unit support library has been introduced, which can be used to load function definitions from external AST files. r313975.

Other project commits