Read section headers upfront.
authorRafael Espindola <rafael.espindola@gmail.com>
Wed, 26 Oct 2016 00:54:03 +0000 (00:54 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Wed, 26 Oct 2016 00:54:03 +0000 (00:54 +0000)
commit0e090522c89b5fb1de63644532995398a7f196a7
tree8bdb20ce65d52fe1c750d5fc956c481c95699116
parent06b8757b574774e95a57df4affd965370cdaef54
Read section headers upfront.

Instead of storing a pointer, store the members we need.

The reason for doing this is that it makes it far easier to create
synthetic sections. It also avoids reading data from files multiple
times., which might help with cross endian linking and host
architectures with slow unaligned access.

There are obvious compacting opportunities, but this already has mixed
results even on native x86_64 linking.

There is also the possibility of better refactoring the code for
handling common symbols, but this already shows that a custom class is
not necessary.

llvm-svn: 285148
lld/ELF/InputSection.cpp
lld/ELF/InputSection.h
lld/ELF/LinkerScript.cpp
lld/ELF/OutputSections.cpp
lld/ELF/Symbols.cpp
lld/ELF/Writer.cpp