[PATCH] D18349: [ELF][MIPS] Reduce number of redundant entries in the local part of MIPS GOT

Rafael EspĂ­ndola via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 28 09:54:27 PDT 2016


> There are two problems in this approach (though it allows to get ideal result):
>
> - We need to create a local symbol body for each unique combination of local symbol referenced by GOT relocation and addend. Number of such combinations might be very large. And we need to read relocation addend in relocation scanning phase.

Well, it is one SymbolBody,Addend pair per relocation.

> - For some end-users like embedded developers it might be essential to be able to place sections in specific order.
>
>> BTW, what result do you get with gold/bfd?
>
>
> Almost all test cases from LLVM Test suite show similar results. For example (size of .got section):
> 7zip-benchmark: BFD: 0x17a4 LLD: 0x177c
> tramp3d-v4: BFD: 0x11a4 LLD: 0x11b8
>
> There are couple exceptions `mafft/pairlocalalign` and `NPB-serial/is/is`. These executables have large .bss section and the patch produces the GOT bigger than necessary. But anyway it is better than current trunk implementation.

I guess the question is more: do you know in which cases they produce
a better result?

Sending a few more comments via Phab.

Cheers,
Rafael


More information about the llvm-commits mailing list