[all-commits] [llvm/llvm-project] cb6a3f: [llvm] Force TLSDESC for all TLS access in Fuchsia...

Paul Kirth via All-commits all-commits at lists.llvm.org
Thu Feb 5 14:34:41 PST 2026


  Branch: refs/heads/users/ilovepi/lto-tlsdesc
  Home:   https://github.com/llvm/llvm-project
  Commit: cb6a3f79829ddbf2961da040abd89a88036c058e
      https://github.com/llvm/llvm-project/commit/cb6a3f79829ddbf2961da040abd89a88036c058e
  Author: Paul Kirth <paulkirth at google.com>
  Date:   2026-02-05 (Thu, 05 Feb 2026)

  Changed paths:
    M llvm/lib/Target/TargetMachine.cpp
    M llvm/test/CodeGen/RISCV/tls-models.ll
    M llvm/test/CodeGen/X86/tls-desc.ll

  Log Message:
  -----------
  [llvm] Force TLSDESC for all TLS access in Fuchsia code

Fuchsia no longer supports TLS access via __tls_get_addr, and only
supports the TLSDESC ABI on all target machines.

Though we already set Fuchsia as enabling TLSDESC by default, LLD's LTO
pipeline is initialized with an empty target triple, and thus does not
correctly select the correct codegen options for Fuchsia's ABI. Instead,
we can additionally check if Fuchsia is the actual target if the option
isn't set, since useTLSDESC() is only called later, when a non-default
target triple will be available.

The alternative is to rework how LLD initializes the LTO code generation
options, so that it selects the correct target, and initializes them
correctly. However, that's a more invasive change, and would need some
discussion to make sure that is handled correctly across all of LLDs
supported formats (e.g. ELF, Mach-O, COFF, etc.).


  Commit: c4a42aa9b5ca4d8d2f0ba96edf351a3bf4704730
      https://github.com/llvm/llvm-project/commit/c4a42aa9b5ca4d8d2f0ba96edf351a3bf4704730
  Author: Paul Kirth <paulkirth at google.com>
  Date:   2026-02-05 (Thu, 05 Feb 2026)

  Changed paths:
    M clang/lib/CodeGen/BackendUtil.cpp
    M clang/tools/clang-nvlink-wrapper/ClangNVLinkWrapper.cpp
    M lld/COFF/LTO.cpp
    M lld/ELF/LTO.cpp
    M lld/MachO/LTO.cpp
    M lld/wasm/LTO.cpp
    M llvm/include/llvm/LTO/Config.h
    M llvm/include/llvm/LTO/LTO.h
    M llvm/include/llvm/LTO/legacy/LTOCodeGenerator.h
    M llvm/lib/LTO/LTO.cpp
    M llvm/lib/LTO/LTOBackend.cpp
    M llvm/lib/LTO/LTOCodeGenerator.cpp
    M llvm/lib/LTO/ThinLTOCodeGenerator.cpp
    M llvm/lib/Target/TargetMachine.cpp
    M llvm/tools/llvm-lto2/llvm-lto2.cpp

  Log Message:
  -----------
  Redesign how TargetOptions are used in LTO


Compare: https://github.com/llvm/llvm-project/compare/1dda780c65e5...c4a42aa9b5ca

To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list