- Dec 19, 2017
-
-
Rafael Espindola authored
The test was using both // and # before. git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@321049 91177308-0d34-0410-b5e6-96231b3b80d8
-
Sam Clegg authored
git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@321044 91177308-0d34-0410-b5e6-96231b3b80d8
-
Craig Topper authored
Adjust test to account for llvm change where an empty CPU string will no longer generate a long nop on x86. Long nops aren't supported by all x86 CPUs. So if no CPU is specified we have to use a single byte nop. git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@321040 91177308-0d34-0410-b5e6-96231b3b80d8
-
Rafael Espindola authored
It is not necessary and matches what bfd and gold do. This was a regression from r315658. git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@321023 91177308-0d34-0410-b5e6-96231b3b80d8
-
Shoaib Meenai authored
git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@321022 91177308-0d34-0410-b5e6-96231b3b80d8
-
Rafael Espindola authored
This also changed in r315658. The new result is the correct one. git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@321021 91177308-0d34-0410-b5e6-96231b3b80d8
-
Sam Clegg authored
git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@321020 91177308-0d34-0410-b5e6-96231b3b80d8
-
Dimitry Andric authored
git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@321016 91177308-0d34-0410-b5e6-96231b3b80d8
-
Francis Visoiu Mistrih authored
git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@320997 91177308-0d34-0410-b5e6-96231b3b80d8
-
Rafael Espindola authored
This changed in r315658, but it was missing a test. git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@320995 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Dec 18, 2017
-
-
Peter Smith authored
A more efficient PLT sequence can be used when the distance between the .plt and the end of the .plt.got is less than 128 Megabytes, which is frequently true. We fall back to the old sequence when the offset is larger than 128 Megabytes. This gives us an alternative to forcing the longer entries with --long-plt as we gracefully fall back to it as needed. See ELF for the ARM Architecture Appendix A for details of the PLT sequence. Differential Revision: https://reviews.llvm.org/D41246 git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@320987 91177308-0d34-0410-b5e6-96231b3b80d8
-
Sam Clegg authored
This is a preparetory change for function gc which also requires relocations to be copied in ranges like this. Differential Revision: https://reviews.llvm.org/D41313 git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@320948 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Dec 16, 2017
-
-
Vitaly Buka authored
Summary: 1. Use stream 0 only for combined module. Previously if combined module was not processes ThinLTO used the stream for own output. However small changes in input, could trigger combined module and shuffle outputs making life of llvm::LTO harder. 2. Always process combined module and write output to stream 0. Processing empty combined module is cheap and allows llvm::LTO users to avoid implementing processing which is already done in llvm::LTO. Subscribers: mehdi_amini, inglorion, eraman, hiraditya Differential Revision: https://reviews.llvm.org/D41267 git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@320905 91177308-0d34-0410-b5e6-96231b3b80d8
-
Shoaib Meenai authored
/debug and /debug:dwarf are orthogonal. An object file can contain both CodeView and DWARF debug info, so the combination of /debug:dwarf and /debug should generate both DWARF and a PDB, rather than /debug:dwarf always suppressing PDB creation. /nopdb is now redundant and can be removed. /debug /nopdb was previously used to support DWARF, but specifying /debug:dwarf is entirely equivalent to that combination now. Differential Revision: https://reviews.llvm.org/D41310 git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@320896 91177308-0d34-0410-b5e6-96231b3b80d8
-
Shoaib Meenai authored
This comment dates from when LLD didn't produce actual PDBs, and is very outdated now. git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@320894 91177308-0d34-0410-b5e6-96231b3b80d8
-
Shoaib Meenai authored
We can just pass multiple options to hasArgs (which will check for any of those options being present) instead of calling it multiple times. git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@320892 91177308-0d34-0410-b5e6-96231b3b80d8
-
Sam Clegg authored
This bug was introduced in: https://reviews.llvm.org/D41304. Add a test for this case. Differential Revision: https://reviews.llvm.org/D41309 git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@320872 91177308-0d34-0410-b5e6-96231b3b80d8
-
Martin Storsjo authored
The COFF linker automatically sets the IMAGE_DLL_CHARACTERISTICS_NO_SEH when suitable, similarly to link.exe. Differential Revision: https://reviews.llvm.org/D41275 git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@320861 91177308-0d34-0410-b5e6-96231b3b80d8
-
Martin Storsjo authored
This seems to match how link.exe sets it. Differential Revision: https://reviews.llvm.org/D41252 git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@320860 91177308-0d34-0410-b5e6-96231b3b80d8
-
Rui Ueyama authored
We add dynamic section entries both in the ctor of the class and DynamicSection::finalizeContents(). Some entries need to be added early in the ctor because they add strings to .dynstr. Other entries were intended to be added in finalizeContents(). However, some entries are added in the ctor even though they don't add strings. This patch fix the issue. git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@320851 91177308-0d34-0410-b5e6-96231b3b80d8
-
Sam Clegg authored
Since imports are undefined symbols we know we can find all of them my looking at the symbol table alone. (i.e. imports cannot be have local binding). This will be strictly faster and also allows us to to remove a method from Symbol class Differential Revision: https://reviews.llvm.org/D41304 git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@320847 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Dec 15, 2017
-
-
Peter Smith authored
We only need to exceed 128 Megabytes to provoke the generation of a range extension thunk. This brings the file size down to just over 128 Megabytes. git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@320821 91177308-0d34-0410-b5e6-96231b3b80d8
-
Rafael Espindola authored
git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@320818 91177308-0d34-0410-b5e6-96231b3b80d8
-
Rafael Espindola authored
I noticed that the continue this patch deletes was not tested. Trying to add a test I realized that we never put a VER_NDX_LOCAL symbol in the dynamic symbol table. There doesn't seem to be any reason for a linker to use VER_NDX_LOCAL for a defined shared symbol. git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@320817 91177308-0d34-0410-b5e6-96231b3b80d8
-
Peter Smith authored
The ARM.exidx section contains a table of 8-byte entries with the first word of each entry an offset to the function it describes and the second word instructions for unwinding if an exception is thrown from that function. The SHF_LINK_ORDER processing will order the table in ascending order of the functions described by the exception table entries. As the address range of an exception table entry is terminated by the next table entry, it is possible to merge consecutive table entries that have identical unwind instructions. For this implementation we define a table entry to be identical if: - Both entries are the special EXIDX_CANTUNWIND. - Both entries have the same inline unwind instructions. We do not attempt to establish if table entries that are references to .ARM.extab sections are identical. This implementation works at a granularity of a single .ARM.exidx InputSection. If all entries in the InputSection are identical to the previous table entry we can remove the InputSection. A more sophisticated but more complex implementation would rewrite InputSection contents so that duplicates within a .ARM.exidx InputSection can be merged. Differential Revision: https://reviews.llvm.org/D40967 git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@320803 91177308-0d34-0410-b5e6-96231b3b80d8
-
Peter Smith authored
Forgot to svn add the additional test for the commit. Adding with this one. git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@320802 91177308-0d34-0410-b5e6-96231b3b80d8
-
Peter Smith authored
Forward declare InputSectionDescription as struct not class. git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@320801 91177308-0d34-0410-b5e6-96231b3b80d8
-
Peter Smith authored
This patch provides the mechanism to fix instances of the instruction sequence that may trigger the cortex-a53 843419 erratum. The fix is provided by an alternative instruction sequence to remove one of the erratum conditions. To reach this alternative instruction sequence we replace the original instruction with a branch to the alternative sequence. The alternative sequence is responsible for branching back to the original. As there is only erratum to fix the implementation is specific to AArch64 and the specific erratum conditions. It should be generalizable to other targets and erratum if needed. Differential Revision: https://reviews.llvm.org/D36749 git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@320800 91177308-0d34-0410-b5e6-96231b3b80d8
-
Shoaib Meenai authored
Windows paths have colons in them, so the regex will fail there. Just match for any character; the rest of the message will restrict the match to the path anyway. git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@320793 91177308-0d34-0410-b5e6-96231b3b80d8
-
Shoaib Meenai authored
Locally imported symbols are a very surprising linker feature. link.exe warns for them, and we should warn too. Differential Revision: https://reviews.llvm.org/D41269 git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@320792 91177308-0d34-0410-b5e6-96231b3b80d8
-
Sam Clegg authored
git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@320777 91177308-0d34-0410-b5e6-96231b3b80d8
-
Rui Ueyama authored
git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@320773 91177308-0d34-0410-b5e6-96231b3b80d8
-
Rui Ueyama authored
git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@320772 91177308-0d34-0410-b5e6-96231b3b80d8
-
Rui Ueyama authored
Specifically, libwidevinecdm.so in Chrome has such bad symbol. It seems the BFD linker handles them as local symbols, so instead of inserting them to the symbol table, we should skip them too. Differential Revision: https://reviews.llvm.org/D41257 git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@320770 91177308-0d34-0410-b5e6-96231b3b80d8
-
Rui Ueyama authored
Patch by Chen-Pang He. git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@320754 91177308-0d34-0410-b5e6-96231b3b80d8
-
Sam Clegg authored
Subscribers: aheejin, llvm-commits Differential Revision: https://reviews.llvm.org/D41255 git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@320741 91177308-0d34-0410-b5e6-96231b3b80d8
-
Hans Wennborg authored
git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@320738 91177308-0d34-0410-b5e6-96231b3b80d8
-
Zachary Turner authored
This adds the /DEBUG:GHASH option to LLD which will look for the existence of .debug$H sections in linker inputs and use them to accelerate type merging. The clang-cl side has already been added, so this completes the work necessary to begin experimenting with this feature. Differential Revision: https://reviews.llvm.org/D40980 git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@320719 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Dec 14, 2017
-
-
Martin Storsjo authored
This is similar to what was added in SVN r277838 for 24 bit branch instructions. Differential Revision: https://reviews.llvm.org/D41163 git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@320677 91177308-0d34-0410-b5e6-96231b3b80d8
-
Martin Storsjo authored
This works for linking the output from the MSVC compiler. The pdata entries for arm64 seem to be 8 bytes in the same (or at least similar) form to arm. Differential Revision: https://reviews.llvm.org/D41160 git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@320676 91177308-0d34-0410-b5e6-96231b3b80d8
-