Link-time optimization status
Michael Meeks
michael.meeks at suse.com
Tue Jun 19 01:55:15 PDT 2012
Hi Matus,
On Sun, 2012-06-17 at 19:09 +0200, Matúš Kukan wrote:
> Part of the result of my GSoC 2011 project is --enable-lto and
> --enable-mergelibs.
:-)
> So I tried --enable-lto now just to see what will happen and here is
> the summary:
Nice.
> My first experiments were with gcc version 4.6.3
> It somehow works but not so well and proly does not make much sense.
> I was not able to use --enable-mergelibs because I have only 3GB RAM
> and that's too little for libmerged.
Oh - wow.
> I also got an internal compiler error somewhere.
Yep, so we should file those bugs I suppoe.
> And the produced libraries were similar in the size. (I guess the
> difference would be more visible with libmerged)
:-)
> Then I compiled gcc version 4.7.1 and it's much better.
> Thanks to the gcc guys.
> It's also possible to build current libmerged.
Nice.
> Here are few differences in size (not stripped): LTO / not-LTO
> total size of workdir/*/LinkTarget/Library: 290M / 304M
Goodness - an un-stripped library is of a random size; highly affected
by debuginfo / symbol tables etc. IMHO it is only worth comparing
stripped library sizes; can you easily generate those ? :-)
> libmerged 47M / 53M
> libwpftdrawlo.so 21M / 21M
> libswlo.so 17M / 18M
> libsclo.so 14M / 15M
> liblocaledata_others.so 5.7M / 3.9M
> liblocaledata_euro.so 4.5M / 3.1M
> ..
> so sometimes is creates bigger libraries.
That is interesting; so - Jan - how well does LTO cope with -Os vs. -O2
etc. and/or Matus - what compile flags are we using ?
> Maybe it's not all about the size ?
:-) well; we want to be smaller of course. Potentially getting more
code inside the libmerged perimiter helps - and potentially better
visibility markup so that the LTO can know that a given function is not
used outside of that libmerged is useful. So far we have only a markup
that says "used outside of un-merged library", really we need to split
that into two types of markup that distinguish whether it is used
outside of libmerged or not (I think).
> Someone wants to play with the speed differences if that's possible
> to measure ?
I was primarily hoping for size reduction myself :-) from eliminating
dead / bogus code. Perhaps the stripped numbers, and/or some insight
from Jan will help here.
Thanks ! this was a great GSOC project :-)
ATB,
Michael.
--
michael.meeks at suse.com <><, Pseudo Engineer, itinerant idiot
More information about the LibreOffice
mailing list