summaryrefslogtreecommitdiff
path: root/gcc/tree-vn.c
diff options
context:
space:
mode:
authordberlin <dberlin@138bc75d-0d04-0410-961f-82ee72b054a4>2007-07-07 22:23:26 +0000
committerdberlin <dberlin@138bc75d-0d04-0410-961f-82ee72b054a4>2007-07-07 22:23:26 +0000
commitc22ba30fde24bab2a70eea2c2e530b17198bf6c0 (patch)
tree69e1814e576690f14ef7f3bcaba222527d7ee4e5 /gcc/tree-vn.c
parent378eb4b76e619ee5a3692bb728aa13eeabb38c4e (diff)
downloadgcc-c22ba30fde24bab2a70eea2c2e530b17198bf6c0.tar.gz
2007-07-07 Daniel Berlin <dberlin@dberlin.org>
Revert (note the sccvn portions are *not* reverted) 2007-07-06 Daniel Berlin <dberlin@dberlin.org> Fix PR tree-optimization/23488 * tree-vn.c (set_value_handle): Use decl_vh_map for decl value handles. * tree-flow-inline.h (get_value_handle): Ditto. * tree-ssa-pre.c (decl_vh_map): New. (decl_node_pool): New. (can_value_number_operation): Support DECL_P. (can_PRE_operation): Ditto. (create_expression_by_pieces): Ditto. (find_existing_value_expr): Modify to differnetiate between addressing and top level. (create_value_handle_for_expr): Handle DECL's. (poolify_tree): Ditto. (make_values_for_phi): Don't insert into PHI_GEN during FRE. (make_values_for_stmt): Handle DECL's properly. (init_pre): Reorg to not init useless things during FRE. (fini_pre): Ditto. * tree-flow.h: Include pointer-set.h. (decl_vh_map): Declare. * Makefile.in (TREE_FLOW_H): Add pointer-set.h git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@126449 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-vn.c')
-rw-r--r--gcc/tree-vn.c11
1 files changed, 1 insertions, 10 deletions
diff --git a/gcc/tree-vn.c b/gcc/tree-vn.c
index 1afd0fedef4..d62aeea9398 100644
--- a/gcc/tree-vn.c
+++ b/gcc/tree-vn.c
@@ -83,10 +83,6 @@ expressions_equal_p (tree e1, tree e2)
return true;
}
- else if (TREE_CODE (e1) == TREE_CODE (e2)
- && DECL_P (e1)
- && te1 == te2)
- return DECL_UID (e1) == DECL_UID (e2);
else if (TREE_CODE (e1) == TREE_CODE (e2)
&& (te1 == te2
|| types_compatible_p (te1, te2))
@@ -103,12 +99,7 @@ set_value_handle (tree e, tree v)
{
if (TREE_CODE (e) == SSA_NAME)
SSA_NAME_VALUE (e) = v;
- else if (DECL_P (e))
- {
- tree *slot = (tree *)pointer_map_insert (decl_vh_map, e);
- *slot = v;
- }
- else if (EXPR_P (e) || TREE_CODE (e) == TREE_LIST
+ else if (EXPR_P (e) || DECL_P (e) || TREE_CODE (e) == TREE_LIST
|| GIMPLE_STMT_P (e)
|| TREE_CODE (e) == CONSTRUCTOR)
get_tree_common_ann (e)->value_handle = v;