2008-03-06 Vladimir Makarov <vmakarov@redhat.com>
commit7f8a8bfc92f59a4c1603d184a20301f6947444cc
authorvmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 6 Mar 2008 22:50:29 +0000 (6 22:50 +0000)
committervmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 6 Mar 2008 22:50:29 +0000 (6 22:50 +0000)
tree993ce6b87c91c402c073a544a56026ace49cf913
parentbe917ea20a1b06840552a599b099eb96f855cb8e
2008-03-06  Vladimir Makarov  <vmakarov@redhat.com>

* ira.h (sort_regnos_for_alter_reg): Add parameter.

* reload1.c (reload): Pass additional argument to
sort_regnos_for_alter_reg.

* ira-int.h (reg_equiv_len): New global variable.

* ira-emit.c (change_loop): Add assertion.

* ira.c (reg_equiv_len): New global variable.
(setup_reg_renumber): Use reg_equiv_len in assertion.
(ira): Initialize reg_equiv_len and spilled_reg_stack_slots.

* ira-color.c (coalesced_pseudo_reg_compare): Rename to
coalesced_pseudo_reg_freq_compare.
(coalesced_pseudo_reg_slot_compare,
setup_coalesced_allocno_costs_and_nums,
collect_spilled_coalesced_allocnos, coalesce_spill_slots): New
functions.
(coalesced_allocno_conflict_p): Add new parameter.  Use live
ranges to find conflicts for the reload.
(coalesce_allocnos): Don't coalesce allocnos with equivalences.
(color_pass): Check reg_quiv_len.
(regno_max_ref_width): New variable.
(sort_regnos_for_alter_reg): Add secondary coalescing spilled
allocnos.  Assign stack slot numbers.  Use costs instead of
frequencies.
(mark_allocation_change): Set up allocno hard regno.
(allocno_reload_assign): Ditto.
(reuse_stack_slot): Use stack slot numbers.
(mark_new_stack_slot): Set up allocno slot number.

* doc/passes.texi: Add more info about IRA.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/ira@132993 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/doc/passes.texi
gcc/ira-color.c
gcc/ira-emit.c
gcc/ira-int.h
gcc/ira.c
gcc/ira.h
gcc/reload1.c