aboutsummaryrefslogtreecommitdiff
path: root/gcc/lra-assigns.c
diff options
context:
space:
mode:
authorVladimir Makarov <vmakarov@redhat.com>2014-01-15 17:32:47 +0000
committerVladimir Makarov <vmakarov@gcc.gnu.org>2014-01-15 17:32:47 +0000
commitfef37404e93aaaa06378bfeaf4ad8db32c184775 (patch)
tree4b6cdf1a3a3ac85f215b25daa4443679c1411cc8 /gcc/lra-assigns.c
parent348aa1da38633b3756f3f1fb6de22d8d318384c2 (diff)
downloadgcc-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.c4
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