On Mon, Oct 19, 2020 at 10:54:40AM +0200, Christophe Leroy wrote:
Le 19/10/2020 à 10:32, Segher Boessenkool a écrit :
quoted
The kernel should just use __always_inline if that is what it *wants*;
that is true here most likely. GCC could perhaps improve its heuristics
so that it no longer thinks these functions are often too big for
inlining (they *are* pretty big, but not after basic optimisations with
constant integer arguments).
Yes I guess __always_inline is to be added on functions like this defined
in headers for exactly that, and that's the purpose of this patch.
However I find it odd that get_order() is outlined by GCC even in some
object files that don't use it at all, for instance in fs/pipe.o
It is (arguably) too big too always inline if you do not consider that
__builtin_constant_p will remove half of the function one way or
another. Not sure if that is what happens here, but now we have a PR
(thanks!) and we will find out.
Segher