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