This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [RFA wwwdocs] Re: [PATCH v2] Target-specific limits on vector alignment
- From: Richard Earnshaw <rearnsha at arm dot com>
- To: Ulrich Weigand <uweigand at de dot ibm dot com>
- Cc: "ramana dot radhakrishnan at linaro dot org" <ramana dot radhakrishnan at linaro dot org>, Richard Guenther <richard dot guenther at gmail dot com>, "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>
- Date: Fri, 10 Aug 2012 17:06:56 +0100
- Subject: Re: [RFA wwwdocs] Re: [PATCH v2] Target-specific limits on vector alignment
- References: <201208101518.q7AFI34a002213@d06av02.portsmouth.uk.ibm.com>
On 10/08/12 16:18, Ulrich Weigand wrote:
> Richard Earnshaw wrote:
>> On 10/08/12 14:44, Ulrich Weigand wrote:
>>> Would the following htdocs patch be OK with you? Feel free to suggest
>>> a more appropriate wording ...
>>
>> I think we need to make it clear that this also fixes a bug in the
>> compiler that could lead to a run-time error. Otherwise, people will be
>> asking why an abi-breaking change was made mid-cycle.
>
> Something along the following lines?
>
> <p>The default alignment of vector types on ARM EABI targets has been changed
> to 8 bytes (for types larger than 8 bytes in size). This change was necessary
> in order to fix a bug that could lead to generation of wrong code in certain
> cases. It also brings the ABI as implemented by GCC back in compliance with
> the AAPCS. This is an ABI change that affects e.g. layout of structures having
> a member of vector type. Code using such types may be incompatible with binary
> objects built with older versions of GCC.</p>
>
> Bye,
> Ulrich
>
How about:
<p>On ARM, a bug has been fixed in GCC's implementation of the AAPCS
rules for the layout of vectors that could lead to wrong code being
generated. Vectors larger than 8 bytes in size are now by default
aligned to an 8-byte boundary. This is an ABI change: code that makes
explicit use of vector types may be incompatible with binary objects
built with older versions of GCC. Auto-vectorized code is not affected
by this change.</p>
R.