llvm-project/lld/COFF
Martin Storsjo 802fcb4167 [COFF] When doing automatic dll imports, replace whole .refptr.<var> chunks with __imp_<var>
After fixing up the runtime pseudo relocation, the .refptr.<var>
will be a plain pointer with the same value as the IAT entry itself.
To save a little binary size and reduce the number of runtime pseudo
relocations, redirect references to the IAT entry (via the __imp_<var>
symbol) itself and discard the .refptr.<var> chunk (as long as the
same section chunk doesn't contain anything else than the single
pointer).

As there are now cases for both setting the Live variable to true
and false externally, remove the accessors and setters and just make
the variable public instead.

Differential Revision: https://reviews.llvm.org/D51456

llvm-svn: 341175
2018-08-31 07:45:20 +00:00
..
CMakeLists.txt Merge {COFF,ELF}/Strings.cpp to Common/Strings.cpp. 2018-02-28 17:38:19 +00:00
Chunks.cpp [COFF] When doing automatic dll imports, replace whole .refptr.<var> chunks with __imp_<var> 2018-08-31 07:45:20 +00:00
Chunks.h [COFF] When doing automatic dll imports, replace whole .refptr.<var> chunks with __imp_<var> 2018-08-31 07:45:20 +00:00
Config.h [PDB] Add PDBSourcePath flag to support absolutize source file path 2018-07-19 04:56:22 +00:00
DLL.cpp Consistent (non) use of empty lines in include blocks 2018-02-20 21:53:18 +00:00
DLL.h COFF: Process /merge flag as we create output sections. 2018-04-07 00:46:55 +00:00
Driver.cpp [COFF] Merge the .ctors, .dtors and .CRT sections into .rdata for MinGW 2018-08-29 17:24:10 +00:00
Driver.h lld-link: Fix subsystem inference for non-console apps on 32-bit, and fix entry point inference on 32-bit with /nodefaultlib 2018-08-03 12:00:12 +00:00
DriverUtils.cpp lld-link: Remove /msvclto option 2018-08-01 19:00:49 +00:00
ICF.cpp [COFF] When doing automatic dll imports, replace whole .refptr.<var> chunks with __imp_<var> 2018-08-31 07:45:20 +00:00
ICF.h Consistent use of header file for ICF and MarkLive 2018-02-20 22:09:59 +00:00
InputFiles.cpp COFF: Implement safe ICF on rodata using address-significance tables. 2018-08-23 17:44:42 +00:00
InputFiles.h COFF: Implement safe ICF on rodata using address-significance tables. 2018-08-23 17:44:42 +00:00
LTO.cpp Code cleanup in preparation for adding LTO for wasm. NFC. 2018-05-22 20:20:25 +00:00
LTO.h Code cleanup in preparation for adding LTO for wasm. NFC. 2018-05-22 20:20:25 +00:00
MapFile.cpp COFF: Move assignment of section RVAs to assignAddresses(). NFCI. 2018-03-15 21:13:46 +00:00
MapFile.h COFF: Change the /lldmap output format to be more like the ELF linker. 2017-01-14 03:14:46 +00:00
MarkLive.cpp [COFF] When doing automatic dll imports, replace whole .refptr.<var> chunks with __imp_<var> 2018-08-31 07:45:20 +00:00
MarkLive.h Consistent use of header file for ICF and MarkLive 2018-02-20 22:09:59 +00:00
MinGW.cpp [COFF] Skip exporting artificial symbols when exporting all symbols 2018-08-30 05:44:41 +00:00
MinGW.h [COFF] Avoid forward declaring StringSet, fix build 2017-10-19 20:19:16 +00:00
Options.td lld-link: Remove /msvclto option 2018-08-01 19:00:49 +00:00
PDB.cpp [COFF] When doing automatic dll imports, replace whole .refptr.<var> chunks with __imp_<var> 2018-08-31 07:45:20 +00:00
PDB.h COFF: Friendlier undefined symbol errors. 2018-04-17 23:32:33 +00:00
README.md Update the documents of the new LLD. 2016-03-12 06:06:40 +00:00
SymbolTable.cpp [COFF] When doing automatic dll imports, replace whole .refptr.<var> chunks with __imp_<var> 2018-08-31 07:45:20 +00:00
SymbolTable.h [COFF] Support MinGW automatic dllimport of data 2018-08-27 08:43:31 +00:00
Symbols.cpp [COFF] When doing automatic dll imports, replace whole .refptr.<var> chunks with __imp_<var> 2018-08-31 07:45:20 +00:00
Symbols.h fix comment typo 2018-08-27 14:22:25 +00:00
Writer.cpp [COFF] When doing automatic dll imports, replace whole .refptr.<var> chunks with __imp_<var> 2018-08-31 07:45:20 +00:00
Writer.h COFF: Use (name, output characteristics) as a key when grouping input sections into output sections. 2018-04-20 21:10:33 +00:00

README.md

See docs/NewLLD.rst