aboutsummaryrefslogtreecommitdiff
path: root/gcc/lra-int.h
diff options
context:
space:
mode:
authorVladimir Makarov <vmakarov@redhat.com>2014-11-09 16:45:15 +0000
committerVladimir Makarov <vmakarov@gcc.gnu.org>2014-11-09 16:45:15 +0000
commit8160cd3ee4a5840db17416092f2d808187b7e872 (patch)
tree1cde2f4fc77823a9e058d48a80d31252d0b0cc29 /gcc/lra-int.h
parent205e92689198d4718a07adfb0077821cfa93e761 (diff)
downloadgcc-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.h4
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);