On Wed, Oct 12, 2011 at 9:21 AM, Andrew MacLeod <[email protected]> wrote:
> On 10/12/2011 12:03 PM, Jeffrey Yasskin wrote:
>>
>> On Wed, Oct 12, 2011 at 6:31 AM, Andrew MacLeod<[email protected]>
>>  wrote:
>>>
>>> - language atomic types up to 16 bytes should be padded to an appropriate
>>> size, and aligned properly.
>>> - if memory matching one of the 5 'optimized' sizes isn't aligned
>>> properly,
>>> results are undefined.
>>> - if the size does not match one of the 5 specific routines, then the
>>> library generic ABI can handle it.  There's no alignment guarantees, so I
>>> presume it would end up being a locked implementation using hash tables
>>> and
>>> addresses or something.
>>
>> The ABI library needs to demand alignment guarantees, or have them
>> passed in, or it won't be able to support larger lock-free sizes on
>> new architectures.
>
> Do you propose alignment must be on the size boundry?   ie, 16 byte values
> must align to 16 byte boundries, and 32 byte value must align to 32 byte
> boundries, etc?
> If thats the case, I'd also say we don't accept sizes other than rounded up
> to the nearest power of 2.  ie, no 3 byte objects, or 12 byte objects, or 24
> bytes objects..

That sounds reasonable to me.

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to