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