Skip to content
  1. Jul 20, 2016
  2. Jul 19, 2016
  3. Jul 18, 2016
  4. Jul 17, 2016
    • Rui Ueyama's avatar
      Unbreak msan buildbot. · 25a6d57b
      Rui Ueyama authored
      llvm-svn: 275728
      25a6d57b
    • Rui Ueyama's avatar
      Remove dead code. · 77fa5ee1
      Rui Ueyama authored
      llvm-svn: 275724
      77fa5ee1
    • Rui Ueyama's avatar
      Implement almost-zero-cost --trace-symbol. · 69c778c0
      Rui Ueyama authored
      --trace-symbol is a command line option to watch a symbol.
      Previosly, we looked up a hash table for a new symbol if the
      option is given. Any code that looks up a hash table for each
      symbol is expensive because the linker handles a lot of symbols.
      In our design, we look up a hash table strictly only once
      for a symbol, so --trace-symbol was an exception.
      
      This patch improves efficiency of the option by merging the
      hash table into the symbol table.
      
      Instead of looking up a separate hash table with a string,
      this patch sets `Traced` flag to symbols specified by --trace-symbol.
      So, if you insert a symbol and get a symbol with `Traced` flag on,
      you know that you need to print out a log message for the symbol.
      This is nearly zero cost.
      
      llvm-svn: 275716
      69c778c0
    • Rui Ueyama's avatar
      b06700fa
    • Rui Ueyama's avatar
      Remove duplicate public specifier. · bef5d16a
      Rui Ueyama authored
      llvm-svn: 275714
      bef5d16a
    • Rui Ueyama's avatar
      Print out file names for common symbols for --trace-symbol. · 2a7c1c15
      Rui Ueyama authored
      Previously, there was no way to get a file name for a DefinedCommon
      symbol. This patch adds it.
      
      llvm-svn: 275712
      2a7c1c15
    • Rui Ueyama's avatar
      Handle versioned symbols efficiently. · 663b8c27
      Rui Ueyama authored
      Versions can be assigned to symbols in two different ways.
      One is the usual version scripts, and the other is special
      symbol suffix '@'. If a symbol contains '@', the string after
      that is considered to specify a version name.
      
      Previously, we look for '@' for all symbols.
      
      Anything that works on every symbol can be expensive because
      the linker has to handle a lot of symbols. The search for '@'
      was not an exception.
      
      In this patch, I made two optimizations.
      
      The first optimization is to handle '@' only when at least one
      version is defined. If no versions are defined, no versions can
      be assigned to any symbols, so it's waste of time to search for '@'.
      
      The second optimization is to scan only suffixes of symbol names
      instead of entire symbol names. Symbol names can be very long, but
      symbol versions are usually short, so scanning entire symbol names
      is waste of time, too.
      
      There are some error cases which we no longer be able to detect
      with this patch. I don't think it's a major drawback because they
      are minor errors. Speed is more important.
      
      This change improves LLD with debug info self-link time from
      6.6993 seconds to 6.3426 seconds (or -5.3%).
      
      Differential Revision: https://reviews.llvm.org/D22433
      
      llvm-svn: 275711
      663b8c27
    • Rui Ueyama's avatar
      Add a pointer to a source file to SymbolBody. · 434b5617
      Rui Ueyama authored
      Previously, each subclass of SymbolBody had a pointer to a source
      file from which it was created. So, there was no single way to get
      a source file for a symbol. We had getSourceFile<ELFT>(), but the
      function was a bit inconvenient as it's a template.
      
      This patch makes SymbolBody have a pointer to a source file.
      If a symbol is not created from a file, the pointer has a nullptr.
      
      llvm-svn: 275701
      434b5617
    • Rui Ueyama's avatar
      Do not invoke FileCheck with `not` command. · 7a7a96e1
      Rui Ueyama authored
      We should use CHECK-NOT instead.
      
      llvm-svn: 275700
      7a7a96e1
  5. Jul 16, 2016
Loading