llvm-project/lld
Rafael Auler 2c4af3ead7 [LinkerScript] Don't create unnecessarily large segments
When using a linker script expression to change the address of a section, even
if the new address is more than a page of distance from the old address, lld
may put everything in the same segment, forcing it to be unnecessarily large.
This patch changes the logic in Segment::assignVirtualAddress() and
Segment::assignFileOffsets() to allow the segment to be sliced into two or more
if it detects a linker script expression that changes a section address.

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

llvm-svn: 242096
2015-07-14 00:34:43 +00:00
..
COFF COFF: Fix x86 delay-load helper function name. 2015-07-13 22:31:45 +00:00
ELF Put explicit template instantiations in the correct namespace. 2015-07-14 00:22:00 +00:00
cmake/modules Add VTune as an optional external dependency and add task tracking. 2013-04-06 00:56:40 +00:00
docs Fix docs-lld-html build. 2015-04-10 21:37:42 +00:00
include/lld Initial ELF port. 2015-07-13 23:48:06 +00:00
lib [LinkerScript] Don't create unnecessarily large segments 2015-07-14 00:34:43 +00:00
test [LinkerScript] Don't create unnecessarily large segments 2015-07-14 00:34:43 +00:00
tools Initial ELF port. 2015-07-13 23:48:06 +00:00
unittests Initial ELF port. 2015-07-13 23:48:06 +00:00
utils Move the 'linker-script-test' binary to the tools directory. 2015-03-11 22:05:49 +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 Initial ELF port. 2015-07-13 23:48:06 +00:00
LICENSE.TXT Update copyright year to 2015. 2015-03-12 20:14:35 +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.