[all-commits] [llvm/llvm-project] d7e089: [ARM] Use hardware TLS register in Thumb2 mode whe...

Nick Desaulniers via All-commits all-commits at lists.llvm.org
Wed Oct 27 16:46:10 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: d7e089f2d6a5cd5f283a90ab29241d20d4fc3ed1
      https://github.com/llvm/llvm-project/commit/d7e089f2d6a5cd5f283a90ab29241d20d4fc3ed1
  Author: Ard Biesheuvel <ardb at google.com>
  Date:   2021-10-27 (Wed, 27 Oct 2021)

  Changed paths:
    M llvm/lib/Target/ARM/ARMInstrThumb.td
    M llvm/lib/Target/ARM/ARMInstrThumb2.td
    M llvm/test/CodeGen/ARM/readtp.ll
    M llvm/test/CodeGen/ARM/thread_pointer.ll

  Log Message:
  -----------
  [ARM] Use hardware TLS register in Thumb2 mode when -mtp=cp15 is passed

In ARM mode, passing -mtp=cp15 forces the use of an inline MRC system register read to move the thread pointer value into a register.

Currently, in Thumb2 mode, -mtp=cp15 is ignored, and a call to the __aeabi_read_tp helper is emitted instead.

This is inconsistent, and breaks the Linux/ARM build for Thumb2 targets, as the Linux kernel does not provide an implementation of __aeabi_read_tp,.

Reviewed By: nickdesaulniers, peter.smith

Differential Revision: https://reviews.llvm.org/D112600




More information about the All-commits mailing list