How to determine access alignment in RTL ?

Geert Bosch bosch@gnat.com
Tue Dec 23 21:08:00 GMT 2003


Jim Wilson wrote:
> Attribute align does not work that way for arrays.  ints have size 32
> bits, and thus a random array element has only 32-bit alignment.  Even
> if we align the base address of A to 128 bits, A[1] is that address 
> plus
> 32-bits, and thus can only have 32-bit alignment.  If you want each
> array element to have 128-bit alignment, then the array elements must
> each be 128-bits in size.

Still, it does make sense to align an array of 32-bit elements to
128 bits. This way you know you can easier use vector instructions
for operations on whole arrays (such as those defined by Ada).
Even for machines without vector instructions, it is good to know
an array of char is word aligned for operations such as copying.

   -Geert



More information about the Gcc mailing list