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.. whats precedent? I have to admit I'm not crazy about passing in alignment information to the routine and would rather just enforce something... Andrew _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
