Re: [PATCH v4 14/18] static_call: Add static_cond_call()

From: Nick Desaulniers
Date: Tue May 05 2020 - 15:57:52 EST


On Tue, May 5, 2020 at 12:00 PM Mathieu Desnoyers
<mathieu.desnoyers@xxxxxxxxxxxx> wrote:
>
> ----- On May 5, 2020, at 2:48 PM, Linus Torvalds torvalds@xxxxxxxxxxxxxxxxxxxx wrote:
> [...]
> >
> > Your initial reaction that "you can't compile away the read and the
> > test of NULL" was correct, I think.
>
> I suspect this pattern of "if (func != NULL) func(...)" could be semantically
> changed to just invoking an empty function which effectively does nothing.
> This would remove the need to do a pointer check in the first place. But maybe
> I'm missing something subtle about why it has not been done in this context.

Good idea, this eliminates the check: https://godbolt.org/z/Xugo9w
but you still have an indirect tail call (I think a direct tail call
is the desired solution?)
--
Thanks,
~Nick Desaulniers