Skip to content
  1. Nov 23, 2016
    • Rui Ueyama's avatar
      Limit default maximum number of errors to 20. · ac95f6bf
      Rui Ueyama authored
      This is in the context of https://llvm.org/bugs/show_bug.cgi?id=31109.
      When LLD prints out errors for relocations, it tends to print out
      extremely large number of errors (like millions) because it would
      print out one error per relocation.
      
      This patch makes LLD bail out if it prints out more than 20 errors.
      You can configure the limitation using -error-limit argument.
      -error-limit=0 means no limit.
      
      I chose the flag name because Clang has the same feature as -ferror-limit.
      "f" doesn't make sense to us, so I omitted it.
      
      Differential Revision: https://reviews.llvm.org/D26981
      
      llvm-svn: 287789
      ac95f6bf
    • Simon Atanasyan's avatar
      [ELF][MIPS] Turn Config->Threads off for MIPS targets · 399ac5c3
      Simon Atanasyan authored
      For now MipsGotSection class is not ready for concurrent access from
      multiple threads. The problem is in the getPageEntryOffset method. It
      changes state of MipsGotSection object and might be called from
      different threads at the same time. So turn Threads off for this target.
      
      It's a temporary solution. The patch fixes MipsGotSection::getPageEntryOffset
      is almost ready.
      
      Differential revision: https://reviews.llvm.org/D27035
      
      llvm-svn: 287740
      399ac5c3
  2. Nov 21, 2016
  3. Nov 20, 2016
  4. Nov 19, 2016
  5. Nov 17, 2016
    • Rui Ueyama's avatar
      Enable -threads by default. · 7ee38e00
      Rui Ueyama authored
      LLD supports multi-threading, and it seems to be working well as
      you can see in r287140. In short, LLD runs a few percent to 30%
      faster with -threads and more than 50% faster if you are using
      -build-id (your mileage may vary depending on your computer).
      
      However, I don't think most users even don't know about that because
      -threads is not a default option.
      
      This patch enables it by default.
      
      Discussion thread:
      http://lists.llvm.org/pipermail/llvm-dev/2016-November/107160.html
      
      llvm-svn: 287237
      7ee38e00
  6. Nov 16, 2016
  7. Nov 11, 2016
  8. Nov 10, 2016
    • George Rimar's avatar
      [ELF] - Implemented --symbol-ordering-file option. · 1a33c0f2
      George Rimar authored
      Patch allows to pass a symbols file to linker.
      LLD will map symbols to sections and sort sections
      in output according to symbol ordering file.
      
      That can help to reduce the startup time and/or
      amount of pagefaults during startup.
      
      Also, interesting benchmark result was produced by Rafael Espíndola. 
      After applying the symbols file for clang he timed compiling 
      X86MCTargetDesc.ii to an object file.  
      
      The page faults went from just
      56,988 to 56,946 since most faults are not in the binary.
      Running time went from 4.403053515 to 4.178112244. 
      The speedup seems to be because of better cache
      locality.
      
      Differential revision: https://reviews.llvm.org/D26130
      
      llvm-svn: 286440
      1a33c0f2
  9. Nov 09, 2016
  10. Nov 08, 2016
  11. Nov 05, 2016
    • Simon Atanasyan's avatar
      [ELF][MIPS] N32 ABI support · 9e0297b8
      Simon Atanasyan authored
      In short the patch introduces support for linking object file conform
      MIPS N32 ABI [1]. This ABI is similar to N64 ABI but uses 32-bit
      pointer size.
      
      The most non-trivial requirement of this ABI is one more relocation
      packing format. N64 ABI puts multiple relocation type into the single
      relocation record. The N32 ABI uses series of successive relocations
      with the same offset for this purpose. In this patch, new function
      `mergeMipsN32RelTypes` handle this case and "convert" N32 relocation to
      the N64 relocation so the rest of the code keep unchanged.
      
      For now, linker does not support series of relocations applied to sections
      without SHF_ALLOC bit. Probably later I will add the support or insert
      some sort of assert into the `relocateNonAlloc` routine to catch this
      case.
      
      [1] ftp://www.linux-mips.org/pub/linux/mips/doc/ABI/MIPS-N32-ABI-Handbook.pdf
      
      Differential revision: https://reviews.llvm.org/D26298
      
      llvm-svn: 286052
      9e0297b8
    • Rui Ueyama's avatar
      Create a vector containing all input sections. · 8c6a5aaf
      Rui Ueyama authored
      Previously, we do this piece of code to iterate over all input sections.
      
        for (elf::ObjectFile<ELFT> *F : Symtab.getObjectFiles())
          for (InputSectionBase<ELFT> *S : F->getSections())
      
      It turned out that this mechanisms doesn't work well with synthetic
      input sections because synthetic input sections don't belong to any
      input file.
      
      This patch defines a vector that contains all input sections including
      synthetic ones.
      
      llvm-svn: 286051
      8c6a5aaf
  12. Nov 01, 2016
  13. Oct 28, 2016
    • Rui Ueyama's avatar
      Consolidate BumpPtrAllocators. · 55518e7d
      Rui Ueyama authored
      Previously, we have a lot of BumpPtrAllocators, but all these
      allocators virtually have the same lifetime because they are
      not freed until the linker finishes its job. This patch aggregates
      them into a single allocator.
      
      Differential revision: https://reviews.llvm.org/D26042
      
      llvm-svn: 285452
      55518e7d
  14. Oct 27, 2016
  15. Oct 26, 2016
    • Rafael Espindola's avatar
      Call _exit. · cb09daab
      Rafael Espindola authored
      As the state of lld gets more complicated, shutting down gets more
      expensive.
      
      In a normal lld run we can just call _exit immediately after renaming
      the temporary output file. We still want the ability to run a full
      shutdown since that is useful for detecting memory leaks.
      
      This patch adds a --full-shutdown flag and changes lit to use it.
      
      llvm-svn: 285224
      cb09daab
    • Rafael Espindola's avatar
      Reduce the number of allocators. · 5da1d884
      Rafael Espindola authored
      We used to have one allocator per file, which reduces the advantage of
      using an allocator in the first place.
      
      This is a small speed up is most cases. The largest speedup was in
      1.014X in chromium no-gc. The largest slowdown was scylla at 1.003X.
      
      llvm-svn: 285205
      5da1d884
    • Rui Ueyama's avatar
      Split LinkerDriver::link. NFC. · c5dd543d
      Rui Ueyama authored
      llvm-svn: 285169
      c5dd543d
    • Rui Ueyama's avatar
      Rename variable to be more consistent. · c773c9f4
      Rui Ueyama authored
      llvm-svn: 285164
      c773c9f4
    • Rui Ueyama's avatar
      Truncate a SVN path part from --version output. · 80695c1a
      Rui Ueyama authored
      This is in sync with what clang does.
      
      llvm-svn: 285163
      80695c1a
  16. Oct 20, 2016
  17. Oct 19, 2016
  18. Oct 17, 2016
Loading