llvm-project/lld
Rafael Espindola 7229496787 When using Rela, don't write the addend to the output section.
The Elf_Rela has an explicit addend. It doesn't need the addend to be
written to the section being relocated.

Since relative relocations are very common in the output, this is a
noticeable speedup. The results I got were

chromium
  master 4.778149487
  patch  4.761120792 0.996436131802
chromium fast
  master 1.896253636
  patch  1.840990582 0.970856718241
the gold plugin
  master 0.399337811
  patch  0.392279276 0.982324401032
clang
  master 0.666873675
  patch  0.665895708 0.998533504865
llvm-as
  master 0.037101095
  patch  0.037123149 1.00059442989
the gold plugin fsds
  master 0.422473396
  patch  0.414192879 0.980399909016
clang fsds
  master 0.747302008
  patch  0.744843964 0.996710775599
llvm-as fsds
  master 0.033146245
  patch  0.033064531 0.997534743377
scylla
  master 4.08857525
  patch  4.082245184 0.998451767275

llvm-svn: 269417
2016-05-13 14:15:37 +00:00
..
COFF Fix Clang-tidy misc-unused-using-decls and Include What You Use warnings. 2016-04-21 17:14:10 +00:00
ELF When using Rela, don't write the addend to the output section. 2016-05-13 14:15:37 +00:00
cmake/modules
docs ELF: New symbol table design. 2016-05-01 04:55:03 +00:00
include/lld Fix some Include What You Use warnings; other minor fixes. 2016-04-29 19:47:09 +00:00
lib Fix some Include What You Use warnings; other minor fixes. 2016-04-29 19:47:09 +00:00
test When using Rela, don't write the addend to the output section. 2016-05-13 14:15:37 +00:00
tools/lld Inline a trivial CMakeLists.txt. 2016-03-03 01:56:23 +00:00
unittests Fix Clang-tidy misc-unused-using-decls and Include What You Use warnings. 2016-04-21 17:14:10 +00:00
.arcconfig Update Phabricator server. 2014-04-07 04:52:24 +00:00
.clang-format Remove redundant "Standard: Cpp11" tag. The LLVM style has used the 2014-07-04 12:08:03 +00:00
.gitignore Update .gitignore to ignore hidden MacOSX Finder droppings 2014-07-16 21:01:17 +00:00
CMakeLists.txt Inline a trivial CMakeLists.txt. 2016-03-03 01:56:23 +00:00
CODE_OWNERS.TXT Add initial CODE_OWNERS.TXT file 2015-07-25 00:44:37 +00:00
LICENSE.TXT Update copyright year to 2016. 2016-03-30 22:40:59 +00:00
README.md

README.md

LLVM Linker (lld)

This directory and its subdirectories contain source code for the LLVM Linker, a modular cross platform linker which is built as part of the LLVM compiler infrastructure project.

lld is open source software. You may freely distribute it under the terms of the license agreement found in LICENSE.txt.