I have just committed r94615 which changes how the cost of inlining a function is calculated.
Mostly I have changed constants so the metrics are closer to reality.
If you are suddenly losing performance on an important benchmark, it may be because something is not getting inlined any more.
If your -Os binaries are suddenly a lot smaller, that was probably the inliner too.
The new metrics should be more accurate, particularly for small functions. I have calculated the old and new inlining cost for almost 100000 call sites in the test suite, results plotted below:
oldtonew.pdf (37.8 KB)