r181820 - in /branches/lra/gcc: ChangeLog Makef...
vmakarov@gcc.gnu.org
vmakarov@gcc.gnu.org
Tue Nov 29 21:54:00 GMT 2011
Author: vmakarov
Date: Tue Nov 29 21:54:50 2011
New Revision: 181820
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=181820
Log:
2011-11-29 Vladimir Makarov <vmakarov@redhat.com>
* config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_MODE): New
macro.
* config/rs6000/rs6000-protos.h
(rs6000_secondary_memory_needed_mode): New prototype.
* config/rs6000/rs6000.c (rs6000_emit_move): Rewrite the code for
LRA for emitting secondary memory moves based on class of the
pseudo denoting the secondary memory.
(rs6000_secondary_memory_needed_mode): New function.
(rs6000_check_sdmode): Do nothing for LRA.
* config/i386/i386.c (inline_secondary_memory_needed): Switch off
an assert for LRA.
* lra-int.h (lra_split_pseudos): New external.
* lra-assigns.c (lra_setup_reg_renumber): Add code for printing
split pseudos.
(assign_candidates_bitmap, assign_candidates, assigned_pseudos):
Remove.
(spill_for): Add code for dealing with the split pseudos.
(assign_by_spills): Ditto.
* lra.c (lra_split_pseudos): New bitmap.
(lra): Initialize and finalize lra_split_pseudos. Remove call of
lra_save_restore. Always do inheritance/split pass on the first
iteration when caller_save_needed.
* lra-constraints.c (lra_secondary_memory): Remove.
(get_secondary_mem): Ditto.
(get_reload_reg): Make value of output reload pseudo unique.
(emit_secondary_memory_move): Rename emit_spill_move. Process
subregs.
(check_and_process_move): Add new argument. Don't emit secondary
memory moves, only report them. Make values of scratch and
secondary pseudos unique.
(curr_insn_transform): Emit secondary memory moves only if insn
does not satisfy all constraints.
(MAX_RELOAD_INSNS_NUMBER): Increase it to LRA_MAX_INSN_RELOADS.
(lra_contraints_init): Remove code initializing
lra_secondary_memory.
(usage_insns_check): Remove.
(reloads_num, calls_num): New.
(struct usage_insns): New.
(usage_insns): Change the type.
(inherit_reload_reg): Improve formatting. Add more asserts.
(need_for_call_save_p, need_for_split_p, choose_split_class): New
functions.
(split_pseudo): New function.
(update_ebb_live_info): Process insns even if EBB contains one BB.
(get_live_on_other_edges, get_non_debug_insn): New functions.
(temp_bitmap): New bitmap.
(add_next_usage_insn): New function.
(inherit_in_ebb): Change the prototype. Add code for pseudo range
splitting.
(lra_inheritance): Call update_ebb_live_info if the changes were
made in inherit_in_ebb.
(get_pseudo_regno): New function.
(remove_inheritance_pseudos): Add code for undoing pseudo live
range split and dealing with subregs. Update debug info too.
(lra_undo_inheritance): Add code for undoing pseudo live range
split. Add prining more debug info.
* lra-saves.c: Remove.
* Makefile.in (OBJS): Remove lra-saves.o
(lra-saves.o): Remove the entry.
Removed:
branches/lra/gcc/lra-saves.c
Modified:
branches/lra/gcc/ChangeLog
branches/lra/gcc/Makefile.in
branches/lra/gcc/config/i386/i386.c
branches/lra/gcc/config/rs6000/rs6000-protos.h
branches/lra/gcc/config/rs6000/rs6000.c
branches/lra/gcc/config/rs6000/rs6000.h
branches/lra/gcc/lra-assigns.c
branches/lra/gcc/lra-constraints.c
branches/lra/gcc/lra-eliminations.c
branches/lra/gcc/lra-int.h
branches/lra/gcc/lra.c
More information about the Gcc-cvs
mailing list