Skip to content
  1. Dec 05, 2013
    • Rui Ueyama's avatar
      [PECOFF] Handle .lib files as if they are grouped by --{start,end}-group. · 16c025e2
      Rui Ueyama authored
      Currently we do not de-duplicate library files specified by /defaultlib option.
      As a result, the same files are added multiple times to the input graph. In
      particular, some popular files, such as kernel32.lib or oldnames.lib, are added
      more than 10 times during linking of LLD. That makes the linker slower, as it
      needs to parse the same file again and again.
      
      This patch solves the issue by de-duplicating. The same file will be added only
      once to the input graph. This patch improved the LLD linking time from 10.5
      seconds to 7.7 seconds on my 4-core Core i7 Macbook Pro.
      
      llvm-svn: 196504
      16c025e2
  2. Dec 03, 2013
  3. Dec 02, 2013
  4. Dec 01, 2013
    • Rui Ueyama's avatar
      [PECOFF] Fix /debug option. · 8de2250a
      Rui Ueyama authored
      /DEBUG option is to make the linker to emit debug information to the resulting
      executable. It's not for enable debugging of the linker itself.
      
      llvm-svn: 196040
      8de2250a
  5. Nov 27, 2013
    • Rui Ueyama's avatar
      [PECOFF] Improve /merge option handling. · 615b200c
      Rui Ueyama authored
      /MERGE option is a bit complicated for many reasons. Firstly, it takes both
      positive and negative arguments. That means we have to have one of three
      distinctive values (set, clear or unchange) for each permission bit. In this
      patch we represent the three values using two bitmasks.
      
      Secondly, the permissions specified by the parameter is bitwise or-ed with the
      default permissions of a section. There is an exception for that rule; if one
      of READ, WRITE or EXECUTE bit is specified, unspecified bits need to be
      cleared. (So if you specify only WRITE for example, the resulting section will
      not have WRITE nor EXECUTE bits.)
      
      Lastly, multiple /merge options are allowed.
      
      llvm-svn: 195882
      615b200c
  6. Nov 26, 2013
  7. Nov 22, 2013
  8. Nov 21, 2013
  9. Nov 15, 2013
  10. Nov 13, 2013
  11. Nov 06, 2013
  12. Nov 01, 2013
  13. Oct 31, 2013
  14. Oct 30, 2013
  15. Oct 29, 2013
  16. Oct 27, 2013
    • Chandler Carruth's avatar
      Rather than rendering an argument to a std::string (which is primarily · 9204c831
      Chandler Carruth authored
      intended for debugging and diagnostic output), just inspect the spelling
      to check for specific prefixes in drectve section flags.
      
      In addition to being significantly cheaper and not relying on
      a debugging interface, this also avoids creating a temporary string and
      binding it to StringRef variable. We then went on to access it after the
      memory had been deallocated.
      
      This bug too was caught by ASan. I love ASan so much. =]
      
      llvm-svn: 193487
      9204c831
  17. Oct 26, 2013
  18. Oct 25, 2013
  19. Oct 24, 2013
    • Rui Ueyama's avatar
      [PECOFF] Support embedding resource file into executable. · b32b95d8
      Rui Ueyama authored
      Instead of making the linker to create a manifest XML file in the same
      directory as the resulting binary, you can embed the XML as a part of
      resource into the executable.
      
      In order to do that, the linker first creates a resource script file containing
      the XML file, compile it into a binary resource file with RC.EXE, and then
      convert it to a COFF file with CVTRES.EXE.
      
      llvm-svn: 193298
      b32b95d8
  20. Oct 23, 2013
  21. Oct 22, 2013
Loading