[PATCH 0/4] RISCV: Improve linker time complexity

Patrick O'Neill patrick@rivosinc.com
Tue Apr 12 16:25:57 GMT 2022


The current linker has an O(n^2) time complexity when it comes to
deleting bytes. By deferring the deletion of bytes, we can achieve O(n)
deletion runtime.

Patrick O'Neill (4):
  RISCV: Add linker relaxation tests
  RISCV: Arrange DELETE pass after .align pass
  RISCV: Implement piecewise deletion
  RISCV: Improve runtime of align directives

 bfd/elfnn-riscv.c                          | 343 ++++++++++++---------
 ld/testsuite/ld-riscv-elf/ld-riscv-elf.exp |   6 +
 ld/testsuite/ld-riscv-elf/relax-call-1.d   |  17 +
 ld/testsuite/ld-riscv-elf/relax-call-1.s   |   7 +
 ld/testsuite/ld-riscv-elf/relax-call-2.d   |  21 ++
 ld/testsuite/ld-riscv-elf/relax-call-2.s   |  10 +
 ld/testsuite/ld-riscv-elf/relax-call-3.d   |  25 ++
 ld/testsuite/ld-riscv-elf/relax-call-3.s   |  13 +
 ld/testsuite/ld-riscv-elf/relax-call-4.d   |  19 ++
 ld/testsuite/ld-riscv-elf/relax-call-4.s   |   8 +
 ld/testsuite/ld-riscv-elf/relax-call-5.d   |  23 ++
 ld/testsuite/ld-riscv-elf/relax-call-5.s   |  11 +
 ld/testsuite/ld-riscv-elf/relax-call-6.d   |  22 ++
 ld/testsuite/ld-riscv-elf/relax-call-6.s   |  11 +
 14 files changed, 389 insertions(+), 147 deletions(-)
 create mode 100644 ld/testsuite/ld-riscv-elf/relax-call-1.d
 create mode 100644 ld/testsuite/ld-riscv-elf/relax-call-1.s
 create mode 100644 ld/testsuite/ld-riscv-elf/relax-call-2.d
 create mode 100644 ld/testsuite/ld-riscv-elf/relax-call-2.s
 create mode 100644 ld/testsuite/ld-riscv-elf/relax-call-3.d
 create mode 100644 ld/testsuite/ld-riscv-elf/relax-call-3.s
 create mode 100644 ld/testsuite/ld-riscv-elf/relax-call-4.d
 create mode 100644 ld/testsuite/ld-riscv-elf/relax-call-4.s
 create mode 100644 ld/testsuite/ld-riscv-elf/relax-call-5.d
 create mode 100644 ld/testsuite/ld-riscv-elf/relax-call-5.s
 create mode 100644 ld/testsuite/ld-riscv-elf/relax-call-6.d
 create mode 100644 ld/testsuite/ld-riscv-elf/relax-call-6.s

-- 
2.25.1



More information about the Binutils mailing list