Skip to content
  1. Jun 18, 2015
  2. Jun 13, 2015
  3. Jun 12, 2015
  4. Jun 09, 2015
  5. Jun 08, 2015
  6. Jun 06, 2015
  7. Jun 03, 2015
  8. Jun 01, 2015
    • Peter Collingbourne's avatar
      COFF: Initial implementation of link-time optimization. · 60c16166
      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
      60c16166
    • Rui Ueyama's avatar
      COFF: Add /alternatename option. · 360bace8
      Rui Ueyama authored
      Previously, this feature was implemented using a special type of
      undefined symbol, in addition to an intricate way to make the resolver
      read a virtual file containing that renaming symbols.
      
      Now the feature is directly handled by the symbol table.
      The symbol table has a function, rename(), to rename symbols, whose
      definition is 4 lines long. Symbol renaming is naturally modeled using
      Symbol and SymbolBody.
      
      llvm-svn: 238696
      360bace8
  9. May 31, 2015
    • Rui Ueyama's avatar
      COFF: Add /include option. · e042fa9a
      Rui Ueyama authored
      It does not involve notions of virtual archives or virtual files,
      nor store a list of undefined symbols somewhere else to consume them later.
      We did that before. In this patch, undefined symbols are just added to
      the symbol table, which now can be done in very few lines of code.
      
      llvm-svn: 238681
      e042fa9a
    • Rui Ueyama's avatar
      COFF: Create LinkerDriver class. · a9cbbf88
      Rui Ueyama authored
      Previously the main linker routine is just a non-member function.
      We store some context information to the Config object.
      This patch makes it belong to Driver.
      
      llvm-svn: 238677
      a9cbbf88
    • Rui Ueyama's avatar
      COFF: Infer entry symbol name if /entry is not given. · 5cff6859
      Rui Ueyama authored
      `main` is not the only main function in Windows. You can choose one
      from these four -- {w,}{WinMain,main}. There are four different entry
      point functions for them, {w,}{WinMain,main}CRTStartup, respectively.
      The linker needs to choose the right one depending on which `main`
      function is defined.
      
      llvm-svn: 238667
      5cff6859
  10. May 29, 2015
  11. May 28, 2015
    • 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