This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: How to determine access alignment in RTL ?


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]