Skip to content
  1. Dec 22, 2016
  2. Dec 10, 2016
  3. Dec 08, 2016
  4. Nov 29, 2016
    • Rui Ueyama's avatar
      Introduce StringRefZ class to represent null-terminated strings. · a13efc2a
      Rui Ueyama authored
      StringRefZ is a class to represent a null-terminated string. String
      length is computed lazily, so it's more efficient than StringRef to
      represent strings in string table.
      
      The motivation of defining this new class is to merge functions
      that only differ in string types; we have many constructors that takes
      `const char *` or `StringRef`. With StringRefZ, we can merge them.
      
      Differential Revision: https://reviews.llvm.org/D27037
      
      llvm-svn: 288172
      a13efc2a
  5. Nov 26, 2016
  6. Nov 23, 2016
    • Rui Ueyama's avatar
      Remove one of SymbolTable::addRegular function that forwards other addRegular. · 0cbf7493
      Rui Ueyama authored
      So that we have less number of overloaded functions.
      
      llvm-svn: 287745
      0cbf7493
    • Rui Ueyama's avatar
      Parse symbol versions in scanVersionScript() instead of insert(). · 35fa6c58
      Rui Ueyama authored
      There are two ways to set symbol versions. One way is to use symbol
      definition file, and the other is to embed version names to symbol
      names. In the latter way, symbol name is in the form of `foo@version1`
      where `foo` is a real name and `version1` is a version.
      
      We were parsing symbol names in insert(). That seems unnecessarily
      too early. We can do it later after we resolve all symbols. Doing it
      lazily is a good thing because it makes code easier to read
      (because now we have a separate pass to parse symbol names). Also
      it could slightly improve performance because if two identical symbols
      have versions, we now parse them only once.
      
      llvm-svn: 287741
      35fa6c58
  7. Nov 17, 2016
  8. Nov 16, 2016
  9. Nov 15, 2016
    • Rui Ueyama's avatar
      Refactor symbol version assignmnt code. · 82492142
      Rui Ueyama authored
      The code to handle symbol versions is getting tricky and hard to
      understand, so it is probably time to simplify it. This patch does
      the following.
      
       - Add `DemangledSyms` variable to SymbolTable so that we don't
         need to pass it around to findDemangled.
       - Define `initDemangledSyms` to initialize the variable lazily.
       - hasExternCpp is removed because we no longer have to initialize
         the map eagerly.
       - scanScriptVersion is split.
       - Comments are updated.
      
      llvm-svn: 287002
      82492142
    • George Rimar's avatar
      [ELF] - Better diagnostic for relative relocation to an absolute value error. · 463984d4
      George Rimar authored
      Patch adds a filename to that error message.
      
      I faced next error when debugged one of FreeBSD port:
      error: relocation R_X86_64_PLT32 cannot refer to absolute symbol __tls_get_addr
      
      error message was poor and this patch improves it to show the locations 
      of symbol declaration and using.
      
      Differential revision: https://reviews.llvm.org/D26508
      
      llvm-svn: 286940
      463984d4
  10. Nov 10, 2016
  11. Nov 08, 2016
  12. Nov 05, 2016
    • 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
  13. Nov 03, 2016
  14. Nov 02, 2016
  15. 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
  16. Oct 27, 2016
  17. Oct 26, 2016
  18. Oct 21, 2016
  19. Oct 18, 2016
  20. Sep 29, 2016
  21. Sep 15, 2016
  22. Sep 14, 2016
  23. Sep 13, 2016
  24. Sep 10, 2016
  25. Sep 02, 2016
  26. Aug 31, 2016
Loading