[llvm-dev] LLVM Weekly - #327, Apr 6th 2020

Alex Bradbury via llvm-dev llvm-dev at lists.llvm.org
Mon Apr 6 12:04:23 PDT 2020


LLVM Weekly - #327, Apr 6th 2020
================================

If you prefer, you can read a HTML version of this email at
<http://llvmweekly.org/issue/327>.

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](https://www.linkedin.com/in/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 at 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](https://randomascii.wordpress.com/2020/03/30/big-project-build-times-chromium/).

Version 1.5 of pocl (Portable Computing Language) [has been
released](http://lists.llvm.org/pipermail/llvm-dev/2020-April/140605.html). 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](http://lists.llvm.org/pipermail/llvm-dev/2020-March/140521.html). 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](https://llvm.discourse.group/t/mlir-news-4th-edition-4-3-2020/755),
offering the usual mix of development highlights.

* Ten Tzen shared an RFC on [completing support for windows structured
exception
handling](http://lists.llvm.org/pipermail/llvm-dev/2020-March/140541.html) by
implementing support for catching hardware exceptions and local unwind. Reid
Kleckner [suggested separating consideration of the two
features](http://lists.llvm.org/pipermail/llvm-dev/2020-April/140615.html).

* ORC JIT Weekly #10 [is
out](http://lists.llvm.org/pipermail/llvm-dev/2020-April/140673.html),
covering interpose fixes and universal binary support.

* Jon Roelofs shared ideas on [improving
FileCheck](http://lists.llvm.org/pipermail/llvm-dev/2020-April/140610.html),
highlighting areas where current FileCheck usage may silently hide failures.

* Gauthier proposed [removing the use of the waymarking algorithm from
Use](http://lists.llvm.org/pipermail/llvm-dev/2020-April/140542.html). 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](http://lists.llvm.org/pipermail/llvm-dev/2020-April/140555.html).

* Sebastian Perta has been writing an LLVM backend for the Renesas RL78 MCU
and is [seeking
feedback](http://lists.llvm.org/pipermail/llvm-dev/2020-April/140546.html) 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](http://lists.llvm.org/pipermail/llvm-dev/2020-March/140484.html).


## 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](https://reviews.llvm.org/rG5b519cf1fc6),
[f95a67d](https://reviews.llvm.org/rGf95a67d8b8a).

* Loop Closed SSA Form was explained as part of LLVM's loop terminology
documentation. [229cda9](https://reviews.llvm.org/rG229cda968cb).

* The semantics of branch on undef were clarified in the language reference
doc. [05f0e59](https://reviews.llvm.org/rG05f0e598ab2).

* The UnifyLoopExits pass was added, and an option was added to the AMDGPU
backend to use it. [3cbbded](https://reviews.llvm.org/rG3cbbded68c2).

* 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](https://reviews.llvm.org/rG581ba35291a),
[501522b](https://reviews.llvm.org/rG501522b5b2a).

* The style for error and warning messages was documented.
[6aacdd6](https://reviews.llvm.org/rG6aacdd6083d).

* The waymarking algorithm (allowing backtracing an arrays head from a pointer
into it) was implemented as a utility in LLVM's ADT library.
[154d517](https://reviews.llvm.org/rG154d517bc7d).

* llvm-dwarfdump gained a new `--show-sections-sizes` option which will print
the number of bytes within the debug sections.
[5e508b9](https://reviews.llvm.org/rG5e508b9bac0).

* 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](https://reviews.llvm.org/rGfb80b6b2d58).


## Clang commits

* clangd now enables a set of clang-tidy checks by default.
[164ed7b](https://reviews.llvm.org/rG164ed7b1d04).

* Initial support was added for OpenMP 5.0 iterator expressions.
[13a1504](https://reviews.llvm.org/rG13a1504ffb9).


## Other project commits

* The new LLD Mach-O backend has started to land.
[03f43b3](https://reviews.llvm.org/rG03f43b3aca3).

* The Dexter-based debuginfo regression suite now supports Windows.
[b6d2212](https://reviews.llvm.org/rGb6d2212f527).

* The MLIR subproject added a tablegen backend for defining Pass information.
[8155e41](https://reviews.llvm.org/rG8155e41ac61),
[e3d834a](https://reviews.llvm.org/rGe3d834a54af),
[3dddd89](https://reviews.llvm.org/rG3dddd8969f4),
[9a277af](https://reviews.llvm.org/rG9a277af2d42),
[9be4be3](https://reviews.llvm.org/rG9be4be3e532).

* LLVM's libc gained a strlen implementation.
[1fcfd30](https://reviews.llvm.org/rG1fcfd30fae7).

* 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](https://reviews.llvm.org/rG80a2ddf65cc).

* MLIR now has an example of a minimal out-of-tree dialect implementation.
[160f5aa](https://reviews.llvm.org/rG160f5aa65fa).


More information about the llvm-dev mailing list