From ebc6765970b96434eaa8c2254a9038113313065d Mon Sep 17 00:00:00 2001 From: Nick Lewycky Date: Sun, 1 Mar 2009 09:38:29 +0000 Subject: First pass at a document describing how to achieve LTO on Linux with gold. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65766 91177308-0d34-0410-b5e6-96231b3b80d8 --- docs/GoldPlugin.html | 105 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 docs/GoldPlugin.html (limited to 'docs/GoldPlugin.html') diff --git a/docs/GoldPlugin.html b/docs/GoldPlugin.html new file mode 100644 index 0000000..2808dfa --- /dev/null +++ b/docs/GoldPlugin.html @@ -0,0 +1,105 @@ + + + + LLVM gold plugin + + + + +
LLVM gold plugin
+
    +
  1. Introduction
  2. +
  3. How to build it
  4. +
  5. Usage
  6. +
  7. Licensing
  8. +
+
Written by Nick Lewycky
+ + +
Introduction
+ +
+

Building with link time optimization requires cooperation with the +system linker. To support LTO on Linux systems, we requires that you use +gold which has support for +LTO via plugins. This is the same system used by the upcoming +GCC LTO +support.

+

The LLVMgold plugin implements the gold +plugin interface on +top of +libLTO. +The same plugin can also be used by other tools such as ar and +nm. +

+ +
How to build it
+ +
+

You need to build gold with plugin support and build the LLVMgold +plugin.

+ +
+ +
Usage
+ +
+

The linker takes a -plugin option that points to the path of + the plugin .so file. To find out what link command gcc + would run in a given situation, run gcc -v [...] and look + for the line where it runs collect2. Replace that with + ld-new -plugin /path/to/LLVMgold.so to test it out. Once you're + ready to switch to using gold, backup your existing /usr/bin/ld + then replace it with ld-new.

+

You can produce bitcode files from llvm-gcc using + -emit-llvm or -flto or -O4 which is equivalent + to -O3 -flto.

+

llvm-gcc has a -use-gold-plugin option which looks + for the gold plugin in the same directories as it looks for cc1. + It will not look for an alternate linker, which is why you need gold to be + the installed system linker in your path.

+
+ +
Licensing
+ +
+Gold is licensed under the GPLv3. LLVMgold uses the interface file +plugin-api.h from gold which means that the resulting LLVMgold.so +binary is also GPLv3. This can still be used to link non-GPLv3 programs just +as much as gold could without the plugin. +
+ + +
+
+ Valid CSS + Valid HTML 4.01 + Written by the + Nick Lewycky
+ The LLVM Compiler Infrastructure
+ Last modified: $Date: 2009-01-01 23:10:51 -0800 (Thu, 01 Jan 2009) $ +
+ + -- cgit v1.1