- Apr 03, 2017
-
-
Rui Ueyama authored
llvm-svn: 299377
-
Rui Ueyama authored
LogName member was added to construct input file names for logging only once. This patch does this in a different way. Now toString caches its results. Differential Revision: https://reviews.llvm.org/D31546 llvm-svn: 299375
-
- Apr 01, 2017
-
-
Rui Ueyama authored
llvm-svn: 299289
-
Rui Ueyama authored
This patch is intended to improve readability of "duplicate symbol" error messages. Without this patch: /ssd/clang/bin/ld.lld: error: /ssd/llvm-project/lld/ELF/Relocations.cpp:1054: duplicate symbol 'lld::elf::demangle(llvm::StringRef)' /ssd/clang/bin/ld.lld: error: /ssd/llvm-project/lld/ELF/Strings.cpp:93: previous definition was here With this patch: /ssd/clang/bin/ld.lld: error: duplicate symbol: lld::elf::demangle(llvm::StringRef) >>> defined at Strings.cpp:93 (/ssd/llvm-project/lld/ELF/Strings.cpp:93) >>> Strings.cpp.o:(lld::elf::demangle(llvm::StringRef)) in archive lib/liblldELF.a >>> defined at Relocations.cpp:1054 (/ssd/llvm-project/lld/ELF/Relocations.cpp:1054) >>> Relocations.cpp.o:(.text+0x4C30) in archive lib/liblldELF.a Discussion thread: http://lists.llvm.org/pipermail/llvm-dev/2017-March/111459.html Differential Revision: https://reviews.llvm.org/D31507 llvm-svn: 299280
-
- 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
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
-
-
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
-