diff options
author | rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-07-14 15:38:49 +0000 |
---|---|---|
committer | rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-07-14 15:38:49 +0000 |
commit | 8883e700136bae1ed66c433473568533bdb8548f (patch) | |
tree | f75e8afb6ceee98eeb6903a3791525145691294c | |
parent | 98de6c46a33cbb306881e25e97597961d78930ca (diff) | |
download | gcc-8883e700136bae1ed66c433473568533bdb8548f.tar.gz |
2008-07-14 Richard Guenther <rguenther@suse.de>
* tree-ssa-sccvn.c (pre_info): Remove.
(switch_to_PRE_table): Likewise.
(free_scc_vn): Do not clear SSA_NAME_VALUE.
Do not free pre_info.
(set_hashtable_value_ids): Do not create value-ids for the
optimistic tables.
(run_scc_vn): Remove double test. Remove bogus special-case
in value-number printing.
* tree-ssa-sccvn.h (switch_to_PRE_table): Remove.
* tree-ssa-ccp.c (get_symbol_constant_value): Do not look at
SSA_NAME_VALUE.
* tree-flow-inline.h (get_value_handle): Remove.
* tree-flow.h (get_value_handle): Remove.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@137787 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 16 | ||||
-rw-r--r-- | gcc/tree-flow-inline.h | 28 | ||||
-rw-r--r-- | gcc/tree-flow.h | 1 | ||||
-rw-r--r-- | gcc/tree-ssa-ccp.c | 13 | ||||
-rw-r--r-- | gcc/tree-ssa-sccvn.c | 73 | ||||
-rw-r--r-- | gcc/tree-ssa-sccvn.h | 1 |
6 files changed, 24 insertions, 108 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index aa13213fc86..c619f7ec166 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,19 @@ +2008-07-14 Richard Guenther <rguenther@suse.de> + + * tree-ssa-sccvn.c (pre_info): Remove. + (switch_to_PRE_table): Likewise. + (free_scc_vn): Do not clear SSA_NAME_VALUE. + Do not free pre_info. + (set_hashtable_value_ids): Do not create value-ids for the + optimistic tables. + (run_scc_vn): Remove double test. Remove bogus special-case + in value-number printing. + * tree-ssa-sccvn.h (switch_to_PRE_table): Remove. + * tree-ssa-ccp.c (get_symbol_constant_value): Do not look at + SSA_NAME_VALUE. + * tree-flow-inline.h (get_value_handle): Remove. + * tree-flow.h (get_value_handle): Remove. + 2008-07-14 Martin Jambor <mjambor@suse.cz> * tree-switch-conversion.c (gen_inbound_check): Make sure the type diff --git a/gcc/tree-flow-inline.h b/gcc/tree-flow-inline.h index 19a3002dfda..1eb284047e3 100644 --- a/gcc/tree-flow-inline.h +++ b/gcc/tree-flow-inline.h @@ -1659,34 +1659,6 @@ set_symbol_mem_tag (tree sym, tree tag) get_var_ann (sym)->symbol_mem_tag = tag; } -/* Get the value handle of EXPR. This is the only correct way to get - the value handle for a "thing". If EXPR does not have a value - handle associated, it returns NULL_TREE. - NB: If EXPR is min_invariant, this function is *required* to return - EXPR. */ - -static inline tree -get_value_handle (tree expr) -{ - if (TREE_CODE (expr) == SSA_NAME) - return SSA_NAME_VALUE (expr); - else if (DECL_P (expr) || TREE_CODE (expr) == TREE_LIST - || TREE_CODE (expr) == CONSTRUCTOR) - { - tree_ann_common_t ann = tree_common_ann (expr); - return ((ann) ? ann->value_handle : NULL_TREE); - } - else if (is_gimple_min_invariant (expr)) - return expr; - else if (EXPR_P (expr)) - { - tree_ann_common_t ann = tree_common_ann (expr); - return ((ann) ? ann->value_handle : NULL_TREE); - } - else - gcc_unreachable (); -} - /* Accessor to tree-ssa-operands.c caches. */ static inline struct ssa_operands * gimple_ssa_operands (const struct function *fun) diff --git a/gcc/tree-flow.h b/gcc/tree-flow.h index 0cb8fa5d1ec..a441893e004 100644 --- a/gcc/tree-flow.h +++ b/gcc/tree-flow.h @@ -1134,7 +1134,6 @@ void print_value_expressions (FILE *, unsigned int); tree make_value_handle (tree); void set_value_handle (tree, tree); bool expressions_equal_p (tree, tree); -static inline tree get_value_handle (tree); void sort_vuses (VEC (tree, gc) *); void sort_vuses_heap (VEC (tree, heap) *); tree vn_lookup_or_add (tree); diff --git a/gcc/tree-ssa-ccp.c b/gcc/tree-ssa-ccp.c index 3b90da4ddc8..4b6fe6a1b69 100644 --- a/gcc/tree-ssa-ccp.c +++ b/gcc/tree-ssa-ccp.c @@ -310,13 +310,10 @@ get_symbol_constant_value (tree sym) change the constant value of the PHI node, which allows for more constants to be propagated. - 3- If SSA_NAME_VALUE is set and it is a constant, its value is - used. - - 4- Variables defined by statements other than assignments and PHI + 3- Variables defined by statements other than assignments and PHI nodes are considered VARYING. - 5- Initial values of variables that are not GIMPLE registers are + 4- Initial values of variables that are not GIMPLE registers are considered VARYING. */ static prop_value_t @@ -332,12 +329,6 @@ get_default_value (tree var) non-register when DO_STORE_CCP is false. */ val.lattice_val = VARYING; } - else if (SSA_NAME_VALUE (var) - && is_gimple_min_invariant (SSA_NAME_VALUE (var))) - { - val.lattice_val = CONSTANT; - val.value = SSA_NAME_VALUE (var); - } else if ((cst_val = get_symbol_constant_value (sym)) != NULL_TREE) { /* Globals and static variables declared 'const' take their diff --git a/gcc/tree-ssa-sccvn.c b/gcc/tree-ssa-sccvn.c index 659fecdfa8a..f1318656b9b 100644 --- a/gcc/tree-ssa-sccvn.c +++ b/gcc/tree-ssa-sccvn.c @@ -129,11 +129,6 @@ static vn_tables_t valid_info; static vn_tables_t optimistic_info; -/* PRE hashtables storing information about mapping from expressions to - value handles. */ - -static vn_tables_t pre_info; - /* Pointer to the set of hashtables that is currently being used. Should always point to either the optimistic_info, or the valid_info. */ @@ -2376,15 +2371,6 @@ init_scc_vn (void) allocate_vn_table (valid_info); optimistic_info = XCNEW (struct vn_tables_s); allocate_vn_table (optimistic_info); - pre_info = NULL; -} - -void -switch_to_PRE_table (void) -{ - pre_info = XCNEW (struct vn_tables_s); - allocate_vn_table (pre_info); - current_info = pre_info; } void @@ -2403,9 +2389,6 @@ free_scc_vn (void) { tree name = ssa_name (i); if (name - && SSA_NAME_VALUE (name)) - SSA_NAME_VALUE (name) = NULL; - if (name && VN_INFO (name)->needs_insertion) release_ssa_name (name); } @@ -2417,14 +2400,9 @@ free_scc_vn (void) XDELETE (valid_info); free_vn_table (optimistic_info); XDELETE (optimistic_info); - if (pre_info) - { - free_vn_table (pre_info); - XDELETE (pre_info); - } } -/* Set the value ids in the valid/optimistic hash tables. */ +/* Set the value ids in the valid hash tables. */ static void set_hashtable_value_ids (void) @@ -2433,7 +2411,7 @@ set_hashtable_value_ids (void) vn_nary_op_t vno; vn_reference_t vr; vn_phi_t vp; - + /* Now set the value ids of the things we had put in the hash table. */ @@ -2449,18 +2427,6 @@ set_hashtable_value_ids (void) } } - FOR_EACH_HTAB_ELEMENT (optimistic_info->nary, - vno, vn_nary_op_t, hi) - { - if (vno->result) - { - if (TREE_CODE (vno->result) == SSA_NAME) - vno->value_id = VN_INFO (vno->result)->value_id; - else if (is_gimple_min_invariant (vno->result)) - vno->value_id = get_or_alloc_constant_value_id (vno->result); - } - } - FOR_EACH_HTAB_ELEMENT (valid_info->phis, vp, vn_phi_t, hi) { @@ -2472,18 +2438,6 @@ set_hashtable_value_ids (void) vp->value_id = get_or_alloc_constant_value_id (vp->result); } } - FOR_EACH_HTAB_ELEMENT (optimistic_info->phis, - vp, vn_phi_t, hi) - { - if (vp->result) - { - if (TREE_CODE (vp->result) == SSA_NAME) - vp->value_id = VN_INFO (vp->result)->value_id; - else if (is_gimple_min_invariant (vp->result)) - vp->value_id = get_or_alloc_constant_value_id (vp->result); - } - } - FOR_EACH_HTAB_ELEMENT (valid_info->references, vr, vn_reference_t, hi) @@ -2496,17 +2450,6 @@ set_hashtable_value_ids (void) vr->value_id = get_or_alloc_constant_value_id (vr->result); } } - FOR_EACH_HTAB_ELEMENT (optimistic_info->references, - vr, vn_reference_t, hi) - { - if (vr->result) - { - if (TREE_CODE (vr->result) == SSA_NAME) - vr->value_id = VN_INFO (vr->result)->value_id; - else if (is_gimple_min_invariant (vr->result)) - vr->value_id = get_or_alloc_constant_value_id (vr->result); - } - } } /* Do SCCVN. Returns true if it finished, false if we bailed out @@ -2577,7 +2520,6 @@ run_scc_vn (bool may_insert_arg) info = VN_INFO (name); if (TREE_CODE (info->valnum) == SSA_NAME && info->valnum != name - && TREE_CODE (info->valnum) == SSA_NAME && info->value_id != VN_INFO (info->valnum)->value_id) { changed = true; @@ -2594,16 +2536,13 @@ run_scc_vn (bool may_insert_arg) for (i = 0; i < num_ssa_names; i++) { tree name = ssa_name (i); - if (name && VN_INFO (name)->visited - && (SSA_VAL (name) != name - || is_gimple_min_invariant (VN_INFO (name)->expr))) + if (name + && VN_INFO (name)->visited + && SSA_VAL (name) != name) { print_generic_expr (dump_file, name, 0); fprintf (dump_file, " = "); - if (is_gimple_min_invariant (VN_INFO (name)->expr)) - print_generic_expr (dump_file, VN_INFO (name)->expr, 0); - else - print_generic_expr (dump_file, SSA_VAL (name), 0); + print_generic_expr (dump_file, SSA_VAL (name), 0); fprintf (dump_file, "\n"); } } diff --git a/gcc/tree-ssa-sccvn.h b/gcc/tree-ssa-sccvn.h index 0f8189cf2a5..9f391af43aa 100644 --- a/gcc/tree-ssa-sccvn.h +++ b/gcc/tree-ssa-sccvn.h @@ -140,7 +140,6 @@ extern vn_ssa_aux_t VN_INFO (tree); extern vn_ssa_aux_t VN_INFO_GET (tree); bool run_scc_vn (bool); void free_scc_vn (void); -void switch_to_PRE_table (void); tree vn_nary_op_lookup (tree, vn_nary_op_t *); tree vn_nary_op_lookup_pieces (unsigned int, enum tree_code, tree, tree, tree, tree, tree, |