[LLVMdev] Proposal: MCLinker - an LLVM integrated linker

Diego Novillo dnovillo at google.com
Tue Nov 1 20:11:01 PDT 2011


On Tue, Nov 1, 2011 at 18:24, Tang Luba <lubatang at gmail.com> wrote:

> In GCC, LTO causes 'fat' object files, because GCC needs to serialize
> IR into 'intermediate language' (IL) and compress IL in object files.
> In our experience, the 'fat' object files are x10 bigger than the
> original one, and slow down the linking process significantly. The
> generated code can get about only 7%~13% improvement.

Right.  Though GCC 4.7 will offer an option to emit just bytecode in
object files.  Additionally, the biggest gains we generally observe
with LTO is when it's coupled with FDO.  And almost always, the
biggest wins are in the inliner
(http://gcc.gnu.org/wiki/LightweightIpo).

> Apart from the LTO, we also have some good idea on link time
> optimization. I will open another thread to discuss this later.

You may want to look at Diablo (http://diablo.elis.ugent.be/).  An
optimizing linker that has been around for a while.  I'm not sure
whether it is still being developed, but they had several interesting
ideas in it.


Diego.



More information about the llvm-dev mailing list