On Wed, 10 Oct 2018, Segher Boessenkool wrote: > On Wed, Oct 10, 2018 at 09:22:40AM +0200, Ingo Molnar wrote: > > * Richard Biener <rguenther@xxxxxxx> wrote: > > > Can kernel folks give this a second and third thought please so we > > > don't implement sth that in the end won't satisfy you guys? > > > > So this basically passes '0 size' to the inliner, which should be better > > than passing in the explicit size, as we'd inevitably get it wrong > > in cases. > > The code immediately after this makes it size 1, even for things like > asm(""), I suppose this works better for the inliner. But that's a detail > (and it might change); the description says "consider this asm as minimum > length and cost for inlining decisions", which works for either 0 or 1. It was made 1 as otherwise the inliner happily explodes on void foo () { asm(""); foo(); } > > I also like 'size 0' for the reason that we tend to write assembly code > > and mark it 'inline' if we really think it matters to performance, > > so making it more likely to be inlined when used within another inline > > function is a plus as well. > > You can think of it as meaning "we want this asm inlined always", and then > whether that actually happens depends on if the function around it is > inlined or not. Richard.