- Mar 31, 2017
-
-
James Henderson authored
llvm-svn: 299208
-
Peter Collingbourne authored
llvm-svn: 299184
-
Peter Collingbourne authored
Introduce symbol table data structures that can be potentially written to disk, have the LTO library build those data structures using temporarily constructed modules and redirect the LTO library implementation to go through those data structures. This allows us to remove the LLVMContext and Modules owned by InputFile. With this change I measured a peak memory consumption decrease from 5.4GB to 2.8GB in a no-op incremental ThinLTO link of Chromium on Linux. The impact on memory consumption is larger in COFF linkers where we are currently forced to materialize all metadata in order to read linker options. Peak memory consumption linking a large piece of Chromium for Windows with full LTO and debug info decreases from >64GB (OOM) to 15GB. Part of PR27551. Differential Revision: https://reviews.llvm.org/D31364 llvm-svn: 299168
-
Rui Ueyama authored
llvm-svn: 299128
-
- Mar 30, 2017
-
-
Rui Ueyama authored
llvm-svn: 299115
-
Rui Ueyama authored
This change is to improve consistency with other files. llvm-svn: 299110
-
Rui Ueyama authored
Patch by Alberto Magni Original patch by Kyungwoo Lee <kyulee@microsoft.com> Differential Revision: https://reviews.llvm.org/D31388 llvm-svn: 299106
-
Rui Ueyama authored
Previously, undefined symbol errors are one line like this and wasn't easy to read. /ssd/clang/bin/ld.lld: error: /ssd/llvm-project/lld/ELF/Writer.cpp:207: undefined symbol 'lld::elf::EhFrameSection<llvm::object::ELFType<(llvm::support::endianness)0, true> >::addSection(lld::elf::InputSectionBase*)' This patch make it more structured like this. bin/ld.lld: error: undefined symbol: lld::elf::EhFrameSection<llvm::object::ELFType<(llvm::support::endianness)0, true> >>> Referenced by Writer.cpp:207 (/ssd/llvm-project/lld/ELF/Writer.cpp:207) >>> Writer.cpp.o in archive lib/liblldELF.a Discussion thread: http://lists.llvm.org/pipermail/llvm-dev/2017-March/111459.html Differential Revision: https://reviews.llvm.org/D31481 llvm-svn: 299097
-
- Mar 29, 2017
-
-
Rui Ueyama authored
llvm-svn: 299025
-
Rui Ueyama authored
This reverts commit because this really shouldn't happen unless there's a bug in LLD. llvm-svn: 299021
-
George Rimar authored
This patch changes GnuHashTableSection implementation to avoid depend on uintX_t and other ELFT stuff, reducing amount of changes for following patch(es). Differential revision: https://reviews.llvm.org/D31184 llvm-svn: 298998
-
Rui Ueyama authored
llvm-svn: 298971
-
Rui Ueyama authored
uint64_t is simpler and less error-prone than target or host-dependent types. llvm-svn: 298969
-
Rui Ueyama authored
If a function takes a size and an alignment, we usually pass them in that order instead of the reverse order. llvm-svn: 298968
-
Rui Ueyama authored
This is not an original comment but taken from gdb man page, so a pointer to the original document should suffice. llvm-svn: 298964
-
Peter Collingbourne authored
This makes the predicates independent of the flag representation and makes the code a little easier to read. llvm-svn: 298951
-
- Mar 28, 2017
-
-
Bob Haarman authored
Summary: In the ELF linker, we create the buffer identifier for bitcode files by appending the object name to the archive name. This change makes the COFF linker do the same. Without the change, ThinLTO builds can fail with an error message about multiple ThinLTO modules per object file, caused by object files contained in different archives having the same name. Reviewers: pcc, ruiu Reviewed By: pcc Subscribers: mehdi_amini Differential Revision: https://reviews.llvm.org/D31402 llvm-svn: 298942
-
Rui Ueyama authored
.gnu.hash happen to contain only 32-bit integers for 32-bit arch, but the section contents are not uniform array members, so setting entsize doesn't make much sense. This behavior seems to have been blindly copied from GNU linkers. llvm-svn: 298934
-
- Mar 27, 2017
-
-
Rui Ueyama authored
llvm-svn: 298829
-
Rui Ueyama authored
This patch calls getAddend on a relocation only when the relocation is RELA. That doesn't really improve runtime performance but should improve readability as the code now matches the function description. llvm-svn: 298828
-
- Mar 26, 2017
-
-
Rui Ueyama authored
llvm-svn: 298821
-
Rui Ueyama authored
llvm-svn: 298818
-
Rui Ueyama authored
Previously, computeAddend had many parameters but most of them were used only for MIPS. The MIPS ABI is too odd that I don't want to mix it into the regular code path. Splitting the function into non-MIPS and MIPS parts makes the regular code path easy to follow. llvm-svn: 298817
-
Rui Ueyama authored
llvm-svn: 298815
-
Rui Ueyama authored
llvm-svn: 298814
-
Rui Ueyama authored
llvm-svn: 298797
-
Rui Ueyama authored
llvm-svn: 298796
-
Rui Ueyama authored
llvm-svn: 298795
-
Rui Ueyama authored
llvm-svn: 298794
-
Rui Ueyama authored
llvm-svn: 298793
-
Rui Ueyama authored
llvm-svn: 298792
-
Rui Ueyama authored
llvm-svn: 298790
-
Rui Ueyama authored
llvm-svn: 298789
-
Rui Ueyama authored
llvm-svn: 298788
-
Rui Ueyama authored
llvm-svn: 298787
-
Rui Ueyama authored
C is short for Chunk, but we are no longer using that term. RI is probably short for relocation iterator, but this is not an interator. llvm-svn: 298786
-
Rui Ueyama authored
Previously, relocation offsets are recalculated for .eh_frame sections inside the main loop, and that messed up the main loop. This patch separates that logic into a dedicated class. llvm-svn: 298785
-
- Mar 25, 2017
-
-
Rui Ueyama authored
I just didn't know that raw_fd_ostream has has_colors() function. llvm-svn: 298749
-
Rui Ueyama authored
llvm-svn: 298748
-