aboutsummaryrefslogtreecommitdiff
path: root/gcc/ira-emit.c
diff options
context:
space:
mode:
authorVladimir Makarov <vmakarov@redhat.com>2008-11-10 23:21:45 +0000
committerVladimir Makarov <vmakarov@gcc.gnu.org>2008-11-10 23:21:45 +0000
commit548a63222ed9b9e8de3503388d64366121ba621d (patch)
tree7fd0254faf506029de880777901eccc09123341f /gcc/ira-emit.c
parentbefc25099bbedd2d49f23f929b6c441894c8cb5c (diff)
downloadgcc-548a63222ed9b9e8de3503388d64366121ba621d.zip
gcc-548a63222ed9b9e8de3503388d64366121ba621d.tar.gz
gcc-548a63222ed9b9e8de3503388d64366121ba621d.tar.bz2
re PR rtl-optimization/37948 (IRA generates slower code)
2008-11-07 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimizations/37948 * ira-int.h (struct ira_allocno_copy): New member constraint_p. (ira_create_copy, ira_add_allocno_copy): New parameter. * ira-conflicts.c (process_regs_for_copy): New parameter. Pass it to ira_add_allocno_copy. (process_reg_shuffles, add_insn_allocno_copies): Pass a new parameter to process_regs_for_copy. (propagate_copies): Pass a new parameter to ira_add_allocno_copy. Fix typo in passing second allocno to ira_add_allocno_copy. * ira-color.c (update_conflict_hard_regno_costs): Use head of coalesced allocnos list. (assign_hard_reg): Ditto. Check that assigned allocnos are not in the graph. (add_ira_allocno_to_bucket): Rename to add_allocno_to_bucket. (add_ira_allocno_to_ordered_bucket): Rename to add_allocno_to_ordered_bucket. (push_ira_allocno_to_stack): Rename to push_allocno_to_stack. Use head of coalesced allocnos list. (push_allocnos_to_stack): Remove calculation of ALLOCNO_TEMP. Check that it is aready calculated. (push_ira_allocno_to_spill): Rename to push_ira_allocno_to_spill. (setup_allocno_left_conflicts_num): Use head of coalesced allocnos list. (coalesce_allocnos): Do extended coalescing too. * ira-emit.c (add_range_and_copies_from_move_list): Pass a new parameter to ira_add_allocno_copy. * ira-build.c (ira_create_copy, ira_add_allocno_copy): Add a new parameter. (print_copy): Print copy origination too. * ira-costs.c (scan_one_insn): Use alloc_pref for load from equivalent memory. From-SVN: r141753
Diffstat (limited to 'gcc/ira-emit.c')
-rw-r--r--gcc/ira-emit.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/ira-emit.c b/gcc/ira-emit.c
index a6a7582..63c866b 100644
--- a/gcc/ira-emit.c
+++ b/gcc/ira-emit.c
@@ -863,7 +863,7 @@ add_range_and_copies_from_move_list (move_t list, ira_loop_tree_node_t node,
IOR_HARD_REG_SET (ALLOCNO_TOTAL_CONFLICT_HARD_REGS (to), hard_regs_live);
update_costs (from, true, freq);
update_costs (to, false, freq);
- cp = ira_add_allocno_copy (from, to, freq, move->insn, NULL);
+ cp = ira_add_allocno_copy (from, to, freq, false, move->insn, NULL);
if (internal_flag_ira_verbose > 2 && ira_dump_file != NULL)
fprintf (ira_dump_file, " Adding cp%d:a%dr%d-a%dr%d\n",
cp->num, ALLOCNO_NUM (cp->first),