This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Fix PR44281 (bad RA with global regs)
- From: Bernd Schmidt <bschmidt at redhat dot com>
- To: vogt at linux dot vnet dot ibm dot com, GCC Patches <gcc-patches at gcc dot gnu dot org>, Andreas Krebbel <krebbel at linux dot vnet dot ibm dot com>
- Date: Wed, 13 Jul 2016 19:43:13 +0200
- Subject: Re: Fix PR44281 (bad RA with global regs)
- Authentication-results: sourceware.org; auth=none
- References: <56C78C62.7050204@t-online.de> <56C79116.2050503@redhat.com> <20160713152954.GA20116@linux.vnet.ibm.com>
On 07/13/2016 05:29 PM, Dominik Vogt wrote:
Unfortunately this patch (or whatever got actually committed) has
broken the gcc.target/s390/pr679443.c test case, which is a bit
fishy (see code snippet below). I assign most registers to global
variables and then use some complicated arithmetics with the goal
that the pointer stored in the first argument gets saved on the
stack and reloaded to a different register. Before this patch the
test case just needed three registers to do its work (r2, r3, r4).
With the patch it currently causes an error in the reload pass
error: unable to find a register to spill
Might be useful to see the dump_reload output.
If a fourth register is available, the ICE goes away, but the
pointer remains in r2, rendering the test case useless.
I don't think I quite understand what you're trying to do here, but it
does look dodgy. Whatever this is testing would probably be better as a
part of a unit test.
Bernd