Re: Function multiversioning question

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



* Martin Sebor:

> On 10/25/18 7:13 AM, Martin Reinecke wrote:
>>
>>>> This creates a nasty asymmetry in the sense that gcc's own optimizations
>>>> will be able to use all target features (because the compiler knows that
>>>> it is OK to use specific features like AVX instructions) whereas the
>>>> user has no way to hand-optimize where this becomes necessary. At least
>>>> not using this nice mechanism.
>>>
>>> They can, just not based on preprocessor macros.
>>
>> I was thinking about decisions at compile time (along the lines of "ah,
>> I'm in the AVX-specific version of the function, therefore I will call
>> AVX intrinsics"), and I don't see a way to make them without access to
>> macros.
>> At runtime this is of course possible.
>
> Since each of the clones has a target attribute attached to it there
> should be a way to query that attribute at compile time.  GCC 9
> provides a __builtin_has_attribute intrinsic for simple attribute
> introspection so in principle it could be used for this.

Another option: __builtin_cpu_supports could be constant-folded
according to the configured architecture baseline.

Thanks,
Florian



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux