LLVM Weekly - #327, Apr 6th 2020

Welcome to the three hundred and twenty-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

Bruce Dawson wrote a detailed blog post analysing Chromium build times.

Version 1.5 of pocl (Portable Computing Language) has been released. Is adds support for Clang/LLVM 10.0, a kernel profiling feature, and various fixes and performance improvements.

A new version of JLang, a Java-to-LLVM ahead-of-time compiler has been released. It supports all Java 7 language features except for some reflection support.

On the mailing lists

LLVM commits

Two passes were added to mitigate Load Value Injection (LVI) on X86. The first replaces each indirect call/jump with a direct call to a thunk, while the second replaces RET instructions with a new instruction sequence. 5b519cf, f95a67d.

Loop Closed SSA Form was explained as part of LLVM's loop terminology documentation. 229cda9.

The semantics of branch on undef were clarified in the language reference doc. 05f0e59.

The UnifyLoopExits pass was added, and an option was added to the AMDGPU backend to use it. 3cbbded.

Support was added for emitting and parsing ELF attribute sections for RISC-V. This extracted common parsing logic from the existing Arm ELF attribution section support. 581ba35, 501522b.

The style for error and warning messages was documented. 6aacdd6.

The waymarking algorithm (allowing backtracing an arrays head from a pointer into it) was implemented as a utility in LLVM's ADT library. 154d517.

llvm-dwarfdump gained a new --show-sections-sizes option which will print the number of bytes within the debug sections. 5e508b9.

It's now possible for lit.site.cfg to contain relative paths, which provides greater support for building on one machine and running the test on another. fb80b6b.

Clang commits

clangd now enables a set of clang-tidy checks by default. 164ed7b.

Initial support was added for OpenMP 5.0 iterator expressions. 13a1504.

Other project commits