- Jun 29, 2015
-
-
Chandler Carruth authored
method to get a SymbolBody and into the callers, and kill now dead includes. This removes the need to have the SymbolBody definition when we're defining the inline method and makes it a better inline method. That was the only reason for a lot of header includes here. Removing these and using forward declarations actually uncovers a bunch of cross-header dependencies that I've fixed while I'm here, and will allow me to introduce some *important* inline code into Chunks.h that requires the definition of ObjectFile. No functionality changed at this point. Differential Revision: http://reviews.llvm.org/D10789 llvm-svn: 240982
-
- Jun 28, 2015
-
-
Rui Ueyama authored
llvm-svn: 240899
-
- Jun 27, 2015
-
-
Chandler Carruth authored
This function is actually *very* hot. It is hard to see currently because the call graph is very recursive, but I'm working to remove that and when I do this function becomes significantly higher on the profile (up to 5%!) and so worth avoiding the call overhead. No specific perf gain I can measure yet (below the noise), but likely to have more impact as we stop cluttering the call graph. Differential Revision: http://reviews.llvm.org/D10788 llvm-svn: 240873
-
- Jun 21, 2015
-
-
Rui Ueyama authored
llvm-svn: 240229
-
- Jun 13, 2015
-
-
Rafael Espindola authored
llvm-svn: 239671
-
- Jun 08, 2015
-
-
Rui Ueyama authored
This change seems to make the linker about 10% faster. Reading symbol name is not very cheap because it needs strlen() on the string table. We were wasting time on reading non-external symbol names that would never be used by the linker. llvm-svn: 239332
-
Rui Ueyama authored
llvm-svn: 239289
-
Rui Ueyama authored
Now that all InputFile subclasses have MemoryBufferRefs and provides the same set of functions. Implement that in the base class. llvm-svn: 239281
-
- Jun 06, 2015
-
-
Peter Collingbourne authored
Differential Revision: http://reviews.llvm.org/D10285 llvm-svn: 239212
-
- Jun 01, 2015
-
-
Rui Ueyama authored
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
-
Peter Collingbourne authored
This implementation is known to work in very simple cases (see new test case). Differential Revision: http://reviews.llvm.org/D10115 llvm-svn: 238777
-
- May 31, 2015
-
-
Rui Ueyama authored
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
-
- May 28, 2015
-
-
Rui Ueyama authored
Other local variables shadowed the member variable. Rename to make that a bit longer. llvm-svn: 238478
-
Rui Ueyama authored
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
-