This is the mail archive of the
gcc-cvs@gcc.gnu.org
mailing list for the GCC project.
r181117 - in /branches/lra/gcc: ChangeLog lra-c...
- From: vmakarov at gcc dot gnu dot org
- To: gcc-cvs at gcc dot gnu dot org
- Date: Mon, 07 Nov 2011 21:27:51 -0000
- Subject: r181117 - in /branches/lra/gcc: ChangeLog lra-c...
Author: vmakarov
Date: Mon Nov 7 21:27:51 2011
New Revision: 181117
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=181117
Log:
2011-11-07 Vladimir Makarov <vmakarov@redhat.com>
* lra-int.h (lra_coalesce, lra_spill): Change the prototype.
(lra_need_for_spills_p): New prototype.
* lra.c (lra): Move coalesce after assignment. Call
lra_need_for_spills_p before lra_create_live_ranges. Don't check
return value of lra_spill.
* lra-spills.c (spill_pseudos, lra_spill): Don't return value.
(lra_need_for_spills_p): New function.
(lra_hard_reg_substitution): Use max_reg_num instead of regs_num.
* lra-coalesce.c (lra_coalesce): Move side_effects call lower.
Check restore_regno. Process only insns containing coalesced
pseudos for pseudo substitution. Return flag that some moves were
coalesced.
* lra-constraints.c (get_final_hard_regno): Move up.
(get_op_class, emit_secondary_memory_move): New functions.
(check_and_process_move): Add code for quick validity check base
on move cost. Use emit_secondary_memory_move.
(process_address): Don't use transformation base + disp => base +
new index.
(curr_reload_insn_check, reload_insn_check, reload_insn): Rename
correspondingly to curr_usage_insns_check, usage_insns_check, and
usage_insns.
(substitute_pseudo): New function.
(inherit_reload_reg): Change prototype. Add code to reject
generated reload inheritance insns. Change the generated
inheritance code for permitting not only move insns in the
inheritance. Use substitute_pseudo.
(live_pseudos): New bitmap.
(update_ebb_live_info): New function.
(struct to_inherit): New.
(to_inherit): New array.
(to_inherit_num): New static variable.
(add_to_inherit): New function.
(inherit_in_ebb): Add code for inheritance in non-reload
functions. Process debug insns too.
(lra_inheritance): Initialize/finalize check_only_pseudos and
live_pseudos. Call update_ebb_live_info.
(remove_inheritance_pseudos): Process debug insns too. Add
special cases to undo the inheritance transformations.
Modified:
branches/lra/gcc/ChangeLog
branches/lra/gcc/lra-coalesce.c
branches/lra/gcc/lra-constraints.c
branches/lra/gcc/lra-int.h
branches/lra/gcc/lra-spills.c
branches/lra/gcc/lra.c