http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49194
--- Comment #8 from Jan Hubicka <hubicka at gcc dot gnu.org> 2012-03-25 09:43:46 UTC --- GCC 4.7 has now shrink wrapping that should reduce effect of inlining large cold functions called once. Realistic testcases where we still kill code quality would be welcome. I tested patch to disable inlining once for cold calls, but it does not help in general. What happens is that we stop inlining constructors/destructors/initialization loops that eventually kills code quality of some benchmarks since known values are no longer propagated. I will do more tunning of this for 4.8. Honza