On Thu, Aug 04, 2011 at 08:51:41PM +0200, Jan Hubicka wrote: > > +Mark who has done size optimization tuning with FDO. > > > > On Thu, Aug 4, 2011 at 7:05 AM, Mike Hommey <mhom...@mozilla.com> wrote: > > > Hi, > > > > > > We (Mozilla) are trying to get the best of the ARM toolchain for our > > > Android build. I recently built an Android Native-code Development Kit > > > with GCC 4.6.1 and binutils 2.21.53, instead of GCC 4.4.3 and binutils > > > 2.19 that come with the default NDK. > > > > > > LTO doesn't work at all, I'm getting an ICE that looks like the one from > > > bug 41159. > > > > > > FDO however, works, but sadly, the resulting build is not only quite > > > bigger, > > > > Is this true for both 4.6 and 4.4 gcc? There is a bug in 4.6 that > > prevents cold functions from be optimized for size with FDO. The bug > > was fixed in trunk recently. > > You can also backport the patch to 4.6 tree. If the bug exists there, consider > the patch preaproved.
Do you have a link to the bug or the patch? > With FDO, -O2 and -O3 is not really that significandly different (i.e. -O2 > gets all the extra inlining, but it does not get vectorization that is > probably > not big deal for you). -Os is however different storry. > > > > > > Has there been significant changes to the ARM backend that would justify > > > that I try some more with current GCC HEAD? Should I maybe try some more > > > with the linaro GCC branch? Are there things we can do to help getting > > > better ARM performance? > > > > It does not hurt to try it :) > > One thing that is really changed is inliner heuristics. If would be very > happy > to have some feedback on this early, since we plan to do re-tunning of it > (LTO changes many things and there are also fortran benchmarks that shows a > lot > of problems. Mozilla may chime in and make my life even harder with hopefully > some positive results on it). > > As discused earlier, I think it would be very good idea to start trakcing > perfomrance of Mozilla built with mainline GCC like we track other benchmarks. > We don't really monitor anything of this size and thus we are quite likely > to find new interesting issues by doing so. I unfortunately hit several problems with gcc 4.7 (latest snapshot). One is bug 50022 that I filed today. Another is the following error in stlport headers: error: invalid use of incomplete type 'std::string {aka struct std::basic_string<char, std::char_traits<char>, std::allocator<char> >}' I also tried GNU libstdc++ instead of stlport but I hit some other errors that boil down to the following: error: 'std::wstring' has not been declared Mike