[all-commits] [llvm/llvm-project] c7d6d6: [BOLT][RISCV] Implement TLS le/ie relocations (#67...
Job Noorman via All-commits
all-commits at lists.llvm.org
Thu Oct 5 01:54:06 PDT 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: c7d6d62252e356be096462fc8b416bd6f725afbd
https://github.com/llvm/llvm-project/commit/c7d6d62252e356be096462fc8b416bd6f725afbd
Author: Job Noorman <jnoorman at igalia.com>
Date: 2023-10-05 (Thu, 05 Oct 2023)
Changed paths:
M bolt/lib/Core/Relocation.cpp
M bolt/lib/Rewrite/RewriteInstance.cpp
M bolt/lib/Target/RISCV/RISCVMCPlusBuilder.cpp
A bolt/test/RISCV/Inputs/tls-le-gnu-ld.yaml
A bolt/test/RISCV/reloc-tls.s
A bolt/test/RISCV/tls-le-gnu-ld.test
Log Message:
-----------
[BOLT][RISCV] Implement TLS le/ie relocations (#67112)
Handle the following relocations related to TLS local-exec and
initial-exec:
- R_RISCV_TLS_GOT_HI20
- R_RISCV_TPREL_HI20
- R_RISCV_TPREL_ADD
- R_RISCV_TPREL_LO12_I
- R_RISCV_TPREL_LO12_S
In addition, GNU ld has a quirk where after TLS le relaxation, two
unofficial relocation types may be emitted:
- R_RISCV_TPREL_I
- R_RISCV_TPREL_S
Since they are unofficial (defined in the reserved range of relocation
types), LLVM does not define them. Hence, I've defined them locally in
BOLT in a private namespace.
More information about the All-commits
mailing list