[PATCH] D25234: [LLD][ARM] Garbage collection support for .ARM.exidx sections

Rafael EspĂ­ndola via llvm-commits llvm-commits at lists.llvm.org
Fri Oct 7 05:54:14 PDT 2016


The results I got:

firefox
  master 6.314747351
  patch  6.323219627 1.00134166508x slower
chromium
  master 4.258709738
  patch  4.27246126 1.00322903481x slower
chromium fast
  master 1.809771242
  patch  1.8110003 1.0006791234x slower
the gold plugin
  master 0.323923114
  patch  0.325110017 1.00366415038x slower
clang
  master 0.542506842
  patch  0.54578911 1.00605018729x slower
llvm-as
  master 0.031965143
  patch  0.031986982 1.00068321296x slower
the gold plugin fsds
  master 0.351388506
  patch  0.352764988 1.0039172653x slower
clang fsds
  master 0.620528058
  patch  0.622517783 1.00320650287x slower
llvm-as fsds
  master 0.029737966
  patch  0.029761825 1.00080230773x slower
scylla
  master 2.776627085
  patch  2.816265215 1.01427564048x slower

So it seems a pretty small slowdown. I would say go for it. There will
be a few passes of profile/optimize in the future, but getting ARM
supported first should make design decisions easier to make.

Cheers,
Rafael




On 7 October 2016 at 08:15, Rafael EspĂ­ndola <rafael.espindola at gmail.com> wrote:
> No worries. This LGTM. It is quite a bit cleaner. I wish other arches
> used something like that instead of .eh_frame.
>
> I will benchmark and open a bug if we need to try to recover the performance.
>
> Cheers,
> Rafael
>
>
>
> On 7 October 2016 at 05:27, Peter Smith <peter.smith at linaro.org> wrote:
>> peter.smith added a comment.
>>
>> The initial patch did start that way. The SHF_LINK_ORDER sections that become live may make other sections that have further SHF_LINK_ORDER dependencies live so it ends up needing to converge. The move to adding the reverse dependency came from an earlier review comment.
>>
>> I'll try and see what impact the extra field in InputSection has in terms of performance. I've not got a setup for benchmarking right now but I'll take a look at setting one up.
>>
>> Another possibility is to store the reverse dependency in a map so that only the ARM Target pays the performance cost.
>>
>>
>> https://reviews.llvm.org/D25234
>>
>>
>>


More information about the llvm-commits mailing list