[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