rs6000: Put CR0 first in REG_ALLOC_ORDER
authorSegher Boessenkool <segher@kernel.crashing.org>
Fri, 19 Oct 2018 15:40:57 +0000 (17:40 +0200)
committerSegher Boessenkool <segher@gcc.gnu.org>
Fri, 19 Oct 2018 15:40:57 +0000 (17:40 +0200)
commit273f3d4bb4734845ce527bf92b4781e288e4aae2
tree2f34e9f382748104399c2b3637da4cf1ad9add2a
parentcba40f681af46fc114b1c98fcf0a259407410dc7
rs6000: Put CR0 first in REG_ALLOC_ORDER

IRA and LRA prefer to use CR7 (which is first in REG_ALLOC_ORDER) over
CR0, although the latter often is cheaper ("x" vs. "y" constraints).
We should figure out why this is and fix it; but until that is done,
this patch makes CR0 the first allocated register: it improves the
current code, and it is required for later patches to be effective.

(It changes two testcases to no longer look at what CR field is
allocated).

* config/rs6000/rs6000.h (REG_ALLOC_ORDER): Move 68 (that is, CR0) to
be the first CR field allocated.

gcc/testsuite/
* gcc.target/powerpc/safe-indirect-jump-2.c: Do not check assigned CR
field number.
* gcc.target/powerpc/safe-indirect-jump-3.c: Ditto.

From-SVN: r265318
gcc/ChangeLog
gcc/config/rs6000/rs6000.h
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-2.c
gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-3.c