Am Tue 06 Dec 2011 03:41:36 PM CET schrieb Richard Guenther <rguent...@suse.de>:


This removes accounting for the number of remaining calls in
the inlining edge badness calculation (as discussed in private
with Honza a long time ago - and yes, we disagreed).  This

Well, the main reason for disagreement was that is makes programs bigger.
The basic idea of including badness in the cost is to make inliner preffer to fully inline functions that can be fully inline with little effort. This seems
to work well to limit size growths when inlining.

fixes the various ICEs of the edge badness update and caching
code checking which are now present for over one month.

Bootstrapped on x86_64-unknown-linux-gnu, testing in progress.
A SPEC 2k6 LTO run is also in progress where I hope it will fix
the 403.gcc and 435.gromacs builds which fail with the same
ICE since a month.

Honza, I guess you have some 12h to come up with a different fix now ;)

I have patch for maintaining the growth via edge removal/addition hooks for some time now that speeds things up, too, but needs some cleanups (in particular it messes up heap updating somewhere and I did not work out where, yet). I think I can do it over weekend, but I am fine if this patch gets into tree beforehand. At least we will see how important the global metric still is.

Thanks!
Honza

Reply via email to