Mercurial > hg > CbC > CbC_gcc
comparison gcc/tree-ssa-sccvn.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 |
---|---|
1 /* Tree SCC value numbering | 1 /* Tree SCC value numbering |
2 Copyright (C) 2007, 2008, 2009 Free Software Foundation, Inc. | 2 Copyright (C) 2007, 2008, 2009, 2010 Free Software Foundation, Inc. |
3 Contributed by Daniel Berlin <dberlin@dberlin.org> | 3 Contributed by Daniel Berlin <dberlin@dberlin.org> |
4 | 4 |
5 This file is part of GCC. | 5 This file is part of GCC. |
6 | 6 |
7 GCC is free software; you can redistribute it and/or modify | 7 GCC is free software; you can redistribute it and/or modify |
70 portion of the addressing calculation that opcode performs. */ | 70 portion of the addressing calculation that opcode performs. */ |
71 | 71 |
72 typedef struct vn_reference_op_struct | 72 typedef struct vn_reference_op_struct |
73 { | 73 { |
74 enum tree_code opcode; | 74 enum tree_code opcode; |
75 /* Constant offset this op adds or -1 if it is variable. */ | |
76 HOST_WIDE_INT off; | |
75 tree type; | 77 tree type; |
76 tree op0; | 78 tree op0; |
77 tree op1; | 79 tree op1; |
78 tree op2; | 80 tree op2; |
79 } vn_reference_op_s; | 81 } vn_reference_op_s; |
161 insertion of such with EXPR as definition is required before | 163 insertion of such with EXPR as definition is required before |
162 a use can be created of it. */ | 164 a use can be created of it. */ |
163 unsigned needs_insertion : 1; | 165 unsigned needs_insertion : 1; |
164 } *vn_ssa_aux_t; | 166 } *vn_ssa_aux_t; |
165 | 167 |
168 typedef enum { VN_NOWALK, VN_WALK, VN_WALKREWRITE } vn_lookup_kind; | |
169 | |
166 /* Return the value numbering info for an SSA_NAME. */ | 170 /* Return the value numbering info for an SSA_NAME. */ |
167 extern vn_ssa_aux_t VN_INFO (tree); | 171 extern vn_ssa_aux_t VN_INFO (tree); |
168 extern vn_ssa_aux_t VN_INFO_GET (tree); | 172 extern vn_ssa_aux_t VN_INFO_GET (tree); |
169 tree vn_get_expr_for (tree); | 173 tree vn_get_expr_for (tree); |
170 bool run_scc_vn (bool); | 174 bool run_scc_vn (vn_lookup_kind); |
171 void free_scc_vn (void); | 175 void free_scc_vn (void); |
172 tree vn_nary_op_lookup (tree, vn_nary_op_t *); | 176 tree vn_nary_op_lookup (tree, vn_nary_op_t *); |
173 tree vn_nary_op_lookup_stmt (gimple, vn_nary_op_t *); | 177 tree vn_nary_op_lookup_stmt (gimple, vn_nary_op_t *); |
174 tree vn_nary_op_lookup_pieces (unsigned int, enum tree_code, | 178 tree vn_nary_op_lookup_pieces (unsigned int, enum tree_code, |
175 tree, tree, tree, tree, tree, | 179 tree, tree, tree, tree, tree, |
185 void copy_reference_ops_from_call (gimple, VEC(vn_reference_op_s, heap) **); | 189 void copy_reference_ops_from_call (gimple, VEC(vn_reference_op_s, heap) **); |
186 bool ao_ref_init_from_vn_reference (ao_ref *, alias_set_type, tree, | 190 bool ao_ref_init_from_vn_reference (ao_ref *, alias_set_type, tree, |
187 VEC (vn_reference_op_s, heap) *); | 191 VEC (vn_reference_op_s, heap) *); |
188 tree vn_reference_lookup_pieces (tree, alias_set_type, tree, | 192 tree vn_reference_lookup_pieces (tree, alias_set_type, tree, |
189 VEC (vn_reference_op_s, heap) *, | 193 VEC (vn_reference_op_s, heap) *, |
190 vn_reference_t *, bool); | 194 vn_reference_t *, vn_lookup_kind); |
191 tree vn_reference_lookup (tree, tree, bool, vn_reference_t *); | 195 tree vn_reference_lookup (tree, tree, vn_lookup_kind, vn_reference_t *); |
192 vn_reference_t vn_reference_insert (tree, tree, tree); | 196 vn_reference_t vn_reference_insert (tree, tree, tree); |
193 vn_reference_t vn_reference_insert_pieces (tree, alias_set_type, tree, | 197 vn_reference_t vn_reference_insert_pieces (tree, alias_set_type, tree, |
194 VEC (vn_reference_op_s, heap) *, | 198 VEC (vn_reference_op_s, heap) *, |
195 tree, unsigned int); | 199 tree, unsigned int); |
196 | 200 |