[PATCH] reload: Force constants in a SUBREG into literal pool

Andreas Krebbel Andreas.Krebbel@de.ibm.com
Thu Aug 7 08:17:00 GMT 2008


Hi Dave,

>   I can think of a couple of ways to solve that problem: perhaps limit the
> size of the array to (a bit less than) STACK_SIZE if it's defined, or
> perhaps just wrap the entire contents of the C file in "#if
> !defined(STACK_SIZE) || (STACK_SIZE > 65540) ... #endif", but I don't
> understand what the test is doing yet, so I'm asking you: does it still make
> any sense to run this test if the array has to be made much smaller?

Whether changing the array size would make sense depends on the size
of the immediate values which can be used without a reload on the
target platform.  On s390 the constant created by eliminating the
frame pointer overflows due to the size of the array.  That's the
whole point of the testcase.  Ok that would happen on s390 also for
smaller constants but it would still have to be bigger than 2k.  So I
think the testcase is quite s390 specific anyway and is unlikely to
trigger on other targets.  So I've moved the testcase to the
gcc.target/s390 directory.  The patch is already committed.

Bye,

-Andreas-



More information about the Gcc-patches mailing list