aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-flow.h
diff options
context:
space:
mode:
authorDaniel Berlin <dberlin@dberlin.org>2007-07-07 03:25:29 +0000
committerDaniel Berlin <dberlin@gcc.gnu.org>2007-07-07 03:25:29 +0000
commite9bd9cf340129729a451df77baee39f5b2978226 (patch)
tree24aed28d0f9be6fc1f86cf8db9b21c0fc8d53291 /gcc/tree-flow.h
parent3673b8ca2b37955838b1c238ba9f70c2a30ac298 (diff)
downloadgcc-e9bd9cf340129729a451df77baee39f5b2978226.zip
gcc-e9bd9cf340129729a451df77baee39f5b2978226.tar.gz
gcc-e9bd9cf340129729a451df77baee39f5b2978226.tar.bz2
re PR middle-end/23488 (GCSE load PRE does not work with non sets (or missing load PRE with plain decls))
2007-07-06 Daniel Berlin <dberlin@dberlin.org> Fix PR tree-optimization/23488 * tree-ssa-sccvn.c (expr_has_constants): Handle tcc_declaration. (try_to_simplify): Ditto. (visit_use): Ditto. * 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 From-SVN: r126434
Diffstat (limited to 'gcc/tree-flow.h')
-rw-r--r--gcc/tree-flow.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/tree-flow.h b/gcc/tree-flow.h
index 542f5f8..d521a16 100644
--- a/gcc/tree-flow.h
+++ b/gcc/tree-flow.h
@@ -31,6 +31,7 @@ Boston, MA 02110-1301, USA. */
#include "tree-ssa-operands.h"
#include "cgraph.h"
#include "ipa-reference.h"
+#include "pointer-set.h"
/* Forward declare structures for the garbage collector GTY markers. */
#ifndef GCC_BASIC_BLOCK_H
@@ -1081,7 +1082,7 @@ extern bool maybe_clean_or_replace_eh_stmt (tree, tree);
void add_to_value (tree, tree);
void debug_value_expressions (tree);
void print_value_expressions (FILE *, tree);
-
+extern struct pointer_map_t *decl_vh_map;
/* In tree-vn.c */
tree make_value_handle (tree);