[llvm-dev] LLVM Weekly - #375, March 8th 2021

Alex Bradbury via llvm-dev llvm-dev at lists.llvm.org
Mon Mar 8 10:42:07 PST 2021


LLVM Weekly - #375, March 8th 2021
==================================

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

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

Michał Górny [blogged about work on LLDB FreeBSD
support](https://www.moritz.systems/blog/freebsd-legacy-process-plugin-removed/),
detailing work already done, and work planned for the future.

Scott Wolchok blogged about [parameter passing in C and
C++](https://wolchok.org/posts/parameter-passing/).


## On the mailing lists

* Konrad Trifunovic posted an RFC on [upstreaming a proper SPIR-V backend to
  LLVM](https://lists.llvm.org/pipermail/llvm-dev/2021-March/148985.html),
  i.e. an LLVM backend that targets the SPIR-V portable IR format. The initial
  target would be SPIR-V for compute, with potential future extensions for 3d
  shaders. The RFC provides a brief summary of the previous discussions and
  areas where consensus wasn't reched (specifically, the design choice of
  creating a translator library wrapped within a target, a 'proper' target
  using SelectionDAG/GlobalISel, or a binary emission layer). This resulted in
  a lengthy thread that I couldn't hope to fully summarise. One notable line
  of discussion was around [whether the goals could be achieved using
  MLIR](https://lists.llvm.org/pipermail/llvm-dev/2021-March/148926.html).

* Tanya Lattner shared that [the deadline for mentors to submit Outreachy
  project proposals has been extended to March
  11th](https://lists.llvm.org/pipermail/llvm-dev/2021-March/149038.html).
  Unfortunately, at the time of writing that email, nobody had yet submitted a
  project idea or volunteered to be a mentor.

* Kito Cheng proposed an RFC on [proposed behaviour of `__fp16` for
  RISC-V](https://lists.llvm.org/pipermail/cfe-dev/2021-March/067847.html).
  Sjoerd Meijer [outlined some concerns with this
  proposal](https://lists.llvm.org/pipermail/cfe-dev/2021-March/067867.html).

* Louis Dionne initiated a discussion on [which compilers and compiler
  versions libc++ should claim to
  support](https://lists.llvm.org/pipermail/libcxx-dev/2021-March/001082.html).

* Tom Stellard [updated on the status of the 12.0.0
  release](https://lists.llvm.org/pipermail/llvm-dev/2021-March/148936.html),
  indicating it will be delayed by 1-2 weeks.

* Kristof Beyls [re-advertised the agenda and notes doc for the LLVM security
  group](https://lists.llvm.org/pipermail/llvm-dev/2021-March/148985.html),
  who will be meeting next on 16th March.

* Louis Dionne proposed [improvements to the libc++ approval
  policy](https://lists.llvm.org/pipermail/libcxx-dev/2021-March/001091.html),
  which would increase the number of people approving patches.

* LLVM GPU News Issue #7 [is
  out](https://lists.llvm.org/pipermail/llvm-dev/2021-March/149017.html).

* David Zarzycki proposed [creating
  llvm/Support/InternalLimts.h](https://lists.llvm.org/pipermail/llvm-dev/2021-March/149010.html)
  to contain essential constants such as the alignment limit.

* Tanya Lattner warns that [subscription to LLVM's mailman lists has had to be
  disabled
  temporarily](https://lists.llvm.org/pipermail/llvm-dev/2021-March/149027.html)
  due to someone abusing the sign-up form to generate subscription
  confirmation emails maliciously.

* Min-Yih Hsu [notes that the new experimental M68k backend is abou to
  land](https://lists.llvm.org/pipermail/llvm-dev/2021-March/149040.html).

* ORC JIT Weekly #31 [is
  out](https://lists.llvm.org/pipermail/llvm-dev/2021-March/148900.html) (in
  fact, it was out last week and narrowly missed that LLVM Weekly issue). It
  provides an update on debugger support for JITLink and the JITLink design
  document.

* David Rector created a thread to discuss [a benchmark indicating Clang
  evaluates constexpr substantially more slowly than
  GCC](https://lists.llvm.org/pipermail/cfe-dev/2021-March/067809.html).
  Richard Smith
  [noted](https://lists.llvm.org/pipermail/cfe-dev/2021-March/067810.html)
  this was due to GCC memoizing constant evaluations. In a trial where that
  optimisation isn't possible, Clang out-performs GCC.


## LLVM commits

* The llvm-mca static performance analysis tool now support in-order CPUs such
  as the Arm Cortex-A55. [d791695](https://reviews.llvm.org/rGd791695cb517).

* LoopVectorize was updated to generate runtime checks earlier in compilation,
  allowing a more precise estimate of the actual cost of the checks (which
  will be used in follow-up patches).
[53dacb7](https://reviews.llvm.org/rG53dacb7b6775).

* A new JitLink debug support plugin was introduced, for now targeting ELF
  x86-64. [ef23892](https://reviews.llvm.org/rGef2389235c5d).

* The loop-invariant code motion pass was optimised, resulting in a ~1.8%
  geomean improvement on CTMark at O3.
[3d8f842](https://reviews.llvm.org/rG3d8f842712d4).

* llvm-cov learned to cache file status information, resulting in a huge
  speedup. [9d8a3e7](https://reviews.llvm.org/rG9d8a3e75b442).

* "Dangling pseudo probes" were introduced. These are probes associated with
  an empty block (e.g. one where all instructions were optimised away).
  [ad2a59f](https://reviews.llvm.org/rGad2a59f58404).

* The various LLVM IR syntax files were refreshed to support all current
  attributes. [2da21a1](https://reviews.llvm.org/rG2da21a1bd466).

* The previous MemDep-based implementation of DeadStoreElimination was
  removed, as the MemorySSA-backed version has been enabled by default without
  issue for some time. [176bbca](https://reviews.llvm.org/rG176bbcae1113).


## Clang commits

* The ShortNamespaceLine option was added to clang-format, allowing
  customisation of when a namespace is deemed too short to format.
  [6ca5281](https://reviews.llvm.org/rG6ca52815fb3c).

* Clang can apply the `noundef` attribute at call sites when an argument or
  return value may never contain uninitialised bits. This allows
  MemorySanitizer to reduce the amount of generated instrumentation, reducing
  code size by up to 17% according to the commit message.
  [10264a1](https://reviews.llvm.org/rG10264a1b21ae).


## Other project commits

* The new Darwin backend for LLD is now used by default (as noted in the
  commit message, this switch is now happening for LLVM 13 rather than LLVM
  12). [415c0cd](https://reviews.llvm.org/rG415c0cd698a8).

* libunwind gained support for RV32 hard-float and soft-float RV32 and RV64.
  [b17d464](https://reviews.llvm.org/rGb17d46430fce).

* C bindings were added for `mlir::ExecutionEngine`, allowing the JIT to be
  invoked from the C API. [86c8a78](https://reviews.llvm.org/rG86c8a7857dc3).


More information about the llvm-dev mailing list