GC entries of SHF_MERGE sections.
authorRafael Espindola <rafael.espindola@gmail.com>
Fri, 22 Apr 2016 16:46:08 +0000 (16:46 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Fri, 22 Apr 2016 16:46:08 +0000 (16:46 +0000)
commitcaa831d85a342d7213ef5a58009ef655b9e13e86
tree915040b2ac48e10c66a121a0278d71cf4ba620b5
parent197d6a882f434653b8a254e7ef54e6b3f6f26542
GC entries of SHF_MERGE sections.

It is a fairly direct extension of the gc algorithm. For merge sections
instead of remembering just a live bit, we remember which offsets were
used.

This reduces the .rodata sections in chromium from 9648861 to 9477472
bytes.

llvm-svn: 267164
lld/ELF/InputSection.cpp
lld/ELF/InputSection.h
lld/ELF/MarkLive.cpp
lld/ELF/OutputSections.cpp
lld/test/ELF/gc-sections-merge-addend.s [new file with mode: 0644]
lld/test/ELF/gc-sections-merge-implicit-addend.s [new file with mode: 0644]
lld/test/ELF/gc-sections-merge.s [new file with mode: 0644]