llvm-project/lld
Rui Ueyama 32c3f17d36 Re-submit r195852 with GroupedSectionsPass change.
GroupedSectionsPass was a complicated pass. That pass's job was to reorder
atoms by section name, so that the atoms with the same section prefix will be
emitted consecutively to the executable. The pass added layout edges to atoms,
and let the layout pass to actually reorder them.

This patch simplifies the design by making GroupedSectionPass to directly
reorder atoms, rather than adding layout edges. This resembles ELF's
ArrayOrderPass.

This patch improves the performance of LLD; it used to take 7.1 seconds to
link LLD with LLD on my Macbook Pro, but it now takes 6.1 seconds.

llvm-svn: 196628
2013-12-07 00:27:17 +00:00
..
cmake/modules Add VTune as an optional external dependency and add task tracking. 2013-04-06 00:56:40 +00:00
docs Update supported compiler list. Patch by Mikael Lyngvig! 2013-12-02 01:22:17 +00:00
include/lld Move definitions to cpp file. No functionality change. 2013-12-06 04:43:01 +00:00
lib Re-submit r195852 with GroupedSectionsPass change. 2013-12-07 00:27:17 +00:00
test Re-submit r195852 with GroupedSectionsPass change. 2013-12-07 00:27:17 +00:00
tools Make Driver::link and LinkingContext::validate return true on success. 2013-09-24 23:26:34 +00:00
unittests [PECOFF] Handle .lib files as if they are grouped by --{start,end}-group. 2013-12-05 13:07:49 +00:00
utils Add basic linker script parsing. 2013-03-01 00:03:36 +00:00
.arcconfig Add .arcconfig for Phabricator command-line support 2013-01-03 02:15:37 +00:00
.gitignore docs: Sketch Sphinx based docs structure. 2012-04-06 21:02:20 +00:00
CMakeLists.txt Get lld building with MSVC2013 2013-11-12 15:14:33 +00:00
LICENSE.TXT Update the copyright coredits -- Happy new year 2013! 2013-01-01 10:00:19 +00:00
README.md Test commit 2012-09-14 00:00:39 +00:00

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.