From b45d27197ff43c93ec0ffbb0303ca9a408e4e555 Mon Sep 17 00:00:00 2001 From: Richard Guenther Date: Thu, 28 May 2009 13:24:16 +0000 Subject: tree-ssa-alias.c (ao_ref_init): New function. 2009-05-28 Richard Guenther * tree-ssa-alias.c (ao_ref_init): New function. (ao_ref_base): Likewise. (ao_ref_base_alias_set): Likewise. (ao_ref_alias_set): Likewise. (refs_may_alias_p_1): Change signature. (refs_may_alias_p): Adjust. (refs_anti_dependent_p): Likewise. (refs_output_dependent_p): Likewise. (call_may_clobber_ref_p_1): Change signature. (call_may_clobber_ref_p): Adjust. (stmt_may_clobber_ref_p_1): New function split out from ... (stmt_may_clobber_ref_p): ... here. (maybe_skip_until): Adjust signature. (get_continuation_for_phi): Likewise. (walk_non_aliased_vuses): Likewise. * tree-ssa-alias.h (struct ao_ref_s): New structure type. (ao_ref_init): Declare. (ao_ref_base): Likewise. (ao_ref_alias_set): Likewise. (stmt_may_clobber_ref_p_1): Likewise. (walk_non_aliased_vuses): Adjust. * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function. (get_ref_from_reference_ops): remove. (vn_reference_lookup_2): Adjust signature. (vn_reference_lookup_3): Do not re-build trees. Handle unions. (vn_reference_lookup_pieces): Adjust signature, do not re-build trees. (vn_reference_lookup): Adjust. (vn_reference_insert): Likewise. (vn_reference_insert_pieces): Adjust signature. (visit_reference_op_call): Adjust. * tree-ssa-pre.c (get_expr_type): Simplify. (phi_translate_1): Adjust. (compute_avail): Likewise. (translate_vuse_through_block): Do not re-build trees. (value_dies_in_block_x): Likewise. * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set fields. (vn_reference_lookup_pieces): Adjust declaration. (vn_reference_insert_pieces): Likewise. * gcc.dg/tree-ssa/ssa-fre-26.c: New testcase. * gcc.c-torture/execute/20090527-1.c: Likewise. From-SVN: r147953 --- gcc/tree-ssa-sccvn.h | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'gcc/tree-ssa-sccvn.h') diff --git a/gcc/tree-ssa-sccvn.h b/gcc/tree-ssa-sccvn.h index c8171c2..706ea4e 100644 --- a/gcc/tree-ssa-sccvn.h +++ b/gcc/tree-ssa-sccvn.h @@ -92,6 +92,8 @@ typedef struct vn_reference_s unsigned int value_id; hashval_t hashcode; tree vuse; + alias_set_type set; + tree type; VEC (vn_reference_op_s, heap) *operands; tree result; } *vn_reference_t; @@ -177,13 +179,14 @@ void vn_reference_fold_indirect (VEC (vn_reference_op_s, heap) **, unsigned int *); void copy_reference_ops_from_ref (tree, VEC(vn_reference_op_s, heap) **); void copy_reference_ops_from_call (gimple, VEC(vn_reference_op_s, heap) **); -tree get_ref_from_reference_ops (VEC(vn_reference_op_s, heap) *ops); -tree vn_reference_lookup_pieces (tree, +bool ao_ref_init_from_vn_reference (ao_ref *, alias_set_type, tree, + VEC (vn_reference_op_s, heap) *); +tree vn_reference_lookup_pieces (tree, alias_set_type, tree, VEC (vn_reference_op_s, heap) *, vn_reference_t *, bool); tree vn_reference_lookup (tree, tree, bool, vn_reference_t *); vn_reference_t vn_reference_insert (tree, tree, tree); -vn_reference_t vn_reference_insert_pieces (tree, +vn_reference_t vn_reference_insert_pieces (tree, alias_set_type, tree, VEC (vn_reference_op_s, heap) *, tree, unsigned int); -- cgit v1.1