This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Convert SPARC to LRA
- From: Peter Bergner <bergner at vnet dot ibm dot com>
- To: Segher Boessenkool <segher at kernel dot crashing dot org>
- Cc: Vladimir Makarov <vmakarov at redhat dot com>, gcc-patches at gcc dot gnu dot org, Michael Meissner <meissner at linux dot vnet dot ibm dot com>
- Date: Thu, 01 Oct 2015 15:20:51 -0500
- Subject: Re: [PATCH] Convert SPARC to LRA
- Authentication-results: sourceware.org; auth=none
- References: <20150908 dot 214115 dot 1585933992134500164 dot davem at davemloft dot net> <2D64499C-B66A-4873-BDB9-C6190FF539FE at comcast dot net> <alpine dot BSF dot 2 dot 02 dot 1509271549030 dot 38779 at arjuna dot pair dot com> <56089802 dot 7010803 at redhat dot com> <560993B9 dot 70105 at redhat dot com> <20150928202838 dot GA1401 at gate dot crashing dot org> <1443536821 dot 13186 dot 131 dot camel at otta>
On Tue, 2015-09-29 at 09:27 -0500, Peter Bergner wrote:
> The first ICE seems to be due to a conversion to long double and LRA ends
> up going into a infinite loop spilling things until it hits a threshold and
> quits with an ICE. I haven't spent enough time to determine whether this
> is a LRA or port issue yet though. The simplest test case I have at the
> moment is:
>
> bergner@genoa:~/gcc/BUGS/LRA/20011123-1$ cat bug2.i
> void
> foo (long double *ldb1, double *db1)
> {
> *ldb1 = *db1;
> }
> bergner@genoa:~/gcc/BUGS/LRA/20011123-1$ /home/bergner/gcc/build/gcc-fsf-mainline-bootstrap-lra-default-debug/gcc/xgcc -B/home/bergner/gcc/build/gcc-fsf-mainline-bootstrap-lra-default-debug/gcc/ -S -O1 -mvsx -S bug2.i
> bug2.i: In function âfooâ:
> bug2.i:5:1: internal compiler error: Max. number of generated reload insns per insn is achieved (90)
So working with Segher and Mike offline, this ends up being a problem
with rs6000.md's *extenddftf2_internal pattern using the constraint
"ws" in alternative 2. TFmode variables are not allowed in Altivec
registers, so this pattern should be using the "d" constraint instead.
I'm testing a patch.
Peter