[PATCH] D18711: Change how we apply rellocations

Rafael Ávila de Espíndola via llvm-commits llvm-commits at lists.llvm.org
Tue Apr 12 16:13:15 PDT 2016


rafael updated this revision to Diff 53487.
rafael added a comment.

I think this patch handles all the cases.

It is a small speedup or slowdown in all testcases, with one exception: debug info. Since we were not doing the first pass for non alloc sections, this slows it down.

Linking scylla with debug info goes from 4.880429771 seconds to 5.623892311 seconds (gold is at 6.48).

The slowdown is regrettable, but I think we should do this as it is a big maintenance improvement. If the speed at which we handle debug info becomes an issue, we can special case non alloc sections by

- Moving the body of scan reloc to a helper function/class that just stays which dynamic relocs/exprs it maps to.
- For alloc sections, do it like now.
- For non alloc sections, don't do the first scan and have relocate call the helper for each relocation and immediately relocate it.


http://reviews.llvm.org/D18711

Files:
  ELF/InputSection.cpp
  ELF/InputSection.h
  ELF/OutputSections.cpp
  ELF/OutputSections.h
  ELF/Target.cpp
  ELF/Target.h
  ELF/Writer.cpp
  test/ELF/tls-opt.s

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D18711.53487.patch
Type: text/x-patch
Size: 73877 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160412/8a1b3dcc/attachment.bin>


More information about the llvm-commits mailing list