[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