Altivec + 16 byte alignment
Richard Kenner
kenner@vlsi1.ultra.nyu.edu
Tue Feb 11 21:10:00 GMT 2003
Let us agree that this is just a bug, or at least a bug for CPUs that
have hard requirements of say 16 bytes (Altivec, SSE) and the user asks
for 16 byte alignment and we silently only do 8 byte alignment.
Well it's more complex than that because to *know* that we have these
hard requirement, we have to make STRICT_ALIGNMENT take an operand,
which is the mode.
Moreover, the criteria you cite isn't totally clear. Even if the
alignment isn't *required* and even if it isn't even preferred from an
efficiency standpoint, can we just ignore it? In Ada, for example,
you cannot since it imposes constraints on the permitted values of
the object's address. We also assume those constraints in combine.c.
We have to use all the attribues we have about alignmen to deduce two
things, which are the *default* and the *maximum* alignment we'll allow
for each object and type.
More information about the Gcc
mailing list