diff options
author | Richard Sandiford <rdsandiford@googlemail.com> | 2012-05-31 05:29:36 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2012-05-31 05:29:36 +0000 |
commit | bac1c6a4f9c836cb7fe0a8b3faad9bcafbf0d6ba (patch) | |
tree | 36453ab8f42ae9bc6b3bda04ef6be28fbdaa4ddc /gcc | |
parent | f508f827b17ecd4673ef9d1c97dca9d1e3b6f17f (diff) | |
download | gcc-bac1c6a4f9c836cb7fe0a8b3faad9bcafbf0d6ba.zip gcc-bac1c6a4f9c836cb7fe0a8b3faad9bcafbf0d6ba.tar.gz gcc-bac1c6a4f9c836cb7fe0a8b3faad9bcafbf0d6ba.tar.bz2 |
ira-costs.c (copy_cost): Use ira_init_register_move_cost_if_necessary and ira_register_move_cost instead...
gcc/
* ira-costs.c (copy_cost): Use ira_init_register_move_cost_if_necessary
and ira_register_move_cost instead of init_move_cost and move_cost.
From-SVN: r188042
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/ira-costs.c | 12 |
2 files changed, 11 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e78206e..3b5849c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2012-05-31 Richard Sandiford <rdsandiford@googlemail.com> + * ira-costs.c (copy_cost): Use ira_init_register_move_cost_if_necessary + and ira_register_move_cost instead of init_move_cost and move_cost. + +2012-05-31 Richard Sandiford <rdsandiford@googlemail.com> + * ira.h (target_ira): Delete x_ira_available_class_regs. (ira_available_class_regs): Delete. * ira.c (setup_available_class_regs): Delete. diff --git a/gcc/ira-costs.c b/gcc/ira-costs.c index 5d06194..62c8b70 100644 --- a/gcc/ira-costs.c +++ b/gcc/ira-costs.c @@ -359,9 +359,8 @@ copy_cost (rtx x, enum machine_mode mode, reg_class_t rclass, bool to_p, if (secondary_class != NO_REGS) { - if (!move_cost[mode]) - init_move_cost (mode); - return (move_cost[mode][(int) secondary_class][(int) rclass] + ira_init_register_move_cost_if_necessary (mode); + return (ira_register_move_cost[mode][(int) secondary_class][(int) rclass] + sri.extra_cost + copy_cost (x, mode, secondary_class, to_p, &sri)); } @@ -374,10 +373,11 @@ copy_cost (rtx x, enum machine_mode mode, reg_class_t rclass, bool to_p, + ira_memory_move_cost[mode][(int) rclass][to_p != 0]; else if (REG_P (x)) { - if (!move_cost[mode]) - init_move_cost (mode); + reg_class_t x_class = REGNO_REG_CLASS (REGNO (x)); + + ira_init_register_move_cost_if_necessary (mode); return (sri.extra_cost - + move_cost[mode][REGNO_REG_CLASS (REGNO (x))][(int) rclass]); + + ira_register_move_cost[mode][(int) x_class][(int) rclass]); } else /* If this is a constant, we may eventually want to call rtx_cost |