diff options
author | vmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-11-10 23:21:45 +0000 |
---|---|---|
committer | vmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-11-10 23:21:45 +0000 |
commit | b7c06809df0910385638eb0b6d1a30f0a184f220 (patch) | |
tree | 7fd0254faf506029de880777901eccc09123341f /gcc/ira-int.h | |
parent | 8a4445c7a7258619444eb21659d0a1637b454635 (diff) | |
download | gcc-b7c06809df0910385638eb0b6d1a30f0a184f220.tar.gz |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@141753 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ira-int.h')
-rw-r--r-- | gcc/ira-int.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gcc/ira-int.h b/gcc/ira-int.h index c72df3de77b..c5e4bec6346 100644 --- a/gcc/ira-int.h +++ b/gcc/ira-int.h @@ -496,6 +496,7 @@ struct ira_allocno_copy ira_allocno_t first, second; /* Execution frequency of the copy. */ int freq; + bool constraint_p; /* It is a move insn which is an origin of the copy. The member value for the copy representing two operand insn constraints or for the copy created to remove register shuffle is NULL. In last @@ -859,12 +860,12 @@ extern allocno_live_range_t ira_create_allocno_live_range extern void ira_finish_allocno_live_range (allocno_live_range_t); extern void ira_free_allocno_updated_costs (ira_allocno_t); extern ira_copy_t ira_create_copy (ira_allocno_t, ira_allocno_t, - int, rtx, ira_loop_tree_node_t); + int, bool, rtx, ira_loop_tree_node_t); extern void ira_add_allocno_copy_to_list (ira_copy_t); extern void ira_swap_allocno_copy_ends_if_necessary (ira_copy_t); extern void ira_remove_allocno_copy_from_list (ira_copy_t); -extern ira_copy_t ira_add_allocno_copy (ira_allocno_t, ira_allocno_t, int, rtx, - ira_loop_tree_node_t); +extern ira_copy_t ira_add_allocno_copy (ira_allocno_t, ira_allocno_t, int, + bool, rtx, ira_loop_tree_node_t); extern int *ira_allocate_cost_vector (enum reg_class); extern void ira_free_cost_vector (int *, enum reg_class); |