diff options
author | Pat Haugen <pthaugen@us.ibm.com> | 2008-04-22 19:28:56 +0000 |
---|---|---|
committer | Pat Haugen <pthaugen@gcc.gnu.org> | 2008-04-22 19:28:56 +0000 |
commit | aafc759a8a4e404469bf39a92bb10522baf4a281 (patch) | |
tree | 844d4181de7bd4105f283a45c12619969dfc5e2f /gcc | |
parent | 28f68625537daa396681d2b5bc5f5ada52d5853d (diff) | |
download | gcc-aafc759a8a4e404469bf39a92bb10522baf4a281.zip gcc-aafc759a8a4e404469bf39a92bb10522baf4a281.tar.gz gcc-aafc759a8a4e404469bf39a92bb10522baf4a281.tar.bz2 |
rs6000.c (rs6000_register_move_cost): Increase cost of LR/CTR moves for Power6.
* config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
of LR/CTR moves for Power6.
From-SVN: r134565
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 6 |
2 files changed, 11 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8127c33..761cf7f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2008-04-22 Pat Haugen <pthaugen@us.ibm.com> + + * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost + of LR/CTR moves for Power6. + 2008-04-22 Kenneth Zadeck <zadeck@naturalbridge.com> PR middle-end/36003 diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 024c140..6ac9ee1 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -21331,6 +21331,12 @@ rs6000_register_move_cost (enum machine_mode mode, else if (from == CR_REGS) return 4; + /* Power6 has slower LR/CTR moves so make them more expensive than + memory in order to bias spills to memory .*/ + else if (rs6000_cpu == PROCESSOR_POWER6 + && reg_classes_intersect_p (from, LINK_OR_CTR_REGS)) + return 6 * hard_regno_nregs[0][mode]; + else /* A move will cost one instruction per GPR moved. */ return 2 * hard_regno_nregs[0][mode]; |