[Ksummit-discuss] [TECH TOPIC] Compiler shopping list
Christian Borntraeger
borntraeger at de.ibm.com
Fri Jul 22 17:05:06 UTC 2016
On 07/22/2016 05:59 PM, David Woodhouse wrote:
> On Fri, 2016-07-22 at 17:52 +0200, Christian Borntraeger wrote:
>> On 07/22/2016 12:41 PM, David Howells wrote:
>>> Are there additional things we can get the compiler to do for us? Some
>>> things I've seen brought up:
>>>
>>> (1) Additional __atomic_*() ops could be useful. Suggestions I've heard
>>> include direct LL/SC support - though the compiler people don't seem so
>>> keen on that.
>>>
>>> (2) -mmodel=kernel flag so that the compiler can optimise better for the
>>> kernel memory model.
>>
>> Some years ago (actually many) Linus proposed to have an endianess attribute to data
>> types, so that the compiler can do the bswap automatically. For some reason this
>> was never implemented, but this might be a good idea anyway.
>>
>> e.g.
>>
>> unsigned long x[10] __attribute__(("bigendian"));
>
> I'm not sure Linus proposed that. I certainly did, many times.
Yes, I know at least 3 people suggesting that and thinking this is useful
( Can you beat Linus' 2001 https://gcc.gnu.org/ml/gcc/2001-12/msg00932.html? ;-) )
>
> With the work I put in to make use of __builtin_bswapXX() we do have a
> *certain* amount of the functionality that full endianness attribution
> would give us — the compiler can see and optimise certain
> load/mask/save operations, and can use movbe and equivalent
> instructions.
>
> But a full implementation that let us just do assignment without
> jumping through the hoops might still be nice.
Absolutely.
More information about the Ksummit-discuss
mailing list