[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