Commit Graph

110 Commits

Author SHA1 Message Date
Sylvestre Ledru b307a0b949 Improve the documentation. Patch from genewitch. Found on https://github.com/llvm-mirror/lld/pull/5
llvm-svn: 296739
2017-03-02 10:40:24 +00:00
Rui Ueyama 9a651672d0 Clarify benchmark conditions.
llvm-svn: 296383
2017-02-27 21:07:50 +00:00
Rui Ueyama 33d9d5d5b4 Remove an obsolete/duplicate part of a document.
llvm-svn: 296304
2017-02-27 00:11:25 +00:00
Rui Ueyama 4d5f70ddea Fix rst markup.
llvm-svn: 296302
2017-02-26 22:17:46 +00:00
Rui Ueyama 81762abb6b Fix typo.
Pointed out by Piotr Padlewski.

llvm-svn: 296297
2017-02-26 18:32:31 +00:00
Rui Ueyama 19ce92e20c Add a section about how to use ld.lld.
llvm-svn: 296278
2017-02-26 00:20:42 +00:00
Rui Ueyama db895d839f Add how long it takes to link chromium using ld.bfd.
llvm-svn: 296236
2017-02-25 03:27:39 +00:00
Rui Ueyama 7c9f00e634 Fix rst document format error.
llvm-svn: 296235
2017-02-25 03:01:18 +00:00
Rui Ueyama bb361fcba1 Mention FreeBSD ports status and wordsmithing.
Differential Revision: https://reviews.llvm.org/D30321

llvm-svn: 296157
2017-02-24 18:54:47 +00:00
Rui Ueyama 0122142c57 Fix errors in the benchmark result.
I was mixing 1000 and 1024 when calculating file sizes in MiB or
in GiB.

llvm-svn: 296155
2017-02-24 18:50:58 +00:00
Rui Ueyama 28f46ba46f Add notes about the scope of the documents.
llvm-svn: 296088
2017-02-24 04:31:08 +00:00
Rui Ueyama 8b1c940c0b Re-add ReleaseNotes to the doc tree.
Looks like it is not allowed to have an .rst file in this directory
that does not belong to a document tree. I don't know why. This patch
adds a file back to fix a bot.

llvm-svn: 296087
2017-02-24 04:23:39 +00:00
Rui Ueyama 1582e76abd Reorganize the document structure a bit.
C++11.rst is removed because LLD now follows the usual coding style
of the LLVM project.

llvm-svn: 296086
2017-02-24 04:13:08 +00:00
Rui Ueyama 741cc4be7e Add documents to a doctree.
Looks like all documents must be in a doctree.

llvm-svn: 296075
2017-02-24 02:46:03 +00:00
Rui Ueyama fca2a110ed Attempt to fix lld-sphinx-docs bot.
llvm-svn: 296074
2017-02-24 02:07:54 +00:00
Rui Ueyama 2698ab4b62 Update the main document of LLD for those who are not familiar with the project.
llvm-svn: 296072
2017-02-24 01:55:50 +00:00
Hans Wennborg 36bcf8caf9 Don't try to link to the 4.0 release notes
llvm-svn: 294659
2017-02-09 23:27:17 +00:00
Sean Silva 69d65ac44b [docs] Fix typo in section heading.
llvm-svn: 292750
2017-01-22 03:28:56 +00:00
Hans Wennborg 1e307707b3 Clear the release notes for 5.0.0
llvm-svn: 291839
2017-01-12 22:00:54 +00:00
Hans Wennborg 0e978de2a9 Update docs/conf.py version
llvm-svn: 291833
2017-01-12 21:43:32 +00:00
Rui Ueyama 569851f1d6 Partially revert r287009: Remove trailing whitespace.
This reverts part of r287009 because I accidentally changed binary files.

llvm-svn: 287010
2016-11-15 19:09:13 +00:00
Rui Ueyama d7cfb1b6dd Remove trailing whitespace.
llvm-svn: 287009
2016-11-15 19:07:17 +00:00
Rui Ueyama 13146fce60 Update document.
llvm-svn: 284698
2016-10-20 05:35:25 +00:00
Rui Ueyama b66260ac17 Remove trailing whitespace.
llvm-svn: 283372
2016-10-05 20:09:50 +00:00
Etienne Bergeron 8430489847 fix warning when generating sphinx doc.
llvm-svn: 276227
2016-07-21 02:27:05 +00:00
Hans Wennborg 708cf064ca docs/conf.py: update version to 4.0
llvm-svn: 275847
2016-07-18 18:12:14 +00:00
Hans Wennborg 72acd60772 Trunk release notes are now for 4.0.0
The 3.9 release are on the 3.9 branch.

llvm-svn: 275845
2016-07-18 18:07:03 +00:00
Rui Ueyama 729822fe39 Update the readme text.
llvm-svn: 275305
2016-07-13 19:14:25 +00:00
Rui Ueyama 9337869393 Update numbers.
llvm-svn: 272596
2016-06-13 22:48:36 +00:00
Peter Collingbourne 4f9527065c ELF: New symbol table design.
This patch implements a new design for the symbol table that stores
SymbolBodies within a memory region of the Symbol object. Symbols are mutated
by constructing SymbolBodies in place over existing SymbolBodies, rather
than by mutating pointers. As mentioned in the initial proposal [1], this
memory layout helps reduce the cache miss rate by improving memory locality.

Performance numbers:

           old(s) new(s)
Without debug info:
chrome      7.178  6.432 (-11.5%)
LLVMgold.so 0.505  0.502 (-0.5%)
clang       0.954  0.827 (-15.4%)
llvm-as     0.052  0.045 (-15.5%)
With debug info:
scylla      5.695  5.613 (-1.5%)
clang      14.396 14.143 (-1.8%)

