[ELF] - Stop using SectionKey for creating output sections.
authorGeorge Rimar <grimar@accesssoftek.com>
Sat, 4 Nov 2017 09:11:27 +0000 (09:11 +0000)
committerGeorge Rimar <grimar@accesssoftek.com>
Sat, 4 Nov 2017 09:11:27 +0000 (09:11 +0000)
commit343e8227b701da66cbeac867feb9ca6d5211d535
tree3f4c52d6c6ac8c03c945863dff91473d3eb87294
parentddd2424929a569dddbed72374f949c9f4a583e5a
[ELF] - Stop using SectionKey for creating output sections.

Stop using SectionKey for creating output sections.

Initially SectionKey was designed because we merged section with
use of Flags and Alignment fields. Currently LLD merges them by name only,
except the case when -relocatable output is produced. In that case
we still merge sections only with the same flags and alignment.
There is probably no issue at all to stop using Flags and Alignment for -r and
just disable the merging in that case.

After doing that change we can get rid of using SectionKey. That is not only
simplifies the code, but also gives some perfomance boost.

I tried to link chrome and mozilla, results are next:
* chrome link time goes from 1,666750355s to 1,551585364s, that is about 7%.
* mozilla time changes from 3,210261947 to 3,153782940, or about 2%.

Differential revision: https://reviews.llvm.org/D39594

llvm-svn: 317406
lld/ELF/OutputSections.cpp
lld/ELF/OutputSections.h