http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46228
--- Comment #8 from Jan Hubicka <hubicka at gcc dot gnu.org> 2010-10-30 16:00:12 UTC --- and BTW -Os also reason why -finline-limits has no effect. As long as we predict code size to grow, we won't inline at -Os. We tend to regress at -Os C++ for this reason. I wonder what can be done about this. Either - we need to improve heuristics to figure out that inlining is smaller than call sequence (if it really is) - we need to teach GCC that comdat functions are not always shared across units as extensively as we tend to believe now. I will take more look tomorrow. Honza