This is the mail archive of the
mailing list for the GCC project.
Re: New regression on ARM Linux
- From: Alan Lawrence <alan dot lawrence at arm dot com>
- To: Richard Biener <rguenther at suse dot de>
- Cc: Jakub Jelinek <jakub at redhat dot com>, Richard Earnshaw <Richard dot Earnshaw at foss dot arm dot com>, Richard Biener <richard dot guenther at gmail dot com>, "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>, Marcus Shawcroft <Marcus dot Shawcroft at arm dot com>
- Date: Thu, 02 Apr 2015 15:58:56 +0100
- Subject: Re: New regression on ARM Linux
- Authentication-results: sourceware.org; auth=none
- References: <alpine dot LSU dot 2 dot 11 dot 1503301501070 dot 31545 at zhemvz dot fhfr dot qr> <alpine dot LSU dot 2 dot 11 dot 1503301509150 dot 31545 at zhemvz dot fhfr dot qr> <55197DAE dot 1050004 at arm dot com> <16A8C5AA-994C-4FA3-BC25-8547166DC13C at suse dot de> <CAFiYyc1MOL8AAwtVhvYDYmSSo+MdGi2FFi-6ELfRxdsvDxtSew at mail dot gmail dot com> <551A6C46 dot 7010305 at foss dot arm dot com> <alpine dot LSU dot 2 dot 11 dot 1503311200090 dot 31545 at zhemvz dot fhfr dot qr> <551A729F dot 3090200 at foss dot arm dot com> <alpine dot LSU dot 2 dot 11 dot 1503311229310 dot 31545 at zhemvz dot fhfr dot qr> <551A7B49 dot 7070108 at arm dot com> <20150331110750 dot GE2121 at tucnak dot redhat dot com> <551A9CF5 dot 4050202 at arm dot com> <alpine dot LSU dot 2 dot 11 dot 1503311520550 dot 31545 at zhemvz dot fhfr dot qr>
Richard Biener wrote:
> > On Tue, 31 Mar 2015, Alan Lawrence wrote:
>> >> (1) If we wish to keep the AAPCS principle that varargs are passed just as
>> >> named args, we should use TYPE_MAIN_VARIANT inside
>> >> arm_needs_doubleword_alignment, which will then ignore overalignment on both
>> >> varargs _and named args_. However this would be silently ABI-changing....?
>> >> (2) It seems to me that SRA is the only way for overalignment info to be
>> >> present on a value, so the patch to tree-sra.c/create_access_replacement
>> >> to make things more consistent?
> > I'm not so sure about (2), SCCVN records the type of a reference
> > and PRE uses it to create the LHS temporaries to insert them.
> > You'd need some tricky order of optimizations to expose that to
> > a call argument though (copy-propagating the inserted value to
> > a call argument). LIM may have similar issues (when doing store-motion),
> > so may predictive commoning and loop distribution (and maybe others I
> > forgot).
Hmmm. The other cases you mention are somewhat worrisome, as we don't know if
there are testcases that might tickle these too. But I think making a
last-minute change to the backend, *that would affect the ABI for prototyped
arguments*, is asking for trouble; we don't have time to think through the
implications or make a proper spec, and I can easily see us wanting to change it
*again* for gcc 6! So I think your patch to tree-sra.c
(create_access_replacement) seems the right fix?