[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