[all-commits] [llvm/llvm-project] 187759: Support relaxation during TLSDESC GD/LD to IE/LE c...
Zhaoxin Yang via All-commits
all-commits at lists.llvm.org
Tue Jan 21 04:14:11 PST 2025
Branch: refs/heads/users/ylzsx/r-got-to-pcrel
Home: https://github.com/llvm/llvm-project
Commit: 187759562d861034a79cd8c4ee4ab063bba5f4ff
https://github.com/llvm/llvm-project/commit/187759562d861034a79cd8c4ee4ab063bba5f4ff
Author: yangzhaoxin <yangzhaoxin at loongson.cn>
Date: 2025-01-21 (Tue, 21 Jan 2025)
Changed paths:
M lld/ELF/Arch/LoongArch.cpp
Log Message:
-----------
Support relaxation during TLSDESC GD/LD to IE/LE conversion.
Complement https://. When relaxation enable, remove redundant NOPs.
Commit: e024b7c5a85100627aa64a47dfc46221e709f400
https://github.com/llvm/llvm-project/commit/e024b7c5a85100627aa64a47dfc46221e709f400
Author: yangzhaoxin <yangzhaoxin at loongson.cn>
Date: 2025-01-21 (Tue, 21 Jan 2025)
Changed paths:
M lld/test/ELF/loongarch-relax-tlsdesc.s
Log Message:
-----------
Modify loongarch-relax-tlsdesc.s.
Commit: 6e05f360c33f6a1999032d104d020afa5191c21c
https://github.com/llvm/llvm-project/commit/6e05f360c33f6a1999032d104d020afa5191c21c
Author: yangzhaoxin <yangzhaoxin at loongson.cn>
Date: 2025-01-21 (Tue, 21 Jan 2025)
Changed paths:
M lld/ELF/Arch/LoongArch.cpp
M lld/test/ELF/loongarch-relax-pc-hi20-lo12.s
Log Message:
-----------
[lld][LoongArch] GOT indirection to PC relative optimization.
In LoongArch, this optimization is only supported when relaxation is enabled.
From:
* pcalau12i $a0, %got_pc_hi20(sym_got)
* ld.w/d $a0, $a0, %got_pc_lo12(sym_got)
To:
* pcalau12i $a0, %pc_hi20(sym)
* addi.w/d $a0, $a0, %pc_lo12(sym)
If the original code sequence can be relaxed into a single instruction
`pcaddi`, this patch will not be taken (see https://).
The implementation related to `got` is split into two locations because
the `relax()` function is part of an iteration fixed-point algorithm. We
should minimize it to achieve better linker performance.
FIXME: Althouth the optimization has been performed, the GOT entries still
exists, similarly to AArch64. Eliminating the entries may be require
additional marking in the common code.
Commit: 30a9eb5309bb7606508f95e5c4320d911fd3b444
https://github.com/llvm/llvm-project/commit/30a9eb5309bb7606508f95e5c4320d911fd3b444
Author: yangzhaoxin <yangzhaoxin at loongson.cn>
Date: 2025-01-21 (Tue, 21 Jan 2025)
Changed paths:
M lld/ELF/Arch/LoongArch.cpp
Log Message:
-----------
Add check for register.
Compare: https://github.com/llvm/llvm-project/compare/187759562d86%5E...30a9eb5309bb
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