- Mar 17, 2017
-
-
Andre Vieira authored
Patch to fix lld tests after my llvm-objdump patch to fix branch labels for Thumb targets. Reviewed by: emaste Differential Revision: https://reviews.llvm.org/D30986 llvm-svn: 298055
-
Peter Collingbourne authored
llvm-svn: 298038
-
Peter Collingbourne authored
This patch causes us to use pruneCache() to prune the ThinLTO cache after completing LTO. A new flag --thinlto-cache-policy allows users to configure the policy. Differential Revision: https://reviews.llvm.org/D31021 llvm-svn: 298036
-
Peter Collingbourne authored
llvm-svn: 298035
-
Peter Collingbourne authored
The MSVC linker doesn't support them. Differential Revision: https://reviews.llvm.org/D31067 llvm-svn: 298034
-
Peter Collingbourne authored
The Archive object owns the memory buffers of any thin archive members, so we need to make sure the object is still in scope when we access archive members. Differential Revision: https://reviews.llvm.org/D31066 llvm-svn: 298033
-
Peter Collingbourne authored
After the call to sys::fs::exists succeeds, indicating a cache hit, we call AddFile and the client will open the file using the supplied path. If the client is using cache pruning, there is a potential race between the pruner and the client. To avoid this, change the caching API so that it provides a MemoryBuffer to the client, and have clients use that MemoryBuffer where possible. This scheme won't work with the gold plugin because the plugin API expects a file path. So we have the gold plugin use the buffer identifier as a path and live with the race for now. (Note that the gold plugin isn't actually affected by the problem at the moment because it doesn't support cache pruning.) This effectively reverts r279883 modulo the change to use the existing path in the gold plugin. Differential Revision: https://reviews.llvm.org/D31063 llvm-svn: 298020
-
- Mar 16, 2017
-
-
Rui Ueyama authored
This reverts commit r297850 because this change was made based on a miscommunication. llvm-svn: 298001
-
Rui Ueyama authored
The MSVC linker doesn't like archive files containing non-native object files. When we are doing an LTO build, we may create archive files containing both LLVM bitcode files and native object files. For example, if a project contains assembly files and C++ files, we create native object files for the assembly files and LLVM bitcode files for the C++ files. With the /msvclto option, LLD passes archive files to the MSVC linker. Previously, we didn't pass archive files if they contain at least one bitcode files. That wasn't correct because the native object files that weren't passed to the MSVC linker may be needed to complete linking. In this patch, we create new temporary archive files to strip bitcode files. Differential Revision: https://reviews.llvm.org/D31053 llvm-svn: 297997
-
George Rimar authored
Addresses post commit review comment. llvm-svn: 297953
-
George Rimar authored
That opens road to detemplate PltSection<ELFT>, what allows then to detemplate all methods of SymbolBody. llvm-svn: 297950
-
George Rimar authored
Excessive typename keyword. llvm-svn: 297949
-
George Rimar authored
This test would have been broken if we convert SharedSymbols to DefinerRegular without saving the symbol version information when creating .bss/.bss.rel.ro sections for copy relocations. Relative to D30541, PR32167 llvm-svn: 297948
-
George Rimar authored
That allows to detemplate getGotPltOffset/getGotPltVA methods of SymbolBody and also will help to detemplate DynamicReloc itself later. llvm-svn: 297946
-
George Rimar authored
llvm-svn: 297944
-
George Rimar authored
llvm-svn: 297943
-
George Rimar authored
llvm-svn: 297942
-
George Rimar authored
llvm-svn: 297941
-
George Rimar authored
llvm-svn: 297939
-
George Rimar authored
llvm-svn: 297938
-
George Rimar authored
llvm-svn: 297937
-
George Rimar authored
I suppose it is the reason of BB fail: http://lab.llvm.org:8011/builders/clang-cmake-aarch64-lld/builds/921 https://bugs.llvm.org/show_bug.cgi?id=32167 llvm-svn: 297933
-
- Mar 15, 2017
-
-
Zachary Turner authored
It was assuming various things about the PDB like file size which are going to be too high maintenance to maintain in a test. llvm-svn: 297908
-
Zachary Turner authored
Previously we did not have support for writing detailed module information for each module, as well as the symbol records. This patch adds support for this, and in doing so enables the ability to construct minimal PDBs from just a few lines of YAML. A test is added to illustrate this functionality. llvm-svn: 297900
-
George Rimar authored
Suggested by Rui Ueyama, also groups member variables in a single place, while I am here. llvm-svn: 297850
-
George Rimar authored
Became possible after r297844 llvm-svn: 297848
-
George Rimar authored
Patch splits In<ELFT> into 2 classes: one for non-templated sections, second contains ELFT templated ones. That allows to code that was detemplated to access non-templated sections freely, and should open road for futher detemplation proccess. Differential revision: https://reviews.llvm.org/D30939 llvm-svn: 297844
-
Rafael Espindola authored
llvm-svn: 297831
-
Rafael Espindola authored
llvm-svn: 297829
-
George Rimar authored
After introducing Config->is64Bit() and recent changes in LinkerScriptBase, some sections can be detemplated trivially. This is one of such cases. llvm-svn: 297825
-
George Rimar authored
StringTableSection was <ELFT> templated previously, It disallow to de-template code that uses it, for example LinkerScript<ELFT>::discard uses it as: if (S == In<ELFT>::ShStrTab) error("discarding .shstrtab section is not allowed"); It seems we can try to detemplate some of synthetic sections and somehow make them available for non-templated calls. (move out of In<ELFT> struct probably). Differential revision: https://reviews.llvm.org/D30933 llvm-svn: 297815
-
George Rimar authored
That removes CopyRelSection class completely, making Bss/BssRelRo to be just regular synthetics. This is splitted from D30541 and polished. Difference from D30541 that all logic of SharedSymbol converting to DefinedRegular was removed for now and probably will be posted as separate patch. Differential revision: https://reviews.llvm.org/D30892 llvm-svn: 297814
-
George Rimar authored
Patch introduces Config->is64Bit() and with help of that detemplates GotPltSection and IgotPltSection sections Differential revision: https://reviews.llvm.org/D30944 llvm-svn: 297813
-
Petr Hosek authored
D30229 changes the defaults based on section names to match the GAS behavior, which breaks some of the tests that rely on the old defaults. Differential Revision: https://reviews.llvm.org/D30967 llvm-svn: 297803
-
Petr Hosek authored
This also requires postponing the assignment the assignment of symbols defined in input linker scripts since those can refer to output sections and in case we don't have a SECTIONS command, we need to wait until all output sections have been created and assigned addresses. Differential Revision: https://reviews.llvm.org/D30851 llvm-svn: 297802
-
- Mar 14, 2017
-
-
Rafael Espindola authored
Being passed -z notext is a pretty strong indication that the user is OK with text relocations. This is not the same behavior as bfd, but bfd defaults to -z notext, so it has to try to avoid text relocations and use them as a last resort. llvm-svn: 297789
-
George Rimar authored
That moves all members that s possible to move for now (all which does not depend on ELFT templating). After that change LinkerScript contains only 8 methods in total, and I believe it is possible to move them all after tweaking other parts of linker. And we will be able to have single class for linkerscript at the end. llvm-svn: 297735
-
George Rimar authored
llvm-svn: 297734
-
George Rimar authored
llvm-svn: 297732
-
George Rimar authored
It does not use ELFT templates so can be non-virtual. llvm-svn: 297727
-