summaryrefslogtreecommitdiffstats
path: root/lld/COFF/InputFiles.h
Commit message (Collapse)AuthorAgeFilesLines
...
* COFF: Read linker directives from bitcode files.Peter Collingbourne2015-06-061-0/+4
| | | | | | Differential Revision: http://reviews.llvm.org/D10285 llvm-svn: 239212
* COFF: Remove BitcodeFile::BitcodeFile(StringRef Filename).Rui Ueyama2015-06-011-5/+3
| | | | | | | | In r238690, I made all files have only MemoryBufferRefs. This change is to do the same thing for the bitcode file reader. Also updated a few variable names to match with other code. llvm-svn: 238782
* COFF: Initial implementation of link-time optimization.Peter Collingbourne2015-06-011-1/+25
| | | | | | | | This implementation is known to work in very simple cases (see new test case). Differential Revision: http://reviews.llvm.org/D10115 llvm-svn: 238777
* COFF: Make the Driver own all MemoryBuffers. NFC.Rui Ueyama2015-05-311-13/+8
| | | | | | | | | | | Previously, a MemoryBuffer of a file was owned by each InputFile object. This patch makes the Driver own all of them. InputFiles now have only MemoryBufferRefs. This change simplifies ownership managment (particularly for ObjectFile -- the object owned a MemoryBuffer only when it's not created from an archive file, because in that case a parent archive file owned the entire buffer. Now it owns nothing unconditionally.) llvm-svn: 238690
* Rename InputFile::Name -> InputFile::Filename.Rui Ueyama2015-05-281-7/+7
| | | | | | | Other local variables shadowed the member variable. Rename to make that a bit longer. llvm-svn: 238478
* COFF: Add a new PE/COFF port.Rui Ueyama2015-05-281-0/+168
This is an initial patch for a section-based COFF linker. The patch has 2300 lines of code including comments and blank lines. Before diving into details, you want to start from reading README because it should give you an overview of the design. All important things are written in the README file, so I write summary here. - The linker is already able to self-link on Windows. - It's significantly faster than the existing implementation. The existing one takes 5 seconds to link LLD on my machine, while the new one only takes 1.2 seconds, even though the new one is not multi-threaded yet. (And a proof-of-concept multi- threaded version was able to link it in 0.5 seconds.) - It uses much less memory (250MB vs. 2GB virtual memory space to self-host). - IMHO the new code is much simpler and easier to read than the existing PE/COFF port. http://reviews.llvm.org/D10036 llvm-svn: 238458
OpenPOWER on IntegriCloud