[PATCH 0/8] xtensa trampolines rework in gas
Max Filippov
jcmvbkbc@gmail.com
Mon Nov 27 19:39:00 GMT 2017
Hello,
this series cleans up and speeds up trampolines implementation in xtensa
assembler and adds trampoline coalescing feature. Trampolines are jumps
inserted by the assembler at relaxation time to extend range of jumps and
branches. Current implementation has a couple of places that may get very
slow on certain input files. It also creates redundant trampolines for
jumps targeting the same location, trampoline coalescing fixes this
redundancy.
Max Filippov (8):
gas: extract xg_relax_trampoline from xtensa_relax_frag
gas: xtensa: extract jump assembling for trampolines
gas: xtensa: reuse find_trampoline_seg
gas: xtensa: merge trampoline_frag into xtensa_frag_type
gas: xtensa: rewrite xg_relax_trampoline
gas: xtensa: reuse trampoline placement code
gas: xtensa: implement trampoline coalescing
gas: xtensa: speed up find_trampoline_seg
gas/config/tc-xtensa.c | 984 +++++++++++++++++---------------
gas/config/tc-xtensa.h | 7 +
gas/testsuite/gas/xtensa/all.exp | 1 +
gas/testsuite/gas/xtensa/trampoline-2.l | 1 +
gas/testsuite/gas/xtensa/trampoline-2.s | 20 +
gas/testsuite/gas/xtensa/trampoline.d | 35 +-
gas/testsuite/gas/xtensa/trampoline.s | 2 +
7 files changed, 582 insertions(+), 468 deletions(-)
create mode 100644 gas/testsuite/gas/xtensa/trampoline-2.l
create mode 100644 gas/testsuite/gas/xtensa/trampoline-2.s
--
2.1.4
More information about the Binutils
mailing list