Alex Bradbury via llvm-dev
2021-Jun-14 18:22 UTC
[llvm-dev] LLVM Weekly - #389, June 14th 2021
LLVM Weekly - #389, June 14th 2021 ================================= If you prefer, you can read a HTML version of this email at <http://llvmweekly.org/issue/389>. Welcome to the three hundred and eighty-ninth 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 Inspired by the recent thread on introducing a 'byte' type to LLVM IR, Nicolai Hähnle blogged about [the challenges of implementing memcpy in LLVM IR](https://nhaehnle.blogspot.com/2021/06/can-memcpy-be-implemented-in-llvm-ir.html) The competition to build Clang and LLVM in the fastest time possible continues, with Takumi Nakamura [demonstrating a build in under 60s](https://twitter.com/chapuni/status/1401519362058555393) on the AWS c5a.24xlarge. Herb Sutter wrote up a [trip report from the Summer 2021 ISO C++ standard meeting](https://herbsutter.com/2021/06/09/trip-report-summer-2021-iso-c-standards-meeting-virtual/). ## On the mailing lists * Reid Kleckner kicked off an RFC thread on [revisiting the LLD-as-a-library design](https://lists.llvm.org/pipermail/llvm-dev/2021-June/151031.html). There is broad support for making LLD usable as a library, with a few concerns about how this might impact the work-in-progress MachO linker. * Chris Lattner [shared some thoughts](https://lists.llvm.org/pipermail/llvm-dev/2021-June/150995.html) about the recent [blog post on design issues in LLVM IR](https://www.npopov.com/2021/06/02/Design-issues-in-LLVM-IR.html). * Philip Reames followed up on the thread on moving to Discourse, [sharing thoughts](https://lists.llvm.org/pipermail/llvm-dev/2021-June/150999.html) on the potential drawbacks of this move. * Anastasia Stulova [proposes](https://lists.llvm.org/pipermail/cfe-dev/2021-June/068318.html) changing the default version for OpenCL kernel compilation to OpenCL 1.2 (from 1.0). * Nicolai Hähnle [responded](https://lists.llvm.org/pipermail/llvm-dev/2021-June/151060.html) to the thread on introducing a byte type to LLVM, providing a summary of the issues. * Ellis Hoag shared an RFC on [adding MachineIR Profile](https://lists.llvm.org/pipermail/llvm-dev/2021-June/151086.html), a new instrumentation pass that can produce optimisation profiles with a focus on binary size and runtime performance of the instrumented binaries. * Necip Yildiran posted an RFC on [computing, storing, and restoring conservative call graphs with LLVM](https://lists.llvm.org/pipermail/llvm-dev/2021-June/151044.html). The goal is to store sufficient information to allow the call graph to be constructed while source information is present, and store it in a non-code section of the binary. * Sameer Sahasrabuddhe responded to the previous thread about abstracting over SSA form IRs to implement generic analyses with [some statistics on the performance cost of introducing virtual calls](https://lists.llvm.org/pipermail/llvm-dev/2021-June/150990.html). ## LLVM commits * A function specialisation pass was added. As explained in the commit message, it isn't yet enabled by default but the hope is to enable it for `-O3` and above in order to close the gap for a number of benchmarks where GCC produces better code than LLVM. [c4a0969](https://reviews.llvm.org/rGc4a0969b9c14). * A post-processing step was added for block frequency info inference in order to correctly handle CFGs with irreducible loops. [0a0800c](https://reviews.llvm.org/rG0a0800c4d10c). * A new option was added to the CFGPrinter to hide 'cold' blocks from the emitted graph. [9197bac](https://reviews.llvm.org/rG9197bac297f7). * LLVM's Sequence type is now reverse-iterable. [e056903](https://reviews.llvm.org/rGe0569033e21d). ## Clang commits * The C++ P1099 "using enum" proposal was implemented. [012898b](https://reviews.llvm.org/rG012898b92cad), [b2d0c16](https://reviews.llvm.org/rGb2d0c16e91f3). * The OpenMP `#pragma omp unroll` directive was implemented. [a222361](https://reviews.llvm.org/rGa22236120f17). * A status page for tracking C proposals was added. [3a7a774](https://reviews.llvm.org/rG3a7a77494178). ## Other project commits * Fixed-width literal and cstring deduplication was implemented in the MachO linker. [04259cd](https://reviews.llvm.org/rG04259cde15a9), [5d88f2d](https://reviews.llvm.org/rG5d88f2dd9478). * mlir-lsp-server now supports textDocument/documentSymbols, allowing for easy navigation to functions/modules. [ff81a2c](https://reviews.llvm.org/rGff81a2c95ddb). * The `alloca_scope` op was added to MLIR. [fdc0d43](https://reviews.llvm.org/rGfdc0d4360b4e). * Patches implementing OMPD (an OpenMP debugging interface) started to land. [f61602b0](https://reviews.llvm.org/rGf61602b0d3fd). * Scudo was extended to support [Trusty OS](https://source.android.com/security/trusty). [2551053](https://reviews.llvm.org/rG2551053e8d8d). * LLVM's libc gained an implementation of expm1f. [4e5f8b4](https://reviews.llvm.org/rG4e5f8b4d8d9d). * range.subrange was added to libcxx. [9106047](https://reviews.llvm.org/rG9106047ee3dd).