[lld] r283267 - Update for llvm change.

Rafael Avila de Espindola via llvm-commits llvm-commits at lists.llvm.org
Wed Oct 5 18:22:18 PDT 2016


This is because of r283266. The main advantage is not depending on the details of the implementation, like the type of the map.

Cheers,
Rafael

On October 4, 2016 6:54:07 PM EDT, Rui Ueyama <ruiu at google.com> wrote:
>Which change did this make possible?
>
>On Tue, Oct 4, 2016 at 3:43 PM, Rafael Espindola via llvm-commits <
>llvm-commits at lists.llvm.org> wrote:
>
>> Author: rafael
>> Date: Tue Oct  4 17:43:38 2016
>> New Revision: 283267
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=283267&view=rev
>> Log:
>> Update for llvm change.
>>
>> Modified:
>>     lld/trunk/ELF/ELFCreator.cpp
>>     lld/trunk/ELF/OutputSections.cpp
>>
>> Modified: lld/trunk/ELF/ELFCreator.cpp
>> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/
>> ELFCreator.cpp?rev=283267&r1=283266&r2=283267&view=diff
>> ============================================================
>> ==================
>> --- lld/trunk/ELF/ELFCreator.cpp (original)
>> +++ lld/trunk/ELF/ELFCreator.cpp Tue Oct  4 17:43:38 2016
>> @@ -100,10 +100,8 @@ template <class ELFT> std::size_t ELFCre
>>
>>  template <class ELFT> void ELFCreator<ELFT>::write(uint8_t *Out) {
>>    std::memcpy(Out, &Header, sizeof(Elf_Ehdr));
>> -  std::copy(SecHdrStrTabBuilder.data().begin(),
>> -            SecHdrStrTabBuilder.data().end(), Out +
>ShStrTab->sh_offset);
>> -  std::copy(StrTabBuilder.data().begin(),
>StrTabBuilder.data().end(),
>> -            Out + StrTab->sh_offset);
>> +  SecHdrStrTabBuilder.write(Out + ShStrTab->sh_offset);
>> +  StrTabBuilder.write(Out + StrTab->sh_offset);
>>
>>    Elf_Sym *Sym = reinterpret_cast<Elf_Sym *>(Out +
>SymTab->sh_offset);
>>    // Skip null.
>>
>> Modified: lld/trunk/ELF/OutputSections.cpp
>> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/
>> OutputSections.cpp?rev=283267&r1=283266&r2=283267&view=diff
>> ============================================================
>> ==================
>> --- lld/trunk/ELF/OutputSections.cpp (original)
>> +++ lld/trunk/ELF/OutputSections.cpp Tue Oct  4 17:43:38 2016
>> @@ -1222,15 +1222,7 @@ MergeOutputSection<ELFT>::MergeOutputSec
>>        Builder(StringTableBuilder::RAW, Alignment) {}
>>
>>  template <class ELFT> void MergeOutputSection<ELFT>::writeTo(uint8_t
>> *Buf) {
>> -  if (shouldTailMerge()) {
>> -    StringRef Data = Builder.data();
>> -    memcpy(Buf, Data.data(), Data.size());
>> -    return;
>> -  }
>> -  for (const std::pair<CachedHash<StringRef>, size_t> &P :
>> Builder.getMap()) {
>> -    StringRef Data = P.first.Val;
>> -    memcpy(Buf + P.second, Data.data(), Data.size());
>> -  }
>> +  Builder.write(Buf);
>>  }
>>
>>  static StringRef toStringRef(ArrayRef<uint8_t> A) {
>> @@ -1268,6 +1260,8 @@ template <class ELFT> bool MergeOutputSe
>>  template <class ELFT> void MergeOutputSection<ELFT>::finalize() {
>>    if (shouldTailMerge())
>>      Builder.finalize();
>> +  else
>> +    Builder.finalizeInOrder();
>>    this->Header.sh_size = Builder.getSize();
>>  }
>>
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>>

-- 
Sent from my Android device with K-9 Mail. Please excuse my brevity.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20161005/3f945946/attachment.html>


More information about the llvm-commits mailing list