LLVM Weekly - #396, August 2nd 2021

LLVM Weekly - #396, August 2nd 2021

LLVM Weekly - #396, August 2nd 2021

If you prefer, you can read a HTML version of this email at

Welcome to the three hundred and ninety-sixth 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@asbradbury.org>, or
@llvmweekly or @asbradbury on Twitter.

## News and articles from around the web

LLVM 13.0.0 [has
branched]([llvm-dev] release/13.x branch has been created) and
the first release candidate is [expected
today]([llvm-dev] 13.0.0-rc1 pushed out to Monday).

## On the mailing lists

* Jeremy Morse is [seeking
  testers]([llvm-dev] Call for testing -- new variable location tracking solution)
  for the new variable location tracking solution that has been added to LLVM,
  but is off by default.

* Luke Kenneth Casson Leighton posted an RFC on a proposed [vector/SIMD ISA
  abstraction]([llvm-dev] [RFC] Vector/SIMD ISA Context Abstraction).

* Ben Gamari wrote to llvm-dev about a proposed change to the GHC calling
  convention, [querying if this may cause an issue for
  LLVM]([llvm-dev] GHC calling convention and the stack pointer register).

* Michał Górny
  [shared]([lldb-dev] [RFC] Improving protocol-level compatibility between LLDB and GDB)
  that Mortiz Systems has been contracted to enable KGDB compatibility in LLDB
  and so will be working on improving compatibility between LDB and the
  gdbserver protocol as part of this.

* Thomas Goodfellow [asked for
  advice]([llvm-dev] Building compiler-rt for RISC-V?) on
  building compiler-rt for RISC-V and received answers from [Fāng-ruì
  Sòng]([llvm-dev] Building compiler-rt for RISC-V?) and
  Marques]([llvm-dev] Building compiler-rt for RISC-V?).

* Teresa Johnson provided [input from an ThinLTO
  perspective]([llvm-dev] [ThinLTO] Import functions to enable function specialization in ThinLTO)
  on function specialization.

* Geoffrey Martin-Noble shared that [pre-merge checks have been set up for the
  Bazel build of
  LLVM]([llvm-dev] Bazel pre-merge checks).

## LLVM commits

* A jump-threading optimisation was added for deterministic finite automata
  was added. One well-known input where this optimisation may be triggered is
  the `core_state_transition` function of coremark.

* Graph reordering in the SLP vectorizer has been improved.

* AArch64 GlobalISel will no longer optimise away redundant branches at `-O0`,
  in order to improve the debuggability of emitted code.

* The CallPenalty for the inliner is now configurable.

* Support for the arch14 SystemZ architecture was added to the SystemZ
  backend. [8cd8120](rG8cd8120a7b5d).

* Emscripten exception handling now works with Emscripten SjLJ
  (setjmp/longjmp). [c285a11](rGc285a11efdb0).

* Initial code was added to generate assembly files on z/OS.

* `LLVM_ATTRIBUTE_NORETURN` has been replaced with `[[noreturn]]` in the LLVM
  codebase. [6da3d8b](rG6da3d8b19c32).

* A new feature was introduced in AArch64 for Scalable Matrix Extension (SME)
  streaming mode. [3a349d2](rG3a349d22692c).

## Clang commits

* `#pragma include_instead` was introduced, which can be used by system
  headers to indicate to a tool that the file including this pragma shouldn't
  be directly included by user code.

* `#pragma clang deprecated` was added in order to enable deprecation of
  preprocessor macros. [26c695b](rG26c695b78930).

* Clang option `-ffp-model=precise` now enables `-ffp-contract=on`.

* Support was added for the `-ffp-eval-method` command-line option.

## Other project commits

* A new on-by-default libc++ CMake option was added to disable the usage of
  incomplete headers which aren't guaranteed to be ABI stable.

A slight correction - I'd got the wrong end of the stick from reading
the commit message on this one. You have to opt-in to disable
incomplete headers.