From fef37404e93aaaa06378bfeaf4ad8db32c184775 Mon Sep 17 00:00:00 2001 From: Vladimir Makarov Date: Wed, 15 Jan 2014 17:32:47 +0000 Subject: re PR rtl-optimization/59511 (FAIL: gcc.target/i386/pr36222-1.c scan-assembler-not movdqa with -mtune=corei7) 2014-01-15 Vladimir Makarov 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 --- gcc/lra-assigns.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'gcc/lra-assigns.c') 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 -- cgit v1.1