Skip to content
  1. Jun 29, 2015
    • Chandler Carruth's avatar
      [opt] Hoist the call throuh SymbolBody::getReplacement out of the inline · be6e80b0
      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
      be6e80b0
  2. Jun 28, 2015
  3. Jun 27, 2015
    • Chandler Carruth's avatar
      [opt] Inline a trivial lookup function into the header. · 52eb3557
      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
      52eb3557
  4. Jun 21, 2015
  5. Jun 13, 2015
  6. Jun 08, 2015
    • Rui Ueyama's avatar
      COFF: Read symbol names lazily. · 57fe78d3
      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
      57fe78d3
    • Rui Ueyama's avatar
      COFF: Add more log messages. · eeae5ddb
      Rui Ueyama authored
      llvm-svn: 239289
      eeae5ddb
    • Rui Ueyama's avatar
      COFF: Simplify InputFile class. · f811472b
      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
      f811472b
  7. Jun 06, 2015
  8. Jun 01, 2015
  9. May 31, 2015
    • Rui Ueyama's avatar
      COFF: Make the Driver own all MemoryBuffers. NFC. · d7c2f584
      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
      d7c2f584
  10. May 28, 2015
    • Rui Ueyama's avatar
      Rename InputFile::Name -> InputFile::Filename. · d52824d3
      Rui Ueyama authored
      Other local variables shadowed the member variable.
      Rename to make that a bit longer.
      
      llvm-svn: 238478
      d52824d3
    • Rui Ueyama's avatar
      COFF: Add a new PE/COFF port. · 411c6360
      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
      411c6360
Loading