LLVM Weekly - #424, February 14th 2022

LLVM Weekly - #424, February 14th 2022

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

Welcome to the four hundred and twenty-fourth 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. 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@asbradbury.org, or @llvmweekly or @asbradbury on Twitter.

News and articles from around the web

MaskRay blogged about COMMON symbols.

A new paper on MLIR is up on arXiv - Composable and Modular Code Generation in MLIR: A Structured and Retargetable Approach to Tensor Compiler Construction.

LLVM GPU News #28 is out.

On the forums

LLVM commits

  • The LoongArch backend started to land upstream. 42fd2bf, e53e6ec, 444c6d2, 33388ae, 6caee48, af3bc0d.

  • Support was added in the X86 backend for zeroing certain registers before the function returns (-fzero-call-used-regs in Clang). deaf22b.

  • The VarLenCodeEmitterGen infrastructure was introduced, providing common infrastructure for variable-length instruction encodings. It has been put to use by the M68k backend. 31f9519, 08f2b0d.

  • A new shouldHoist hook was added to TargetInstrInfo, which is queried by MachineLICM and can be used to override hoisting decisions for a given target. 42ac4e1.

  • debuginfod was moved out of libLLVM. 4a6553f.

  • ArgumentPromotion was updated to be compatible with opaque pointers. 68c1eeb.

  • Inline asm constraint support, ProcessorModel definitions, and a disassembler were added for the CSKY backend. a190fcd, 9ee96aa, ec642ce.

  • Complex Arm IT (‘if-then’) blocks are no longer considered “performance deprecated” by Arm, and LLVM has been updated to reflect this. 3d76621.

  • llvm.vp.fma and llvm.vp.fneg intrinsics were introduced. cef177d, 60745fb.

  • GlobalISel for M68k gained an implementation of lowerCall. 5aa3af3.

Clang commits

  • A new shared-ptr-array-mismatch check was added to clang-tidy. It will identify initialisations of C++ shared pointers to non-array type that are initialised with an array. c63522e.

  • The -ffinite-math-only and -fhonour-{infinities,infinites,nans} options were documented. 8440ec6.

  • clangd’s stdlib headers handling was moved to Clang. 46a6f5a.

  • clang-format’s handling of ‘requires’ and ‘concept’ was improved. 9aab0db.

Other project commits

  • The ControlFlow dialect was split out from the Standard MLIR dialect. ace0160.

  • Continuous and pre-merge testing of the Bazel LLVM build was documented. 088fbc0.

  • The Flang driver gained support for the -emit-mlir option. 69c3309.

  • An optimised memmove implementation was added to LLVM’s libc. 83f9b13.

  • The <experimental/filesystem> header (originally intended to be removed after LLVM 11) was removed from libcxx. 861386d.