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 https://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
-
The fourth MLIR (bi)weekly newsletter is now available, offering the usual mix of development highlights.
-
Ten Tzen shared an RFC on completing support for windows structured exception handling by implementing support for catching hardware exceptions and local unwind. Reid Kleckner suggested separating consideration of the two features.
-
ORC JIT Weekly #10 is out, covering interpose fixes and universal binary support.
-
Jon Roelofs shared ideas on improving FileCheck, highlighting areas where current FileCheck usage may silently hide failures.
-
Gauthier proposed removing the use of the waymarking algorithm from Use. This increases peak memory usage slightly but also slightly improves compile time. Responses so far are in favour as long as nobody has strong arguments for retaining it.
-
Sander De Smalen highlighted that biweekly LLVM SVE/SVE2 sync up calls are taking place every other Thursday.
-
Sebastian Perta has been writing an LLVM backend for the Renesas RL78 MCU and is seeking feedback on questions such as supporting C language extensions from the Renesas RL78 commercial compiler.
-
River Riddle has written a Chrome extensions to monitor the status of code reviews on LLVM phabricator.
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
-
The new LLD Mach-O backend has started to land. 03f43b3.
-
The Dexter-based debuginfo regression suite now supports Windows. b6d2212.
-
The MLIR subproject added a tablegen backend for defining Pass information. 8155e41, e3d834a, 3dddd89, 9a277af, 9be4be3.
-
LLVM's libc gained a strlen implementation. 1fcfd30.
-
An alternative Lit test format was added for libcxx tests with the goal of making it easier to run the tests on an embedded device or build with a specific SDK. 80a2ddf.
-
MLIR now has an example of a minimal out-of-tree dialect implementation. 160f5aa.