[LLVMdev] questions about gold plugin

Duncan Sands baldrick at free.fr
Tue Oct 5 03:45:33 PDT 2010


Hi Ryan,

> I am a bit confused by the documentation of the gold plugin
> (http://llvm.org/docs/GoldPlugin.html).  I want to use the gold plugin
> on my Linux system so I can run "llvm-gcc -use-gold-plugin."  In the
> documentation it talks about building gold with plugin support (which
> involves running "make gold-all") and building the LLVMgold plugin
> (which involves configuring LLVM with the --with-binutils-include
> option).  Do I need to do both?

yes.  To do link-time optimization using LLVM, the linker (= gold) needs to be
able to recognize LLVM bitcode and perform LLVM optimizations on it.  Likewise,
to do link-time optimization using gcc, the linker needs to be able to recognize
GCC gimple and perform GCC optimizations on it.  The linker is taught about LLVM
bitcode / GCC gimple by loading a plugin, the plugin being provided by the LLVM
project (LLVMgold plugin) or by the GCC project.

If you don't enable plugin support in gold in you won't be able to load any
plugins whatsoever into gold.  However enabling plugin support in gold doesn't
mean you actually get any plugins - gold doesn't come with any.  The idea is
that external projects (like LLVM) should provide plugins that enhance gold with
capabilities related to that project (like recognizing LLVM bitcode).

So once you have built gold with plugin support enabled, you still need to build
the LLVM / GCC / whatever plugin.  In the case of LLVM, this means configuring
with --with-binutils-include.

> I am trying to build the gold plugin for LLVM 2.6. Is there a particular
> version of the gold plugin I should get?  The instructions in the
> documentation do not mention anything about different versions of the
> gold plugin.

Yes, you need to use the right version of gold.  I don't know what version that
is.

Ciao,

Duncan.



More information about the llvm-dev mailing list