Performance counter results show that the fewer required indirections is
indeed the cause of the improved performance. For example, when linking
chrome, stalled cycles decreases from 14,556,444,002 to 12,959,238,310, and
instructions per cycle increases from 0.78 to 0.83. We are also executing
many fewer instructions (15,516,401,933 down to 15,002,434,310), probably
because we spend less time allocating SymbolBodies.

The new mechanism by which symbols are added to the symbol table is by calling
add* functions on the SymbolTable.

In this patch, I handle local symbols by storing them inside "unparented"
SymbolBodies. This is suboptimal, but if we do want to try to avoid allocating
these SymbolBodies, we can probably do that separately.

I also removed a few members from the SymbolBody class that were only being
used to pass information from the input file to the symbol table.

This patch implements the new design for the ELF linker only. I intend to
prepare a similar patch for the COFF linker.

[1] http://lists.llvm.org/pipermail/llvm-dev/2016-April/098832.html

Differential Revision: http://reviews.llvm.org/D19752

llvm-svn: 268178
2016-05-01 04:55:03 +00:00
Simon Atanasyan b5c0025d1d Remove links to deleted TODOs.
llvm-svn: 266528
2016-04-16 11:11:56 +00:00
Paul Robinson a8305830db Docs: keep copyright years up-to-date.
llvm-svn: 264942
2016-03-30 22:25:04 +00:00
Rui Ueyama 7a32d9a653 We do not use libLTO, so fix the error.
llvm-svn: 264093
2016-03-22 20:58:15 +00:00
Rui Ueyama 27a3f01deb ELF: Update the document.
llvm-svn: 263473
2016-03-14 19:53:52 +00:00
Rui Ueyama 88daab9174 ELF: Add a few numbers to the document.
llvm-svn: 263466
2016-03-14 18:43:01 +00:00
Rui Ueyama 02aa766897 Update the documents of the new LLD.
This patch merges the documents for ELF and COFF into one
and puts it into docs directory.

llvm-svn: 263336
2016-03-12 06:06:40 +00:00
Rafael Espindola fd14979812 Delete more ELF bits from the old linker.
llvm-svn: 262181
2016-02-28 16:03:37 +00:00
Rafael Espindola 79944f20ea Start adding release notes for lld.
llvm-svn: 260960
2016-02-16 13:12:55 +00:00
Hans Wennborg c89f805ca6 getting_started.rst: fix 'unknown target name' error
llvm-svn: 258953
2016-01-27 17:54:35 +00:00
Rui Ueyama df06d203e5 Update documents.
llvm-svn: 253728
2015-11-20 22:47:42 +00:00
Rui Ueyama 905c41b00d Update "Getting Started" document.
llvm-svn: 253522
2015-11-18 23:53:19 +00:00
Rui Ueyama 406c7d9540 COFF: Update windows_support.html.
llvm-svn: 246786
2015-09-03 17:01:18 +00:00
Rui Ueyama 08d9520f89 Fix docs-lld-html build.
llvm-svn: 234644
2015-04-10 21:37:42 +00:00
Rui Ueyama aa7b304ea7 Remove the Native file format.
The Native file format was designed to be the fastest on-memory or
on-disk file format for object files. The problem is that no one
is working on that. No LLVM tools can produce object files in
the Native, thus the feature of supporting the format is useless
in the linker.

This patch removes the Native file support. We can add it back
if we really want it in future.

llvm-svn: 234641
2015-04-10 21:23:51 +00:00
Rui Ueyama adafac6549 Update design.rst to remove a mention about round-trip tests.
llvm-svn: 234534
2015-04-09 20:43:38 +00:00
Rui Ueyama 24f2d2a9d5 Remove Makefiles.
Most developers prefer to not have them, and we agreed to
remove them from LLD.
http://lists.cs.uiuc.edu/pipermail/llvmdev/2015-March/083368.html

llvm-svn: 233313
2015-03-26 20:09:47 +00:00
Greg Fitzgerald 4b6a7e355b Fix five of the shared library build targets
Before this patch there was a cyclic dependency between lldCore and
lldReaderWriter.  Only lldConfig could be built as a shared library.

* Moved Reader and Writer base classes into lldCore.
* The following shared libraries can now be built:
     lldCore
     lldYAML
     lldNative
     lldPasses
     lldReaderWriter

Differential Revision: http://reviews.llvm.org/D7105

From: Greg Fitzgerald <garious@gmail.com>
llvm-svn: 226732
2015-01-21 22:54:56 +00:00
Greg Fitzgerald 8a1887f1f1 [ELF] Minimal implementation for ARM static linking
The code is able to statically link the simplest case of:

  int main() { return 0; }

* Only works with ARM code - no Thumb code, no interwork (-marm -mno-thumb-interwork)
* musl libc built with no interwork and no Thumb code

Differential Revision: http://reviews.llvm.org/D6716

From: Denis Protivensky <dprotivensky@accesssoftek.com>
llvm-svn: 226643
2015-01-21 07:35:48 +00:00
Rui Ueyama df230b21e3 Re-commit r225674: Convert other drivers to use WrapperNode.
The original commit had an issue with Mac OS dylib files. It didn't
handle fat binary dylib files correctly. This patch includes a fix.
A test for that case has already been committed in r225764.

llvm-svn: 226123
2015-01-15 04:34:31 +00:00
Rui Ueyama cfb2534ef8 Revert "Convert other drivers to use WrapperNode" and subsequent commits.
r225764 broke a basic functionality on Mac OS. This change reverts
r225764, r225766, r225767, r225769, r225814, r225816, r225829, and r225832.

llvm-svn: 225859
2015-01-14 00:21:34 +00:00