Re: static_branch/jump_label vs branch merging

From: Peter Zijlstra
Date: Thu Apr 22 2021 - 07:49:11 EST


On Fri, Apr 09, 2021 at 11:39:49PM +0200, Peter Zijlstra wrote:
> On Fri, Apr 09, 2021 at 05:07:15PM -0400, David Malcolm wrote:
>
> > You've built a very specific thing out of asm-goto to fulfil the tough
> > requirements you outlined above - as well as the nops, there's a thing
> > in another section to contend with.
> >
> > How to merge these asm-goto constructs?
>
> By calling the function less, you emit less of them. Which then brings
> us back to the whole pure/const thing.
>
> > Doing so feels very special-case to the kernel and not something that
> > other GCC users would find useful.
>
> Doesn't it boil down to 'fixing' the pure/const vs asm-goto interaction?
> I could imagine that having that interaction fixed could allow other
> creative uses.

Here is another variant:

https://lore.kernel.org/lkml/830177B0-45E0-4768-80AB-A99B85D3A52F@xxxxxxxxx/

Can we please have a __pure__ attribute that is prescriptive and not a
hint the compiler is free to ignore for $raisins ?