llvm-dwp: Ensure compressed sections are preserved long enough for use in the string pool

Now that the string pool is referential rather than maintaining its own
copy of string data, compressed sections (well, technically only the
debug_str section*) need to be preserved for the lifetime of the pool to
match.

* I'm not currently optimizing for memory footprint with compressed
  input - the major memory limit I'm hitting is on dwp+dwp merge steps
  and we aren't currently compressing contents in dwp files, just in the
  .dwo inputs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270462 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
David Blaikie 2016-05-23 17:35:51 +00:00
parent 2123d3f905
commit fb4915b806

View File

@ -395,6 +395,8 @@ static Error write(MCStreamer &Out, ArrayRef<std::string> Inputs) {
SmallVector<OwningBinary<object::ObjectFile>, 128> Objects;
Objects.reserve(Inputs.size());
SmallVector<SmallString<32>, 4> UncompressedSections;
for (const auto &Input : Inputs) {
auto ErrOrObj = object::ObjectFile::createObjectFile(Input);
if (!ErrOrObj)
@ -413,8 +415,6 @@ static Error write(MCStreamer &Out, ArrayRef<std::string> Inputs) {
StringRef CurCUIndexSection;
StringRef CurTUIndexSection;
SmallVector<SmallString<32>, 4> UncompressedSections;
for (const auto &Section : Obj.sections()) {
if (Section.isBSS())
continue;