Alignment Guarantees?

Tim Prince n8tm@aol.com
Mon Mar 5 12:27:00 GMT 2012


On 3/5/2012 5:00 AM, Andrew Haley wrote:
> On 03/05/2012 09:49 AM, Jonathan Wakely wrote:
>> On 5 March 2012 06:04, Jeffrey Walton wrote:
>>> Does C/C++ or GCC offer any alignment guarantees?
>>
>> Alignment requirements are implementation-defined, usually imposed by
>> the hardware.
>
> Or the system ABI.
>
>> C++ and GCC guarantee that data you declare or dynamically allocate
>> will be correctly aligned, they don't guarantee that playing tricks
>> with casts will produce correctly aligned data, whether that works
>> depends on the hardware.
>
> That's not quite right.  As long as you follow the rules in the C
> and C++ standards, everything will be correctly aligned.

An ambitious statement, which is probably justified for the most popular 
64-bit platforms.
I don't think the C and C++ standards help much with AVX-256 alignment. 
  Maybe I haven't seen enough documentation on how that is dealt with 
for the bewildering variety of possibilities. gcc certainly does an 
excellent job in a difficult situation.

It's an old story, but I'm glad to be done with 32-bit Windows, where 
your statement isn't justified, if it is taken to go beyond minimal 
ability to get code working without performance guarantees.


-- 
Tim Prince



More information about the Gcc-help mailing list