diff options
author | Vladimir Makarov <vmakarov@redhat.com> | 2014-01-15 17:32:47 +0000 |
---|---|---|
committer | Vladimir Makarov <vmakarov@gcc.gnu.org> | 2014-01-15 17:32:47 +0000 |
commit | fef37404e93aaaa06378bfeaf4ad8db32c184775 (patch) | |
tree | 4b6cdf1a3a3ac85f215b25daa4443679c1411cc8 /gcc/lra-assigns.c | |
parent | 348aa1da38633b3756f3f1fb6de22d8d318384c2 (diff) | |
download | gcc-fef37404e93aaaa06378bfeaf4ad8db32c184775.zip gcc-fef37404e93aaaa06378bfeaf4ad8db32c184775.tar.gz gcc-fef37404e93aaaa06378bfeaf4ad8db32c184775.tar.bz2 |
re PR rtl-optimization/59511 (FAIL: gcc.target/i386/pr36222-1.c scan-assembler-not movdqa with -mtune=corei7)
2014-01-15 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/59511
* ira.c (ira_init_register_move_cost): Use memory costs for some
cases of register move cost calculations.
* lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
instead of BB frequency.
* lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
* lra-assigns.c (find_hard_regno_for): Ditto.
From-SVN: r206636
Diffstat (limited to 'gcc/lra-assigns.c')
-rw-r--r-- | gcc/lra-assigns.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/lra-assigns.c b/gcc/lra-assigns.c index 596fc6b..268edcc 100644 --- a/gcc/lra-assigns.c +++ b/gcc/lra-assigns.c @@ -612,7 +612,9 @@ find_hard_regno_for (int regno, int *cost, int try_only_hard_regno) && ! df_regs_ever_live_p (hard_regno + j)) /* It needs save restore. */ hard_regno_costs[hard_regno] - += 2 * ENTRY_BLOCK_PTR_FOR_FN (cfun)->next_bb->frequency + 1; + += (2 + * REG_FREQ_FROM_BB (ENTRY_BLOCK_PTR_FOR_FN (cfun)->next_bb) + + 1); priority = targetm.register_priority (hard_regno); if (best_hard_regno < 0 || hard_regno_costs[hard_regno] < best_cost || (hard_regno_costs[hard_regno] == best_cost |