[all-commits] [llvm/llvm-project] 799343: Relax TLS LE/GD/LD.
Zhaoxin Yang via All-commits
all-commits at lists.llvm.org
Mon Jan 20 04:09:00 PST 2025
Branch: refs/heads/users/ylzsx/r-tls-noie
Home: https://github.com/llvm/llvm-project
Commit: 7993434e2973437b010034051003f8c03d8eff71
https://github.com/llvm/llvm-project/commit/7993434e2973437b010034051003f8c03d8eff71
Author: yangzhaoxin <yangzhaoxin at loongson.cn>
Date: 2025-01-20 (Mon, 20 Jan 2025)
Changed paths:
M lld/ELF/Arch/LoongArch.cpp
Log Message:
-----------
Relax TLS LE/GD/LD.
In local-exec form, the code sequence is converted as follows:
```
From:
lu12i.w $rd, %le_hi20_r(sym)
R_LARCH_TLS_LE_HI20_R, R_LARCH_RELAX
add.w/d $rd, $rd, $tp, %le_add_r(sym)
R_LARCH_TLS_LE_ADD_R, R_LARCH_RELAX
addi/ld/st.w/d $rd, $rd, %le_lo12_r(sym)
R_LARCH_TLS_LE_LO12_R, R_LARCH_RELAX
To:
addi/ld/st.w/d $rd, $tp, %le_lo12_r(sym)
R_LARCH_TLS_LE_LO12_R
```
In global-dynamic or local-dynamic, the code sequence is converted as
follows:
```
From:
pcalau12i $a0, %ld_pc_hi20(sym) | %gd_pc_hi20(sym)
R_LARCH_TLS_GD_PC_HI20 | R_LARCH_TLS_LD_PC_HI20, R_LARCH_RELAX
addi.w/d $a0, $a0, %got_pc_lo12(sym) | %got_pc_lo12(sym)
R_LARCH_GOT_PC_LO12, R_LARCH_RELAX
To:
pcaddi $a0, %got_pc_lo12(sym) | %got_pc_lo12(sym)
R_LARCH_TLS_GD_PCREL20_S2 | R_LARCH_TLS_LD_PCREL20_S2
```
Note: For initial-exec form, since it involves the conversion from IE to
LE, we will implement it in a future patch.
Commit: 1e9aa529f34dbe6d61295980593c894d3074a7b2
https://github.com/llvm/llvm-project/commit/1e9aa529f34dbe6d61295980593c894d3074a7b2
Author: yangzhaoxin <yangzhaoxin at loongson.cn>
Date: 2025-01-20 (Mon, 20 Jan 2025)
Changed paths:
M lld/test/ELF/loongarch-tls-gd.s
M lld/test/ELF/loongarch-tls-ld.s
Log Message:
-----------
Add test for TLSLD/TLSGD when relax enabled.
Commit: 91da25ea973556fc3a9f4dd2af06af0371cc4d36
https://github.com/llvm/llvm-project/commit/91da25ea973556fc3a9f4dd2af06af0371cc4d36
Author: yangzhaoxin <yangzhaoxin at loongson.cn>
Date: 2025-01-20 (Mon, 20 Jan 2025)
Changed paths:
M lld/test/ELF/loongarch-tls-le.s
Log Message:
-----------
Modify test for TLSLE when relax enabled.
Commit: 2066c5f7cc3eecfdd76216378efbfb8376fa4262
https://github.com/llvm/llvm-project/commit/2066c5f7cc3eecfdd76216378efbfb8376fa4262
Author: yangzhaoxin <yangzhaoxin at loongson.cn>
Date: 2025-01-20 (Mon, 20 Jan 2025)
Changed paths:
M lld/test/ELF/loongarch-relax-emit-relocs.s
A lld/test/ELF/loongarch-relax-tls-le.s
Log Message:
-----------
Add test for loongarch-relax-tls-le.s and modify loongarch-relax-emit-relocs.s
Commit: b57c40e275dc0977e002e68834c2b40fa030d9fc
https://github.com/llvm/llvm-project/commit/b57c40e275dc0977e002e68834c2b40fa030d9fc
Author: yangzhaoxin <yangzhaoxin at loongson.cn>
Date: 2025-01-20 (Mon, 20 Jan 2025)
Changed paths:
M lld/test/ELF/loongarch-relax-tls-le.s
M lld/test/ELF/loongarch-tls-gd.s
M lld/test/ELF/loongarch-tls-ld.s
M lld/test/ELF/loongarch-tls-le.s
Log Message:
-----------
Modify test. Add --relax option.
Compare: https://github.com/llvm/llvm-project/compare/7993434e2973%5E...b57c40e275dc
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