On Tue, 24 Jul 2007, Andrew Morton wrote: > > 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.
I think inlining small enough functions is worth it, and the thing is, the kernel is actually pretty damn good at having lots of small functions. It's one of the few things I really care about from a coding style standpoint. So I'm not surprised that "-fno-inline-functions-called-once" makes things larger, because I think it's generally a good idea to inline things that are just called once. But it does make things harder to debug, and the performance advantages become increasingly small for bigger functions. And that's a balancing act. Do we care about performance? Yes. But do we care so much that it's worth inlining something like buffered_rmqueue()? So I would not be surprised if "-fno-inline-functions-called-once" will disable *all* the inlining heuristics, and say "oh, it's not an inline function, and it's only called once, so we won't inline it at all". So "called once" should probably make the inlining weight bigger (ie inline *larger* functions than you would otherwise), it just shouldn't make it "infinite". It's not worth it. Linus - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/