Alex Bradbury via llvm-dev
2021-Oct-18 17:54 UTC
[llvm-dev] LLVM Weekly - #407, October 18th 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).