[PATCH v1 0/1] Add relocation optimization
Sivan Shani
sivan.shani@arm.com
Tue Aug 18 16:00:43 GMT 2026
Main change from first version: the optimizations are now disabled for input
relocations and linker generated stubs when '--no-relax' is used.
Sivan Shani (1):
AArch64: Optimize ADD relocations that resolve to zero
bfd/elfnn-aarch64.c | 33 ++++++++++-----
bfd/elfxx-aarch64.c | 40 +++++++++++++++----
bfd/elfxx-aarch64.h | 2 +-
ld/testsuite/ld-aarch64/aarch64-elf.exp | 6 +++
.../ld-aarch64/add-imm-zero-opt-norelax.d | 22 ++++++++++
.../ld-aarch64/add-imm-zero-opt-tlsdesc.d | 16 ++++++++
.../ld-aarch64/add-imm-zero-opt-tlsdesc.s | 16 ++++++++
.../ld-aarch64/add-imm-zero-opt-tlsgd.d | 15 +++++++
.../ld-aarch64/add-imm-zero-opt-tlsgd.s | 16 ++++++++
.../ld-aarch64/add-imm-zero-opt-tlsld.d | 15 +++++++
.../ld-aarch64/add-imm-zero-opt-tlsld.s | 15 +++++++
ld/testsuite/ld-aarch64/add-imm-zero-opt.d | 22 ++++++++++
ld/testsuite/ld-aarch64/add-imm-zero-opt.ld | 16 ++++++++
ld/testsuite/ld-aarch64/add-imm-zero-opt.s | 34 ++++++++++++++++
ld/testsuite/ld-aarch64/erratum843419.d | 4 +-
.../ld-aarch64/erratum843419_tls_ie.d | 2 +-
ld/testsuite/ld-aarch64/farcall-b-defsym.d | 2 +-
.../ld-aarch64/farcall-b-none-function.d | 2 +-
ld/testsuite/ld-aarch64/farcall-b-section.d | 2 +-
ld/testsuite/ld-aarch64/farcall-b.d | 2 +-
ld/testsuite/ld-aarch64/farcall-back-be.d | 2 +-
ld/testsuite/ld-aarch64/farcall-back.d | 2 +-
ld/testsuite/ld-aarch64/farcall-bl-defsym.d | 2 +-
.../ld-aarch64/farcall-bl-none-function.d | 2 +-
ld/testsuite/ld-aarch64/farcall-bl-section.d | 2 +-
ld/testsuite/ld-aarch64/farcall-bl.d | 2 +-
.../non-contiguous-mem/non-contiguous-ok-2.d | 2 +-
.../non-contiguous-mem/non-contiguous-ok-4.d | 2 +-
.../non-contiguous-mem/non-contiguous-ok-5.d | 2 +-
.../ld-aarch64/tls-relax-ld-le-small-ilp32.d | 4 +-
.../ld-aarch64/tls-relax-ld-le-small.d | 4 +-
.../ld-aarch64/tls-relax-ld-le-tiny-ilp32.d | 4 +-
.../ld-aarch64/tls-relax-ld-le-tiny.d | 4 +-
.../ld-aarch64/tls-tiny-gd-le-ilp32.d | 2 +-
ld/testsuite/ld-aarch64/tls-tiny-gd-le.d | 2 +-
ld/testsuite/ld-aarch64/tlsle-add-hi12-opt.d | 14 +++++++
ld/testsuite/ld-aarch64/tlsle-add-hi12-opt.s | 13 ++++++
ld/testsuite/ld-aarch64/weak-undefined.d | 2 +-
38 files changed, 303 insertions(+), 46 deletions(-)
create mode 100644 ld/testsuite/ld-aarch64/add-imm-zero-opt-norelax.d
create mode 100644 ld/testsuite/ld-aarch64/add-imm-zero-opt-tlsdesc.d
create mode 100644 ld/testsuite/ld-aarch64/add-imm-zero-opt-tlsdesc.s
create mode 100644 ld/testsuite/ld-aarch64/add-imm-zero-opt-tlsgd.d
create mode 100644 ld/testsuite/ld-aarch64/add-imm-zero-opt-tlsgd.s
create mode 100644 ld/testsuite/ld-aarch64/add-imm-zero-opt-tlsld.d
create mode 100644 ld/testsuite/ld-aarch64/add-imm-zero-opt-tlsld.s
create mode 100644 ld/testsuite/ld-aarch64/add-imm-zero-opt.d
create mode 100644 ld/testsuite/ld-aarch64/add-imm-zero-opt.ld
create mode 100644 ld/testsuite/ld-aarch64/add-imm-zero-opt.s
create mode 100644 ld/testsuite/ld-aarch64/tlsle-add-hi12-opt.d
create mode 100644 ld/testsuite/ld-aarch64/tlsle-add-hi12-opt.s
--
2.43.0
More information about the Binutils
mailing list