On Wed, 5 Jun 2024 02:52:29 +0200 Andrew Lunn andrew@lunn.ch wrote:
How is a compiler going to know that?
It might have some heuristics to try to guess unlikely/likely, but that is not what we are talking about here.
How much difference did 'always_inline' and 'noinline' make? Hopefully the likely is enough of a clue it should prefer to inline whatever is in that branch, where as for the unlikely case it can do a function call.
Perhaps, but one of the issues was that I have lots of small functions that are used all over the place, and gcc tends to change them to function calls, instead of duplicating them. I did this analysis back in 2016, so maybe it became better.
But compilers is not my thing, which is why i would reach out to the compiler people and ask them, is it expected to get this wrong, could it be made better?
Well, I actually do work with the compiler folks, and we are actually trying to get a session at GNU Cauldron where Linux kernel folks can talk with the gcc compiler folks.
I've stared at so many objdump outputs, that I can now pretty much see the assembly that my C code makes ;-)
-- Steve