Skip to content
  1. Jun 01, 2015
  2. May 29, 2015
    • Rui Ueyama's avatar
      COFF: Fill imort table HintName field. · c9bfe320
      Rui Ueyama authored
      Currently we set the field to zero, but as per the spec, we should
      set numbers we read from import library files. The loader uses the
      values as starting offsets for binary search when looking up imported
      symbols from DLL.
      
      llvm-svn: 238562
      c9bfe320
  3. May 28, 2015
    • Rui Ueyama's avatar
      Fix non-debug build. · 9aefa0c6
      Rui Ueyama authored
      llvm-svn: 238474
      9aefa0c6
    • Rui Ueyama's avatar
      COFF: Teach Chunk to write to a mmap'ed output file. · d6fefba4
      Rui Ueyama authored
      Previously Writer directly handles writes to a file.
      Chunks needed to give Writer a continuous chunk of memory.
      That was inefficent if you construct data in chunks because
      it would require two memory copies (one to construct a chunk
      and the other is to write that to a file).
      
      This patch teaches chunk to write directly to a file.
      From readability point of view, this is also good because
      you no longer have to call hasData() before calling getData().
      
      llvm-svn: 238464
      d6fefba4
    • 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