2007-01-19 Vladimir Makarov <vmakarov@redhat.com>
commitff92f13da31d6148f2e0d8d876bdf6606a00bac5
authorvmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 19 Jan 2007 20:22:01 +0000 (19 20:22 +0000)
committervmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 19 Jan 2007 20:22:01 +0000 (19 20:22 +0000)
tree4a715713e14d4d67920f00570f08058d5d727ab8
parentb8c651c617d97316a4f2080daeffb0615bc8c058
2007-01-19  Vladimir Makarov  <vmakarov@redhat.com>

* toplev.h (flag_ipra): New external definition.

* common.opt (fipra): New option.

* doc/invoke.texi (-fipra); Document the option.

* cgraph.h (cgraph_node): New member function_used_regs.

* cgraph.c (cgraph_create_node): Initialize function_used_regs.

* final.c (update_regs_ever_live): New function.
(rest_of_handle_final): Set up function_used_regs and
call_used_regs.

* ira-build.c (ira_build): Clear function call_used_regs.

* function.h: Add hard-reg-set.h header.
(emit_status): New member call_used_regs.
(get_call_invalidated_used_regs): New definition.

* function.c (get_call, get_call_invalidated_used_regs): New
functions.

* Makefile.in (FUNCTION_H): Add hard-reg-set.h.
(caller-save.o): Add dependence on output.h and ira.h

* regrename.c (copyprop_hardreg_forward_1): Use function
get_call_invalidated_used_regs.

* ira-conflicts.c (process_bb_node_for_conflicts): Ditto.

* postreload-gcse.c (record_opr_changes,
reg_set_between_after_reload_p, reg_used_between_after_reload_p):
Ditto.

* postreload.c (reload_combine, reload_cse_move2add): Ditto.

* rtlanal.c (reg_set_between_p): Ditto.

* flow.c (propagate_one_insn): Ditto.

* df-scan.c (df_insn_refs_record): Ditto.

* gcse.c (compute_hash_table_work, compute_store_table): Ditto.

* cselib.c (cselib_process_insn): Ditto.

        * loop-iv.c (simplify_using_assignment): Ditto.

* sched-deps.c (sched_analyze): Ditto.

* combine.c (record_dead_and_set_regs): Ditto.

* resource.c (mark_set_resources, mark_set_resources): Ditto.

* var-tracking.c (var-tracking.c): Ditto.

* reload1.c (reload): Ditto.

* cse.c (invalidate_for_call): Ditto.  Add parameter.
(cse_insn): Pass the parameter.

* ira.h (try_to_migrate): Remove the definition.
(collect_pseudo_call_clobbered_regs): New external definition.

* ira-color.c (collect_pseudo_call_clobbered_regs): New function.

* ira-costs.c (tune_pseudo_costs_and_cover_classes): Add cost
calculation when IPRA is used.

* caller-save.c: Include headers output.h and ira.h.
(saved_hard_reg): New structure.
(hard_reg_map, hard_reg_map, all_saved_regs): New variables.
(all_saved_regs, new_saved_hard_reg, finish_saved_hard_regs,
saved_hard_reg_compare_func): New functions.
(setup_save_areas): Add code for sharing stack slots.
(save_call_clobbered_regs): Use function
get_call_invalidated_used_regs.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/ira@120979 138bc75d-0d04-0410-961f-82ee72b054a4
31 files changed:
gcc/ChangeLog
gcc/Makefile.in
gcc/caller-save.c
gcc/cgraph.c
gcc/cgraph.h
gcc/combine.c
gcc/common.opt
gcc/cse.c
gcc/cselib.c
gcc/df-scan.c
gcc/doc/invoke.texi
gcc/final.c
gcc/flow.c
gcc/function.c
gcc/function.h
gcc/gcse.c
gcc/ira-build.c
gcc/ira-color.c
gcc/ira-conflicts.c
gcc/ira-costs.c
gcc/ira.h
gcc/loop-iv.c
gcc/postreload-gcse.c
gcc/postreload.c
gcc/regrename.c
gcc/reload1.c
gcc/resource.c
gcc/rtlanal.c
gcc/sched-deps.c
gcc/toplev.h
gcc/var-tracking.c