Re: [PATCH] log2: make is_power_of_2() integer constant expression when possible

From: Jani Nikula
Date: Mon Mar 04 2019 - 05:14:08 EST


On Fri, 01 Mar 2019, Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote:
> On Fri, 1 Mar 2019 14:52:07 +0200 Jani Nikula <jani.nikula@xxxxxxxxx> wrote:
>
>> While is_power_of_2() is an inline function and likely gets optimized
>> for compile time constant arguments, it still doesn't produce an integer
>> constant expression that could be used in, say, static data
>> initialization or case labels.
>
> hm, what code wants to do these things?
>
>> Make is_power_of_2() an integer constant expression when possible,
>> otherwise using the inline function to avoid multiple evaluation of the
>> parameter.
>
> Spose so. But I fear that some gcc versions will get it right and
> others will mess it up. While this patch is under test I think it
> would be best to also have at least one or two callsites which actually
> use the compile-time evaluation feature. Possible?

I have some drm/i915 patches that have a local compile-time version of
IS_POWER_OF_2(). It'll take a while before they hit Linus' master. This
can wait.

BR,
Jani.


--
Jani Nikula, Intel Open Source Graphics Center