[llvm-dev] LLVM Weekly - #407, October 18th 2021

Alex Bradbury via llvm-dev llvm-dev at lists.llvm.org
Mon Oct 18 10:54:32 PDT 2021


LLVM Weekly - #407, October 18th 2021
=====================================

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

Welcome to the four hundred and 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

George Mitenkov, Nuno Lopes and Juneyoung Lee have written up a [detailed
article about their previous proposal to add a byte
type](https://gist.github.com/georgemitenkov/3def898b8845c2cc161bd216cbbdb81f)
This article summarises the previous discussion and tries to clarify raised
concerns. Discussion continues on llvm-dev in a [companion
thread](https://lists.llvm.org/pipermail/llvm-dev/2021-October/153295.html).

Pavel Loktev writes on the LLVM blog about [generating relocatable code for
embedded Arm
processors](https://blog.llvm.org/posts/2021-10-01-generating-relocatable-code-for-arm-processors/).

The recording from the September 2021 Women in Compilers and Tools meetup is
[now available](https://www.youtube.com/watch?v=1-H8RTwCpwA), featuring an
interview with Teresa Johnson.


## On the mailing lists

* Anton Korobeynikov has provided [an update on the bugzilla to GitHub issues
  migration](https://lists.llvm.org/pipermail/llvm-dev/2021-October/153240.html).
  A [further
  update](https://lists.llvm.org/pipermail/llvm-dev/2021-October/153293.html)
  reported that a test migration was attempted and the first set of issues
  identified.

* Yitzhak Mandelbaum posted a detailed RFC on [adding a dataflow analysis
  framework for the Clang
  AST](https://lists.llvm.org/pipermail/cfe-dev/2021-October/069098.html) (it
  seems the original post didn't make it to the list, but the plain text
  content is quoted in the linked message). The proposal observes that a
  number of clang-tidy checks and compiler warnings are dataflow-based, but
  this is done in an ad-hoc fashion rather than reusing the same core
  functionality.

* Martin Storsjö shared an RFC on [adding support for preferring forward slash
  paths on
  Windows](https://lists.llvm.org/pipermail/llvm-dev/2021-October/153274.html),
  noting this is one of the main downstream patches in MSYS2, and a barrier to
  Clang on Windows being used as a drop-in replacement for GCC.

* Louis Dionne posted a [detailed summary of upcoming changes of how libc++,
  libc++abi, and libunwind are
  built](https://lists.llvm.org/pipermail/llvm-dev/2021-October/153238.html),
  including a list of anticipated questions and answers.

* Martin Brænne
  [proposed](https://lists.llvm.org/pipermail/cfe-dev/2021-October/069087.html)
  introducing a new annotate_type attribute, allowing an attribute to be added
  to a type for use in static analysis tools.

* LLVM GPU News #21 [is
  out](https://lists.llvm.org/pipermail/llvm-dev/2021-October/153309.html).

* ORC JIT Weekly #42 [is
  out](https://lists.llvm.org/pipermail/llvm-dev/2021-October/153311.html),
  providing details on recent work such as the JITLinkMemoryManager refactor.

* Luís Ferreira [started a discussion on upstreaming patches for demangling D
  language
  symbols](https://lists.llvm.org/pipermail/llvm-dev/2021-October/153267.html).


## LLVM commits

* JITLinkMemoryManager has seen a major refactor. The major new features
  (described in more detail in the commit message) are 1) more asynchrony, 2)
  improve control over graph address layout, 3) efficient tracking of
  allocated memory, and 4) support for allocation actions and
  finalize-lifetime memory.
  [e50aea5](https://reviews.llvm.org/rGe50aea58d59c).

* The operands-to-args pass was added to the llvm-reduce tool. This avoids
  introducing 'undef' by converting operands to function arguments.
  [dd71b65](https://reviews.llvm.org/rGdd71b65ca85d).

* The AArch64 backend will now emit an AssertZExt for i1 arguments, as any
  such arguments must be zero-extended to 8 bits by the caller according to
  the AAPCS. [7ae8f39](https://reviews.llvm.org/rG7ae8f392a161).

* Initial definitions were added to select Armv9-A, Armv9.1-A, and Armv9.2-A
  target architectures, and for the Cortex-A510 CPU.
  [3550e24](https://reviews.llvm.org/rG3550e242fad6),
  [97809c8](https://reviews.llvm.org/rG97809c828f8e).

* The TwoAddressInstructionPass, used by X86, was improved to enable further
  register copies to be removed due to better decisions from
  isProfitableToCommute. [6599961](https://reviews.llvm.org/rG6599961c1707).

* PHI placement utility functions are now used for debuginfo variable values
  and machine values. [a3936a6](https://reviews.llvm.org/rGa3936a6c19c7),
  [b5426ce](https://reviews.llvm.org/rGb5426ced7128).

* The RISC-V ISA string parsing logic was centralised was one location in
  LLVM, RISCVISAInfo. [ff13189](https://reviews.llvm.org/rGff13189c5d0d).

* RISC-V immediate materialisation was improved in various cases where the
  bitmanip extension is present.
  [787eeb8](https://reviews.llvm.org/rG787eeb8597fa),
  [481db13](https://reviews.llvm.org/rG481db13fec3d),
  [7e81526](https://reviews.llvm.org/rG7e8152612677),
  [4fe5ab4](https://reviews.llvm.org/rG4fe5ab4b00b2).


## Clang commits

* git-clang-format now accepts a `--diffstat` parameter which will list
  files that need reformatting.
  [191a395](https://reviews.llvm.org/rG191a395343b9).

* enable_noundef_analysis was renamed to disable_noundef_analysis and turned
  off by default. [80dba72](https://reviews.llvm.org/rG80dba72a669b),
  [8ca4b3e](https://reviews.llvm.org/rG8ca4b3ef19fe).

* libTooling gained a 'switch-like' Stencil combinator.
  [b6c218d](https://reviews.llvm.org/rGb6c218d4fdb7).


## Other project commits

* LLVM'c libc gained implementations of strncat, memccpy, and mempcpy.
  [9e9803b](https://reviews.llvm.org/rG9e9803bf8250),
  [db8a88f](https://reviews.llvm.org/rGdb8a88fef87e).

* libcxx now has an option to disable wide character support.
  [f4c1258](https://reviews.llvm.org/rGf4c1258d5633).

* User-level documentation was added for MLIR's python bindings.
  [bacb0ca](https://reviews.llvm.org/rGbacb0cac1580).

* Operations in the MLIR std dialect that have now been moved to arith or math
  dialects have been removed from the codebase and tests.
  [a54f4ea](https://reviews.llvm.org/rGa54f4eae0e1d).

* Parallel STL gained an initial implementation of an OpenMP backend.
  [6069a6a](https://reviews.llvm.org/rG6069a6a50494).


More information about the llvm-dev mailing list