aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2017-01-02 19:19:15 +0000
committerDimitry Andric <dim@FreeBSD.org>2017-01-02 19:19:15 +0000
commitd93e1dfac8711cfed1a9d9cd1876a788b83945cd (patch)
tree5896fa6c02a262a6148b215487e545d937de58b7 /docs
parent8d43286d630f9224de07809ea253e83ebb9cdee6 (diff)
downloadsrc-d93e1dfac8711cfed1a9d9cd1876a788b83945cd.tar.gz
src-d93e1dfac8711cfed1a9d9cd1876a788b83945cd.zip
Vendor import of lld trunk r290819:vendor/lld/lld-trunk-r290819
Notes
Notes: svn path=/vendor/lld/dist/; revision=311125 svn path=/vendor/lld/lld-trunk-r290819/; revision=311126; tag=vendor/lld/lld-trunk-r290819
Diffstat (limited to 'docs')
-rw-r--r--docs/Driver.rst2
-rw-r--r--docs/NewLLD.rst6
-rw-r--r--docs/ReleaseNotes.rst101
-rw-r--r--docs/conf.py4
-rw-r--r--docs/windows_support.rst2
5 files changed, 24 insertions, 91 deletions
diff --git a/docs/Driver.rst b/docs/Driver.rst
index 5f2d946d36bd..f1105ffb32ce 100644
--- a/docs/Driver.rst
+++ b/docs/Driver.rst
@@ -68,7 +68,7 @@ Adding a Flavor
#. Add an entry in :file:`lib/Driver/UniversalDriver.cpp` to
:cpp:func:`lld::Driver::strToFlavor` and
:cpp:func:`lld::UniversalDriver::link`.
- This allows the flavor to be selected via symlink and :option:`-flavor`.
+ This allows the flavor to be selected via symlink and `-flavor`.
#. Add a tablegen file called :file:`lib/Driver/{flavor}Options.td` that
describes the options. If the options are a superset of another driver, that
diff --git a/docs/NewLLD.rst b/docs/NewLLD.rst
index 1f9bf87f10e3..cffea7c02dea 100644
--- a/docs/NewLLD.rst
+++ b/docs/NewLLD.rst
@@ -18,9 +18,9 @@ We expect that FreeBSD is going to be the first large system
to adopt LLD as the system linker.
We are working on it in collaboration with the FreeBSD project.
-The linkers are notably small; as of June 2016,
-the COFF linker is under 7k lines and the ELF linker is about 13k lines,
-while gold is 146K lines.
+The linkers are notably small; as of October 2016,
+the COFF linker is about 7k lines and the ELF linker is about 18k lines,
+while gold is 165K lines.
The linkers are designed to be as fast and simple as possible.
Because it is simple, it is easy to extend to support new features.
diff --git a/docs/ReleaseNotes.rst b/docs/ReleaseNotes.rst
index 5344fc4d2dad..8bd73db363d7 100644
--- a/docs/ReleaseNotes.rst
+++ b/docs/ReleaseNotes.rst
@@ -1,102 +1,35 @@
-======================
-LLD 3.9 Release Notes
-======================
+=======================
+LLD 4.0.0 Release Notes
+=======================
.. contents::
:local:
+.. warning::
+ These are in-progress notes for the upcoming LLVM 4.0.0 release.
+
Introduction
============
-This document contains the release notes for the LLD linker, release 3.9.
+This document contains the release notes for the LLD linker, release 4.0.0.
Here we describe the status of LLD, including major improvements
from the previous release. All LLD releases may be downloaded
from the `LLVM releases web site <http://llvm.org/releases/>`_.
-What's new in ELF Support?
-==========================
-
-LLD 3.9 is a major milestone for us. It is the first release that can
-link real-world large userland programs, including LLVM/Clang/LLD
-themselves. In fact, for example, it can now be used to produce most
-userland programs distributed as part of FreeBSD.
-
-Many contributors have joined to the project to develop new features,
-port it to new architectures and fix issues since the last release.
-
-Link-Time Optimization
-----------------------
-
-Initial support for LTO has been added. It is compatible with
-`the LLVM gold plugin <http://llvm.org/docs/GoldPlugin.html>`_ in terms of
-command line flags and input file format so that LLD is usable as a
-drop-in replacement for GNU gold. LTO is implemented as a native
-feature unlike the GNU gold's plugin mechanism.
-
-Identical Code Folding
-----------------------
-
-LLD 3.9 can now merge identical code sections to produce smaller
-output files. It is expected to be used with ``-ffunction-sections``.
-
-Symbol Versioning
------------------
-
-LLD 3.9 is able to link against versioned symbols as well as produce
-versioned symbols. Both the original Sun's symbol versioning scheme
-and the GNU extension are supported.
-
-New Targets
------------
+Non-comprehensive list of changes in this release
+=================================================
-LLD has expanded support for new targets, including ARM/Thumb, the x32
-ABI and MIPS N64 ABI, in addition to the existing support for x86,
-x86-64, MIPS, PowerPC and PPC64.
-
-TLS Relocation Optimizations
-----------------------------
-
-The ELF ABI specification of the thread-local variable define a few
-peephole optimizations linkers can do by rewriting instructions at the
-link-time to reduce run-time overhead to access TLS variables. That
-feature has been implemented.
-
-New Linker Flags
+ELF Improvements
----------------
-Many command line options have been added in this release, including:
-
-- Symbol resolution and output options: ``-Bsymbolic-functions``,
- ``-export-dynamic-symbol``, ``-image-base``, ``-pie``, ``-end-lib``,
- ``-start-lib``, ``-build-id={md5,sha1,none,0x<hexstring>}``.
-
-- Symbol versioning option: ``-dynamic-list``.
-
-- LTO options: ``-lto-O``, ``-lto-aa-pipeline``, ``-lto-jobs``,
- ``-lto-newpm-passes``, ``-plugin``, ``-plugin-eq``, ``-plugin-opt``,
- ``-plugin-opt-eq``, ``-disable-verify``, ``-mllvm``.
+* Initial support for LTO.
-- Driver optionss: ``-help``, ``-version``, ``-unresolved-symbols``.
-
-- Debug options: ``-demangle``, ``-reproduce``, ``-save-temps``,
- ``-strip-debug``, ``-trace``, ``-trace-symbol``,
- ``-warn-execstack``.
-
-- Exception handling option: ``-eh-frame-hdr``.
-
-- Identical Code Folding option: ``-icf``.
-
-Changes to the MIPS Target
---------------------------
+COFF Improvements
+-----------------
-* Added support for MIPS N64 ABI.
-* Added support for TLS relocations for both O32 and N64 MIPS ABIs.
+* Item 1.
-Building LLVM Toolchain with LLD
---------------------------------
+MachO Improvements
+------------------
-A new CMake variable, ``LLVM_ENABLE_LLD``, has been added to use LLD
-to build the LLVM toolchain. If the varaible is true, ``-fuse-ld=lld``
-option will be added to linker flags so that ``ld.lld`` is used
-instead of default ``ld``. Because ``-fuse-ld=lld`` is a new compiler
-driver option, you need Clang 3.8 or newer to use the feature.
+* Item 1.
diff --git a/docs/conf.py b/docs/conf.py
index 88fcdd8afcae..6faed2fc9801 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -48,9 +48,9 @@ copyright = u'2011-%d, LLVM Project' % date.today().year
# built documents.
#
# The short X.Y version.
-version = '3.2'
+version = '4.0'
# The full version, including alpha/beta/rc tags.
-release = '3.2'
+release = '4.0'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
diff --git a/docs/windows_support.rst b/docs/windows_support.rst
index c4c338a0fba1..2d66109d2444 100644
--- a/docs/windows_support.rst
+++ b/docs/windows_support.rst
@@ -81,7 +81,7 @@ Using Visual Studio IDE/MSBuild
Alternatively, you can use msbuild if you don't like to work in an IDE::
msbuild LLVM.sln /m /target:"lld executables\lld"
-
+
MSBuild.exe had been shipped as a component of the .NET framework, but since
2013 it's part of Visual Studio. You can find it at "C:\\Program Files
(x86)\\msbuild".