diff options
author | Vladimir Makarov <vmakarov@redhat.com> | 2014-11-09 16:45:15 +0000 |
---|---|---|
committer | Vladimir Makarov <vmakarov@gcc.gnu.org> | 2014-11-09 16:45:15 +0000 |
commit | 8160cd3ee4a5840db17416092f2d808187b7e872 (patch) | |
tree | 1cde2f4fc77823a9e058d48a80d31252d0b0cc29 /gcc/lra-int.h | |
parent | 205e92689198d4718a07adfb0077821cfa93e761 (diff) | |
download | gcc-8160cd3ee4a5840db17416092f2d808187b7e872.zip gcc-8160cd3ee4a5840db17416092f2d808187b7e872.tar.gz gcc-8160cd3ee4a5840db17416092f2d808187b7e872.tar.bz2 |
re PR rtl-optimization/63620 (RELOAD lost SET_GOT dependency on Darwin)
2014-11-09 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/63620
* lra-constraints.c (substitute_pseudo): Add prefix lra_ to the
name. Move to lra.c. Make it external.
(substitute_pseudo_within_insn): Ditto.
(inherit_reload_reg, split_reg, remove_inheritance_pseudos): Use
the new names.
(undo_optional_reloads): Ditto.
* lra-int.h (lra_dump_bitmap_with_title, lra_substitute_pseudo):
New prototypes.
(lra_substitute_pseudo_within_insn): Ditto.
* lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): New.
(mark_regno_live): Add parameter. Update bb_gen_pseudos.
(mark_regno_dead): Add parameter. Update bb_gen_pseudos and
bb_killed_pseudos.
(struct bb_data, bb_data_t, bb_data): New.
(get_bb_data, get_bb_data_by_index): Ditto.
(all_hard_regs_bitmap): New.
(live_trans_fun, live_con_fun_0, live_con_fun_n, all_blocks): New.
(initiate_live_solver, finish_live_solver): New.
(process_bb_lives): Change return type. Add code updating local
live data and removing dead insns. Pass new argument to
mark_regno_live and mark_regno_dead. Check changing bb pseudo
life info. Return the result.
(lra_create_live_ranges): Add code to do global pseudo live
analysis.
(lra_live_ranges_init): Call initiate_live_solver.
(lra_live_ranges_finish): Call finish_live_solver.
* lra.c (lra_dump_bitmap_with_title): New.
(lra_substitute_pseudo, lra_substitute_pseudo_within_insn): Move
from lra-constraints.c.
From-SVN: r217265
Diffstat (limited to 'gcc/lra-int.h')
-rw-r--r-- | gcc/lra-int.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/lra-int.h b/gcc/lra-int.h index ae4164f..5355ebf 100644 --- a/gcc/lra-int.h +++ b/gcc/lra-int.h @@ -284,6 +284,7 @@ extern lra_insn_recog_data_t *lra_insn_recog_data; extern int lra_curr_reload_num; +extern void lra_dump_bitmap_with_title (const char *, bitmap, int); extern void lra_push_insn (rtx_insn *); extern void lra_push_insn_by_uid (unsigned int); extern void lra_push_insn_and_update_insn_regno_info (rtx_insn *); @@ -303,6 +304,9 @@ extern void lra_update_dups (lra_insn_recog_data_t, signed char *); extern void lra_process_new_insns (rtx_insn *, rtx_insn *, rtx_insn *, const char *); +extern bool lra_substitute_pseudo (rtx *, int, rtx); +extern bool lra_substitute_pseudo_within_insn (rtx_insn *, int, rtx); + extern lra_insn_recog_data_t lra_set_insn_recog_data (rtx_insn *); extern lra_insn_recog_data_t lra_update_insn_recog_data (rtx_insn *); extern void lra_set_used_insn_alternative (rtx_insn *, int); |