diff options
author | dberlin <dberlin@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-07-07 22:23:26 +0000 |
---|---|---|
committer | dberlin <dberlin@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-07-07 22:23:26 +0000 |
commit | c22ba30fde24bab2a70eea2c2e530b17198bf6c0 (patch) | |
tree | 69e1814e576690f14ef7f3bcaba222527d7ee4e5 /gcc/tree-vn.c | |
parent | 378eb4b76e619ee5a3692bb728aa13eeabb38c4e (diff) | |
download | gcc-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.c | 11 |
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; |