[PATCH] D20433: [ELF] - Lazy initialization of MergeInputSection class internals.

George Rimar via llvm-commits llvm-commits at lists.llvm.org
Sun May 22 08:58:27 PDT 2016


grimar updated this revision to Diff 58062.
grimar added a comment.

Fully reimplemented initial version of this.

Now MergeInputSection<ELFT>::Offsets vector is filled much later,
after all GC processing, right after creation of output sections.
This allows to avoid filling it with dead ranges of data.
and opens oportunity to implement decompression
of sections in the way when only live sections are decompressed. 
Also after that they should be easily switched to 
parrallel_for proccessing here I am sure.

This rework also helped to cut off very similar code in 
MergeOutputSection<ELFT>::addSection() and 
MergeInputSection<ELFT>::MergeInputSection(), it is combined now
to MergeInputSection<ELFT>::prepareRanges(). 
Code from MergeOutputSection<ELFT>::addSection() is just gone.


http://reviews.llvm.org/D20433

Files:
  ELF/InputSection.cpp
  ELF/InputSection.h
  ELF/MarkLive.cpp
  ELF/OutputSections.cpp
  ELF/OutputSections.h
  ELF/Writer.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D20433.58062.patch
Type: text/x-patch
Size: 9877 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160522/4d325b33/attachment.bin>


More information about the llvm-commits mailing list