Date: prev next · Thread: first prev next last
2014 Archives by date, by thread · List index


Hi guys,

        So Jan has been doing awesome work as normal on pre-linking and
optimization =) It'd be great to let others see / get involved / help
out there, hence fwding it to the list; prolly a better place for the
discussion.

        Thanks Jan !

                Michael.

-------- Forwarded Message --------From: Jan Hubicka <hubicka@ucw.cz>
To: Michael Meeks <michael.meeks@collabora.com>
Cc: Jan Hubicka <hubicka@ucw.cz>, Matúš Kukan
<matus.kukan@collabora.co.uk>
Subject: Re: Performance samples for LibreOffice ...
Date: Thu, 21 Aug 2014 15:56:26 +0200

Hi Jan,

      Any chance I can share this with the list ?
...
Feel free to share the list.  I am not sure if you want to annotate all
types/methods from the list (because the fact they have no derived types may
depend on configuration/plugins/etc)- I would sort of expect these to need
manual inspection...

Honza
...
On Thu, 2014-08-21 at 05:58 +0200, Jan Hubicka wrote:
Hi,
after another break I got back to play with libreoffice.  I still did not
worked out how to build LO with profile feedback (avoid the TLS model conflict)
but fixed GCC mainline to build it at least and got the compilation noticeably
faster ;)

I was recently working on warning that would suggest adding final keywords to
types and methods to allow better devirtualization. Here are warnings I get for
libmerge (from February tree, sorry)
http://kam.mff.cuni.cz/~hubicka/final-warnings-libreoffice.txt
(search also for -Wsuggest-final-methods)

Overall I get:
107730 polymorphic calls, 0 devirtualized, 20787 speculatively devirtualized, 31324 cold
53983 have multiple targets, 0 overwritable, 0 already speculated (0 agree, 0 disagree), 1 
external, 351 not defined, 0 artificial

good portion of the 20787 calls that do get devirtualized would be turned to direct calls
if all the annotations was added :)

Honza


On Fri, 2014-08-22 at 08:11 +0200, Jan Hubicka wrote:
Michael,
I also played bit more with the profile guided optimization problem.  The issue is that all 
unit tests fails
becuase of "cannot load any more object with static TLS".  I do not really get why this happens 
- while GCC
profling runtime does use TLS, I am quite sure it is global-dynamic. Anyway a hack around is:
CPPUNITTRACE="LD_PRELOAD=/aux/hubicka/libreoffice/50-fdo/instdir/program/libmergedlo.so"

This makes dynamic linker to allocate enought of the DTV slosts.  Still easier than recompiling 
glibc with increased
DTV surplus.

Any idea where are the DTV slots go?

Actual main reason to email you was because I wrote a bit about the final warnings here
http://hubicka.blogspot.ca/2014/08/devirtualization-in-c-part-5-asking.html

I would be happy to know if they seem useful for LO.


-- 
 michael.meeks@collabora.com  <><, Pseudo Engineer, itinerant idiot


Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.