Mercurial > hg > CbC > CbC_gcc
comparison gcc/tree-ssa-sccvn.h @ 55:77e2b8dfacca gcc-4.4.5
update it from 4.4.3 to 4.5.0
author | ryoma <e075725@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 12 Feb 2010 23:39:51 +0900 |
parents | a06113de4d67 |
children | b7f97abdc517 |
comparison
equal
deleted
inserted
replaced
52:c156f1bd5cd9 | 55:77e2b8dfacca |
---|---|
18 along with GCC; see the file COPYING3. If not see | 18 along with GCC; see the file COPYING3. If not see |
19 <http://www.gnu.org/licenses/>. */ | 19 <http://www.gnu.org/licenses/>. */ |
20 | 20 |
21 #ifndef TREE_SSA_SCCVN_H | 21 #ifndef TREE_SSA_SCCVN_H |
22 #define TREE_SSA_SCCVN_H | 22 #define TREE_SSA_SCCVN_H |
23 | |
24 /* In tree-ssa-sccvn.c */ | |
25 bool expressions_equal_p (tree, tree); | |
26 | |
23 | 27 |
24 /* TOP of the VN lattice. */ | 28 /* TOP of the VN lattice. */ |
25 extern tree VN_TOP; | 29 extern tree VN_TOP; |
26 | 30 |
27 /* N-ary operations in the hashtable consist of length operands, an | 31 /* N-ary operations in the hashtable consist of length operands, an |
77 typedef const vn_reference_op_s *const_vn_reference_op_t; | 81 typedef const vn_reference_op_s *const_vn_reference_op_t; |
78 | 82 |
79 DEF_VEC_O(vn_reference_op_s); | 83 DEF_VEC_O(vn_reference_op_s); |
80 DEF_VEC_ALLOC_O(vn_reference_op_s, heap); | 84 DEF_VEC_ALLOC_O(vn_reference_op_s, heap); |
81 | 85 |
82 /* A reference operation in the hashtable is representation as a | 86 /* A reference operation in the hashtable is representation as |
83 collection of vuses, representing the memory state at the time of | 87 the vuse, representing the memory state at the time of |
84 the operation, and a collection of operands that make up the | 88 the operation, and a collection of operands that make up the |
85 addressing calculation. If two vn_reference_t's have the same set | 89 addressing calculation. If two vn_reference_t's have the same set |
86 of operands, they access the same memory location. We also store | 90 of operands, they access the same memory location. We also store |
87 the resulting value number, and the hashcode. The vuses are | 91 the resulting value number, and the hashcode. */ |
88 always stored in order sorted by ssa name version. */ | |
89 | 92 |
90 typedef struct vn_reference_s | 93 typedef struct vn_reference_s |
91 { | 94 { |
92 /* Unique identifier that all expressions with the same value have. */ | 95 /* Unique identifier that all expressions with the same value have. */ |
93 unsigned int value_id; | 96 unsigned int value_id; |
94 hashval_t hashcode; | 97 hashval_t hashcode; |
95 VEC (tree, gc) *vuses; | 98 tree vuse; |
99 alias_set_type set; | |
100 tree type; | |
96 VEC (vn_reference_op_s, heap) *operands; | 101 VEC (vn_reference_op_s, heap) *operands; |
97 tree result; | 102 tree result; |
98 } *vn_reference_t; | 103 } *vn_reference_t; |
99 typedef const struct vn_reference_s *const_vn_reference_t; | 104 typedef const struct vn_reference_s *const_vn_reference_t; |
100 | 105 |
172 vn_nary_op_t vn_nary_op_insert (tree, tree); | 177 vn_nary_op_t vn_nary_op_insert (tree, tree); |
173 vn_nary_op_t vn_nary_op_insert_stmt (gimple, tree); | 178 vn_nary_op_t vn_nary_op_insert_stmt (gimple, tree); |
174 vn_nary_op_t vn_nary_op_insert_pieces (unsigned int, enum tree_code, | 179 vn_nary_op_t vn_nary_op_insert_pieces (unsigned int, enum tree_code, |
175 tree, tree, tree, tree, | 180 tree, tree, tree, tree, |
176 tree, tree, unsigned int); | 181 tree, tree, unsigned int); |
182 void vn_reference_fold_indirect (VEC (vn_reference_op_s, heap) **, | |
183 unsigned int *); | |
177 void copy_reference_ops_from_ref (tree, VEC(vn_reference_op_s, heap) **); | 184 void copy_reference_ops_from_ref (tree, VEC(vn_reference_op_s, heap) **); |
178 void copy_reference_ops_from_call (gimple, VEC(vn_reference_op_s, heap) **); | 185 void copy_reference_ops_from_call (gimple, VEC(vn_reference_op_s, heap) **); |
179 tree vn_reference_lookup_pieces (VEC (tree, gc) *, | 186 bool ao_ref_init_from_vn_reference (ao_ref *, alias_set_type, tree, |
187 VEC (vn_reference_op_s, heap) *); | |
188 tree vn_reference_lookup_pieces (tree, alias_set_type, tree, | |
180 VEC (vn_reference_op_s, heap) *, | 189 VEC (vn_reference_op_s, heap) *, |
181 vn_reference_t *, bool); | 190 vn_reference_t *, bool); |
182 tree vn_reference_lookup (tree, VEC (tree, gc) *, bool, vn_reference_t *); | 191 tree vn_reference_lookup (tree, tree, bool, vn_reference_t *); |
183 vn_reference_t vn_reference_insert (tree, tree, VEC (tree, gc) *); | 192 vn_reference_t vn_reference_insert (tree, tree, tree); |
184 vn_reference_t vn_reference_insert_pieces (VEC (tree, gc) *, | 193 vn_reference_t vn_reference_insert_pieces (tree, alias_set_type, tree, |
185 VEC (vn_reference_op_s, heap) *, | 194 VEC (vn_reference_op_s, heap) *, |
186 tree, unsigned int); | 195 tree, unsigned int); |
187 | 196 |
188 hashval_t vn_nary_op_compute_hash (const vn_nary_op_t); | 197 hashval_t vn_nary_op_compute_hash (const vn_nary_op_t); |
189 int vn_nary_op_eq (const void *, const void *); | 198 int vn_nary_op_eq (const void *, const void *); |
193 unsigned int get_max_value_id (void); | 202 unsigned int get_max_value_id (void); |
194 unsigned int get_next_value_id (void); | 203 unsigned int get_next_value_id (void); |
195 unsigned int get_constant_value_id (tree); | 204 unsigned int get_constant_value_id (tree); |
196 unsigned int get_or_alloc_constant_value_id (tree); | 205 unsigned int get_or_alloc_constant_value_id (tree); |
197 bool value_id_constant_p (unsigned int); | 206 bool value_id_constant_p (unsigned int); |
198 VEC (tree, gc) *shared_vuses_from_stmt (gimple); | |
199 #endif /* TREE_SSA_SCCVN_H */ | 207 #endif /* TREE_SSA_SCCVN_H */ |