On Tue, 24 Jul 2007 11:14:21 -0700 (PDT)
Linus Torvalds [off-list ref] wrote:
On Tue, 24 Jul 2007, Adrian Bunk wrote:
quoted
buffered_rmqueue() and prep_new_page() are static functions with only
one caller each, and for the normal non-debug case it's a really nice
optimization to have them inlined automatically.
I'm not at all sure I agree.
Inlining big functions doesn't actually tend to generally generate any
better code, so if gcc's logic is "single callsite - always inline", then
that logic is likely not right.
fwiw, -fno-inline-functions-called-once (who knew?) takes i386 allnoconfig
vmlinux .text from 928360 up to 955362 bytes (27k larger).
A surprisingly large increase - I wonder if it did something dumb. It
appears to still correctly inline those things which we've manually marked
inline. hm.
It would be nice to defeat the autoinlining for debug purposes though.