From 43ee3f43c8355e623faca36246804e55a784b985 Mon Sep 17 00:00:00 2001 From: bstarynk Date: Thu, 3 Sep 2009 07:15:51 +0000 Subject: 2009-09-03 Basile Starynkevitch MELT branch merged with trunk rev 151367 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@151369 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/cselib.h | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'gcc/cselib.h') diff --git a/gcc/cselib.h b/gcc/cselib.h index fccc6a2cd32..433f4deb87d 100644 --- a/gcc/cselib.h +++ b/gcc/cselib.h @@ -53,7 +53,18 @@ struct GTY(()) elt_list { cselib_val *elt; }; +/* Describe a single set that is part of an insn. */ +struct cselib_set +{ + rtx src; + rtx dest; + cselib_val *src_elt; + cselib_val *dest_addr_elt; +}; + extern void (*cselib_discard_hook) (cselib_val *); +extern void (*cselib_record_sets_hook) (rtx insn, struct cselib_set *sets, + int n_sets); extern cselib_val *cselib_lookup (rtx, enum machine_mode, int); extern void cselib_init (bool record_memory); @@ -64,5 +75,16 @@ extern enum machine_mode cselib_reg_set_mode (const_rtx); extern int rtx_equal_for_cselib_p (rtx, rtx); extern int references_value_p (const_rtx, int); extern rtx cselib_expand_value_rtx (rtx, bitmap, int); +typedef rtx (*cselib_expand_callback)(rtx, bitmap, int, void *); +extern rtx cselib_expand_value_rtx_cb (rtx, bitmap, int, + cselib_expand_callback, void*); extern rtx cselib_subst_to_values (rtx); extern void cselib_invalidate_rtx (rtx); + +extern void cselib_reset_table_with_next_value (unsigned int); +extern unsigned int cselib_get_next_unknown_value (void); +extern void cselib_preserve_value (cselib_val *); +extern bool cselib_preserved_value_p (cselib_val *); +extern void cselib_preserve_only_values (bool); + +extern void dump_cselib_table (FILE *); -- cgit v1.2.1