[llvm-dev] LLVM Weekly - #378, March 29th 2021

Alex Bradbury via llvm-dev llvm-dev at lists.llvm.org
Mon Mar 29 11:16:46 PDT 2021


LLVM Weekly - #378, March 29th 2021
===================================

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

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

The next post in the series about Cling is [now
available](https://blog.llvm.org/posts/2021-03-25-cling-beyond-just-interpreting-cpp/),
discussing how Cling has been extended to support template instantiation on
demand and to act as an "interpreter/compiler as a service".

On the LLVM blog, Arthur Eubanks provided a write-up of [the 'new' pass
manager](https://blog.llvm.org/posts/2021-03-26-the-new-pass-manager/),
detailing what it is, work that has been done to transition so far, and next
steps.

Crystal, a programming language with Ruby-inspired syntax using LLVM as it's
codegen backend has just had its [1.0
release](https://crystal-lang.org/2021/03/22/crystal-1.0-what-to-expect.html).


## On the mailing lists

* Jason Molenda posted an RFC on [adding a new packet type to help describe a
  standalone binary for
  LLDB](https://lists.llvm.org/pipermail/lldb-dev/2021-March/016806.html).

* [Simon
  Cook](https://lists.llvm.org/pipermail/llvm-dev/2021-March/149367.html) and
  [John
  Byrd](https://lists.llvm.org/pipermail/llvm-dev/2021-March/149479.html)
  further discussed the potential of using Tablegen to generate an emulator
  core.

* Sjoerd Meijer started a discussion on [adding a function specialisation pass
  to LLVM](https://lists.llvm.org/pipermail/llvm-dev/2021-March/149380.html),
  noting that's it's frequently raised as a reason for performance differences
  between GCC and LLVM and that the cost model is where previous proposals
  have had issues.

* Philipp Reames [shared a patch to better document community norms around
  reverts](https://lists.llvm.org/pipermail/llvm-dev/2021-March/149409.html).

* As part of the move from Bugzilla to GitHub, Anton Korobeynikov is
  [requesting](https://lists.llvm.org/pipermail/llvm-dev/2021-March/149441.html)
  that users of the LLVM Bugzilla fill out a form to associate any emailed
  addresses used for that with their GitHub username.

* Zequan Wu kicked off a thread on [annotating global functions and variables
  to prevent identical code
  folding](https://lists.llvm.org/pipermail/llvm-dev/2021-March/149352.html)
  during linking.

* Clement Courbet initiated an RFC discussion on [adding range metadata to
  array
  subscripts](https://lists.llvm.org/pipermail/llvm-dev/2021-March/149390.html),
  generating a quite a lot of discussion.


## LLVM commits

* Lit's progress indicator is now more accurate, as it takes into account
  timings from previous runs.
  [962339a5](https://reviews.llvm.org/rG962339a5eca2).

* As part of the long-running OpaquePtr work, the inalloca attribute now has a
  mandatory type argument. [4fefed6](https://reviews.llvm.org/rG4fefed65637e).

* A `vscale_range` IR function attribute was added, representing the minimum
  and maximum values vscale can take.
  [48f5a39](https://reviews.llvm.org/rG48f5a392cb73).

* A new llvm.experimental.stepvector intrinsic was added.
  [748ae52](https://reviews.llvm.org/rG748ae5281d4f).

* GlobalISel learned to lower funnel shifts.
  [b24436a](https://reviews.llvm.org/rGb24436ac96bd).

* targetShrinkDemandedConstant for RISC-V will now preserve `(and X,
  0xffffffff)`, which simplifies pattern matching.
  [c40cea6](https://reviews.llvm.org/rGc40cea6f083a).

* An LLJITWithRemoteDebugging example was added.
  [258f055](https://reviews.llvm.org/rG258f055ed936).


## Clang commits

* The RangeSet datastructure used by the static analyzer was redesigned.
  [02b51e5](https://reviews.llvm.org/rG02b51e5316cd).

* Documentation was improved for the `[[clang::lifetimebound]]` attribute.
  [5fab603](https://reviews.llvm.org/rG5fab60377c1a).

* For C++2b (and as an extension, for previous standards with a warning),
  lambda without a parameter list are accepted.
  [0620e6f](https://reviews.llvm.org/rG0620e6f4b76a).


## Other project commits

* A pre-codegen rewrite pass was added for Flang.
  [97d8972](https://reviews.llvm.org/rG97d8972c9cd1).

* LLDB gained a ScriptedProcess process plugin.
  [dd391e1](https://reviews.llvm.org/rGdd391e1ef762).

* NoTerminator traits were introduced for MLIR, allowing operations with a
  single block region to not provide a terminator.
  [973ddb7](https://reviews.llvm.org/rG973ddb7d6e96).


More information about the llvm-dev mailing list