Alex Bradbury via llvm-dev
2021-Feb-01 18:44 UTC
[llvm-dev] LLVM Weekly - #370, February 1st 2021
LLVM Weekly - #370, February 1st 2021 ==================================== If you prefer, you can read a HTML version of this email at <http://llvmweekly.org/issue/370>. Welcome to the three hundred and seventieth 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 On the LLVM blog, Serge Guelton, Sylvestre Ledru, and Josh Stone explain [bringing stack clash protection to Clang/x86](https://blog.llvm.org/posts/2021-01-05-stack-clash-protection/), describing cross-project collaboration that produced this support. David Malcolm explained [static analysis updates in GCC 11](https://developers.redhat.com/blog/2021/01/28/static-analysis-updates-in-gcc-11/). Arseny Kapoulkine posted an [analysis of generated code performance and build time for Clang 2.7 vs recent versions](https://gist.github.com/zeux/3ce4fcc3a43072b4315abde95319ecb6). This was also [discussed on HN](https://news.ycombinator.com/item?id=25976855). ## On the mailing lists * LLVM trunk [is now 13.0.0](https://lists.llvm.org/pipermail/llvm-dev/2021-January/148123.html) and 12.0.0-rc1 [has been tagged](https://lists.llvm.org/pipermail/llvm-dev/2021-January/148174.html). * James Henderson kicks off an RFC thread on [lit tests spanning multiple LLVM projects](https://lists.llvm.org/pipermail/llvm-dev/2021-January/148048.html), e.g. using both Clang and LLD. * Rafael Auler provides a [status update on the BOLT framework](https://lists.llvm.org/pipermail/llvm-dev/2021-January/148122.html), which is currently being rebased on a recent upstream LLVM. * Arthur Eubanks proposes [turning on the new pass manager by default](https://lists.llvm.org/pipermail/llvm-dev/2021-January/148098.html). This spawned a sub-thread about [bugpoint and the new pass manager](https://lists.llvm.org/pipermail/llvm-dev/2021-January/148118.html). * Min-Yih Hsu reports that [the M68k LLVM backend is almost ready to land upstream](https://lists.llvm.org/pipermail/llvm-dev/2021-January/148079.html). * Vasily Kulikov posted an RFC on [adding concurrency checks to clang-tidy](https://lists.llvm.org/pipermail/llvm-dev/2021-January/148132.html) intended to be helpful for catching calls to synchronous code in coroutines/fibers/green threads. Some respondents are concerned that this approach may be too shallow, and people would realistically want cross-module analysis. * Chris Tetrault is [seeking to enforce the minimum version of Python as 3.6](https://lists.llvm.org/pipermail/llvm-dev/2021-January/148229.html). The ensuing discussion covers the fact that the current wording of the requirements states this version is the version "known to work" rather than necessarily the minimum. * Duncan P. N. Exon Smith proposing [virtualizing compiler outputs in Clang](https://lists.llvm.org/pipermail/llvm-dev/2021-January/148124.html), allowing compiler outputs to be captured easily without going through the filesystem. * Maxim Kazantsev kicks off a discussion about [loop alignment in X86 codegen](https://lists.llvm.org/pipermail/llvm-dev/2021-January/148177.html) and the relatively large performance swings it can produce. ## LLVM commits * Targets can now define multiple CostPerUse values per register, allowing a more flexible cost model. [892e456](https://reviews.llvm.org/rG892e4567e135). * The RISC-V backend gained a mix of minor codegen improvements. [4eb4f89](https://reviews.llvm.org/rG4eb4f8963f1e), [15f66cf](https://reviews.llvm.org/rG15f66cf74969), [5d05cdf](https://reviews.llvm.org/rG5d05cdf55cdb). * PowerPC will now attempt to reduce register pressure by seeking more opportunities to generate fma instructions. [0ed4cf4](https://reviews.llvm.org/rG0ed4cf4bf3b6). * Exception handling was enabled for JITLink. [6884fbc](https://reviews.llvm.org/rG6884fbc2c4fb). * LLVM trunk is now version 13. [5369517](https://reviews.llvm.org/rG5369517d20dd). * SinkIntoLoop was moved from MachineLIM to MachineSink. [48ecba3](https://reviews.llvm.org/rG48ecba350ed6). * LLVM's DebugInfo library can now extract the unwind rows for DWARF Call Frame Information, and this is used to be produce more informative llvm-dwarfdump and llvm-objdump output. [f8122d3](https://reviews.llvm.org/rGf8122d35325d). * A new `G_ASSERT_ZEXT` generic opcode was added for GlobalISel. [2426172](https://reviews.llvm.org/rG24261729a49f). ## Clang commits * A new `/winsysroot` flag was added for clang-cl, providing similar functionality to `--sysroot` on other platforms. [8284743](https://reviews.llvm.org/rG82847436e925). * Clang now supports RISC-V architecture extension test macros, which can be used to check the presence of support for an architectural extension and the version supported. [666815d](https://reviews.llvm.org/rG666815d61bc2). * It is now possible to apply profile instrumentation to just a selected set of files or functions. [bb9eb19](https://reviews.llvm.org/rGbb9eb1982980). * `-fbinutils-version=` was added to gate ELF features on a specified binutils version. [34b60d8](https://reviews.llvm.org/rG34b60d8a5684). * clang-format can now align assignments when the group of assignments includes empty lines or comment lines. [2563147](https://reviews.llvm.org/rG256314711f3f). ## Other project commits * libomptarget gained a remote offloading plugin, allowing execution of OpenMP target regions on devices in remote hosts. [ec8f4a3](https://reviews.llvm.org/rGec8f4a38c83e). * LLDB can now run a Lua function when a breakpoint is hit. [532e420](https://reviews.llvm.org/rG532e4203c5be). * libcxx has started to implement the `<format>` header, adding initial support for the `format_error` class. [081c1db](https://reviews.llvm.org/rG081c1db02dd2).