[all-commits] [llvm/llvm-project] 03a61d: [RISCV] Support TLSDESC in the RISC-V backend (#66...

Paul Kirth via All-commits all-commits at lists.llvm.org
Tue Jan 23 16:16:20 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 03a61d34ebf4f8eeaa6861bec3ab39c75bb41778
      https://github.com/llvm/llvm-project/commit/03a61d34ebf4f8eeaa6861bec3ab39c75bb41778
  Author: Paul Kirth <paulkirth at google.com>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M llvm/include/llvm/BinaryFormat/ELFRelocs/RISCV.def
    M llvm/include/llvm/CodeGen/CommandFlags.h
    M llvm/include/llvm/Target/TargetMachine.h
    M llvm/include/llvm/Target/TargetOptions.h
    M llvm/include/llvm/TargetParser/Triple.h
    M llvm/lib/CodeGen/CommandFlags.cpp
    M llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
    M llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp
    M llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.h
    M llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFObjectWriter.cpp
    M llvm/lib/Target/RISCV/MCTargetDesc/RISCVFixupKinds.h
    M llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCCodeEmitter.cpp
    M llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCExpr.cpp
    M llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCExpr.h
    M llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp
    M llvm/lib/Target/RISCV/RISCVExpandPseudoInsts.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.h
    M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfo.td
    M llvm/lib/Target/TargetMachine.cpp
    M llvm/test/CodeGen/RISCV/tls-models.ll
    M llvm/test/MC/RISCV/relocations.s
    A llvm/test/MC/RISCV/tlsdesc.s

  Log Message:
  -----------
  [RISCV] Support TLSDESC in the RISC-V backend (#66915)

This patch adds basic TLSDESC support in the RISC-V backend.

Specifically, we add new relocation types for TLSDESC, as prescribed in 
https://github.com/riscv-non-isa/riscv-elf-psabi-doc/pull/373, and add a
new pseudo instruction to simplify code generation.

This patch does not try to optimize the local dynamic case, which can be
improved in separate patches. 

Linker side changes will also be handled separately.

The current implementation is only enabled when passing the new
`-enable-tlsdesc` codegen flag.




More information about the All-commits mailing list