Thread (6 messages) 6 messages, 3 authors, 2020-10-19

Re: [PATCH] asm-generic: Force inlining of get_order() to work around gcc10 poor decision

From: Segher Boessenkool <hidden>
Date: 2020-10-19 17:59:33
Also in: linux-arch, lkml

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help