Skip to content
  1. Nov 18, 2016
  2. Nov 17, 2016
  3. Nov 16, 2016
    • Simon Atanasyan's avatar
      [ELF][MIPS] Add MipsGotSection to handle MIPS GOT · 725dc14b
      Simon Atanasyan authored
      MIPS GOT handling is very different from other targets so it is better
      to keep the code in the separatre section class MipsGotSection. This
      patch introduces the new section and moves all MIPS specific code from
      GotSection to the new class. I did not rename fields and methods in the
      MipsGotSection class to reduce the diff and plan to do that by the
      separate commit.
      
      Differential revision: https://reviews.llvm.org/D26733
      
      llvm-svn: 287150
      725dc14b
    • Davide Italiano's avatar
      [ELF] Don't replace path separators on *NIX. · c223d1bc
      Davide Italiano authored
      Apparently this is wrong because it's legal to have a filename
      on UNIX which contains a backslash.
      
      Differential Revision:  https://reviews.llvm.org/D26734
      
      llvm-svn: 287143
      c223d1bc
    • Rui Ueyama's avatar
      Reduce number of tasks in parallel_for_each. · 87ff6fef
      Rui Ueyama authored
      TaskGroup has a fairly high overhead, so we don't want to partition
      tasks into too small tasks. This patch partition tasks into up to
      1024 tasks.
      
      I compared this patch with the original LLD's parallel_for_each.
      I reverted r287042 locally for comparison.
      
      With this patch, time to self-link lld with debug info changed from
      6.23 seconds to 4.62 seconds (-25.8%), with -threads and without -build-id.
      With both -threads and -build-id, it improved from 11.71 seconds
      to 4.94 seconds (-57.8%). Full results are below.
      
      BTW, GNU gold takes 11.65 seconds to link the same binary.
      
      NOW
      
      --no-threads --build-id=none
             6789.847776 task-clock (msec)         #    1.000 CPUs utilized            ( +-  1.86% )
                     685 context-switches          #    0.101 K/sec                    ( +-  2.82% )
                       4 cpu-migrations            #    0.001 K/sec                    ( +- 31.18% )
               1,424,690 page-faults               #    0.210 M/sec                    ( +-  1.07% )
          21,339,542,522 cycles                    #    3.143 GHz                      ( +-  1.49% )
          13,092,260,230 stalled-cycles-frontend   #   61.35% frontend cycles idle     ( +-  2.23% )
         <not supported> stalled-cycles-backend
          21,462,051,828 instructions              #    1.01  insns per cycle
                                                   #    0.61  stalled cycles per insn  ( +-  0.41% )
           3,955,296,378 branches                  #  582.531 M/sec                    ( +-  0.39% )
              75,699,909 branch-misses             #    1.91% of all branches          ( +-  0.08% )
      
             6.787630744 seconds time elapsed                                          ( +-  1.86% )
      
      --threads --build-id=none
            14767.148697 task-clock (msec)         #    3.196 CPUs utilized            ( +-  2.56% )
                  28,891 context-switches          #    0.002 M/sec                    ( +-  1.99% )
                     905 cpu-migrations            #    0.061 K/sec                    ( +-  5.49% )
               1,262,122 page-faults               #    0.085 M/sec                    ( +-  1.68% )
          43,116,163,217 cycles                    #    2.920 GHz                      ( +-  3.07% )
          33,690,171,242 stalled-cycles-frontend   #   78.14% frontend cycles idle     ( +-  3.67% )
         <not supported> stalled-cycles-backend
          22,836,731,536 instructions              #    0.53  insns per cycle
                                                   #    1.48  stalled cycles per insn  ( +-  1.13% )
           4,382,712,998 branches                  #  296.788 M/sec                    ( +-  1.33% )
              78,622,295 branch-misses             #    1.79% of all branches          ( +-  0.54% )
      
             4.621228056 seconds time elapsed                                          ( +-  1.90% )
      
      --threads --build-id=sha1
            24594.457135 task-clock (msec)         #    4.974 CPUs utilized            ( +-  1.78% )
                  29,902 context-switches          #    0.001 M/sec                    ( +-  2.62% )
                   1,097 cpu-migrations            #    0.045 K/sec                    ( +-  6.29% )
               1,313,947 page-faults               #    0.053 M/sec                    ( +-  2.36% )
          70,516,415,741 cycles                    #    2.867 GHz                      ( +-  0.78% )
          47,570,262,296 stalled-cycles-frontend   #   67.46% frontend cycles idle     ( +-  0.86% )
         <not supported> stalled-cycles-backend
          73,124,599,029 instructions              #    1.04  insns per cycle
                                                   #    0.65  stalled cycles per insn  ( +-  0.33% )
          10,495,266,104 branches                  #  426.733 M/sec                    ( +-  0.41% )
              91,444,149 branch-misses             #    0.87% of all branches          ( +-  0.83% )
      
             4.944291711 seconds time elapsed                                          ( +-  1.72% )
      
      PREVIOUS
      
      --threads --build-id=none
             7307.437544 task-clock (msec)         #    1.160 CPUs utilized            ( +-  2.34% )
                   3,128 context-switches          #    0.428 K/sec                    ( +-  4.37% )
                     352 cpu-migrations            #    0.048 K/sec                    ( +-  5.98% )
               1,354,450 page-faults               #    0.185 M/sec                    ( +-  2.20% )
          22,081,733,098 cycles                    #    3.022 GHz                      ( +-  1.46% )
          13,709,991,267 stalled-cycles-frontend   #   62.09% frontend cycles idle     ( +-  1.77% )
         <not supported> stalled-cycles-backend
          21,634,468,895 instructions              #    0.98  insns per cycle
                                                   #    0.63  stalled cycles per insn  ( +-  0.86% )
           3,993,062,361 branches                  #  546.438 M/sec                    ( +-  0.83% )
              76,188,819 branch-misses             #    1.91% of all branches          ( +-  0.19% )
      
             6.298101157 seconds time elapsed                                          ( +-  2.03% )
      
      --threads --build-id=sha1
            12845.420265 task-clock (msec)         #    1.097 CPUs utilized            ( +-  1.95% )
                   4,020 context-switches          #    0.313 K/sec                    ( +-  2.89% )
                     369 cpu-migrations            #    0.029 K/sec                    ( +-  6.26% )
               1,464,822 page-faults               #    0.114 M/sec                    ( +-  1.37% )
          40,668,449,813 cycles                    #    3.166 GHz                      ( +-  0.96% )
          18,863,982,388 stalled-cycles-frontend   #   46.38% frontend cycles idle     ( +-  1.82% )
         <not supported> stalled-cycles-backend
          71,560,499,058 instructions              #    1.76  insns per cycle
                                                   #    0.26  stalled cycles per insn  ( +-  0.14% )
          10,044,152,441 branches                  #  781.925 M/sec                    ( +-  0.19% )
              87,835,773 branch-misses             #    0.87% of all branches          ( +-  0.09% )
      
            11.711773314 seconds time elapsed                                          ( +-  1.51% )
      
      llvm-svn: 287140
      87ff6fef
    • Rui Ueyama's avatar
      Export fewer functions from Error.h. · 28212d71
      Rui Ueyama authored
      Also add a comment saying that check() returns a value.
      
      llvm-svn: 287136
      28212d71
    • George Rimar's avatar
      [ELF] - Separate locals list from versions. · 17c65af8
      George Rimar authored
      This change separates all versioned locals to be a separate list in config,
      that was suggested by Rafael and simplifies the logic a bit.
      
      Differential revision: https://reviews.llvm.org/D26754
      
      llvm-svn: 287132
      17c65af8
    • Rafael Espindola's avatar
      Don't error if __tls_get_addr is defined. · 95eae57d
      Rafael Espindola authored
      Turns out some systems do define it. Not producing an error in this
      case matches gold and bfd.
      
      llvm-svn: 287125
      95eae57d
    • George Rimar's avatar
      [ELF] - Added support for extern "c++" local symbols in version script. · e0fc2421
      George Rimar authored
      Previously we did not support them,
      patch implements this functionality
      
      Differential revision: https://reviews.llvm.org/D26604
      
      llvm-svn: 287124
      e0fc2421
    • George Rimar's avatar
      [ELF] - Change error message according to review comment. NFC. · 7759e5b6
      George Rimar authored
      Forgot about that, I am sorry.
      
      llvm-svn: 287123
      7759e5b6
Loading