Mercurial > hg > CbC > CbC_gcc
comparison gcc/cselib.h @ 67:f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
author | nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 22 Mar 2011 17:18:12 +0900 |
parents | b7f97abdc517 |
children | 04ced10e8804 |
comparison
equal
deleted
inserted
replaced
65:65488c3d617d | 67:f6334be47118 |
---|---|
18 You should have received a copy of the GNU General Public License | 18 You should have received a copy of the GNU General Public License |
19 along with GCC; see the file COPYING3. If not see | 19 along with GCC; see the file COPYING3. If not see |
20 <http://www.gnu.org/licenses/>. */ | 20 <http://www.gnu.org/licenses/>. */ |
21 | 21 |
22 /* Describe a value. */ | 22 /* Describe a value. */ |
23 typedef struct GTY(()) cselib_val_struct { | 23 typedef struct cselib_val_struct { |
24 /* The hash value. */ | 24 /* The hash value. */ |
25 unsigned int hash; | 25 unsigned int hash; |
26 | 26 |
27 /* A unique id assigned to values. */ | 27 /* A unique id assigned to values. */ |
28 int uid; | 28 int uid; |
40 | 40 |
41 struct cselib_val_struct *next_containing_mem; | 41 struct cselib_val_struct *next_containing_mem; |
42 } cselib_val; | 42 } cselib_val; |
43 | 43 |
44 /* A list of rtl expressions that hold the same value. */ | 44 /* A list of rtl expressions that hold the same value. */ |
45 struct GTY(()) elt_loc_list { | 45 struct elt_loc_list { |
46 /* Next element in the list. */ | 46 /* Next element in the list. */ |
47 struct elt_loc_list *next; | 47 struct elt_loc_list *next; |
48 /* An rtl expression that holds the value. */ | 48 /* An rtl expression that holds the value. */ |
49 rtx loc; | 49 rtx loc; |
50 /* The insn that made the equivalence. */ | 50 /* The insn that made the equivalence. */ |
51 rtx setting_insn; | 51 rtx setting_insn; |
52 }; | |
53 | |
54 /* A list of cselib_val structures. */ | |
55 struct GTY(()) elt_list { | |
56 struct elt_list *next; | |
57 cselib_val *elt; | |
58 }; | 52 }; |
59 | 53 |
60 /* Describe a single set that is part of an insn. */ | 54 /* Describe a single set that is part of an insn. */ |
61 struct cselib_set | 55 struct cselib_set |
62 { | 56 { |
74 | 68 |
75 extern void (*cselib_discard_hook) (cselib_val *); | 69 extern void (*cselib_discard_hook) (cselib_val *); |
76 extern void (*cselib_record_sets_hook) (rtx insn, struct cselib_set *sets, | 70 extern void (*cselib_record_sets_hook) (rtx insn, struct cselib_set *sets, |
77 int n_sets); | 71 int n_sets); |
78 | 72 |
79 extern cselib_val *cselib_lookup (rtx, enum machine_mode, int); | 73 extern cselib_val *cselib_lookup (rtx, enum machine_mode, |
80 extern cselib_val *cselib_lookup_from_insn (rtx, enum machine_mode, int, rtx); | 74 int, enum machine_mode); |
75 extern cselib_val *cselib_lookup_from_insn (rtx, enum machine_mode, | |
76 int, enum machine_mode, rtx); | |
81 extern void cselib_init (int); | 77 extern void cselib_init (int); |
82 extern void cselib_clear_table (void); | 78 extern void cselib_clear_table (void); |
83 extern void cselib_finish (void); | 79 extern void cselib_finish (void); |
84 extern void cselib_process_insn (rtx); | 80 extern void cselib_process_insn (rtx); |
85 extern enum machine_mode cselib_reg_set_mode (const_rtx); | 81 extern enum machine_mode cselib_reg_set_mode (const_rtx); |
89 typedef rtx (*cselib_expand_callback)(rtx, bitmap, int, void *); | 85 typedef rtx (*cselib_expand_callback)(rtx, bitmap, int, void *); |
90 extern rtx cselib_expand_value_rtx_cb (rtx, bitmap, int, | 86 extern rtx cselib_expand_value_rtx_cb (rtx, bitmap, int, |
91 cselib_expand_callback, void *); | 87 cselib_expand_callback, void *); |
92 extern bool cselib_dummy_expand_value_rtx_cb (rtx, bitmap, int, | 88 extern bool cselib_dummy_expand_value_rtx_cb (rtx, bitmap, int, |
93 cselib_expand_callback, void *); | 89 cselib_expand_callback, void *); |
94 extern rtx cselib_subst_to_values (rtx); | 90 extern rtx cselib_subst_to_values (rtx, enum machine_mode); |
95 extern void cselib_invalidate_rtx (rtx); | 91 extern void cselib_invalidate_rtx (rtx); |
96 | 92 |
97 extern void cselib_reset_table (unsigned int); | 93 extern void cselib_reset_table (unsigned int); |
98 extern unsigned int cselib_get_next_uid (void); | 94 extern unsigned int cselib_get_next_uid (void); |
99 extern void cselib_preserve_value (cselib_val *); | 95 extern void cselib_preserve_value (cselib_val *); |
100 extern bool cselib_preserved_value_p (cselib_val *); | 96 extern bool cselib_preserved_value_p (cselib_val *); |
101 extern void cselib_preserve_only_values (void); | 97 extern void cselib_preserve_only_values (void); |
102 extern void cselib_preserve_cfa_base_value (cselib_val *); | 98 extern void cselib_preserve_cfa_base_value (cselib_val *, unsigned int); |
103 | 99 |
104 extern void dump_cselib_table (FILE *); | 100 extern void dump_cselib_table (FILE *); |