aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-flow.h
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2008-03-14 17:05:48 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2008-03-14 17:05:48 +0000
commit896c8b96c5cf36090b62e5f1ba8ce7e49a4a53e5 (patch)
treee62afbba9e20ac34bc1bb3da1a97cb976122058a /gcc/tree-flow.h
parent155350439afb47e68f93beb052eb93c0128c017c (diff)
downloadgcc-896c8b96c5cf36090b62e5f1ba8ce7e49a4a53e5.zip
gcc-896c8b96c5cf36090b62e5f1ba8ce7e49a4a53e5.tar.gz
gcc-896c8b96c5cf36090b62e5f1ba8ce7e49a4a53e5.tar.bz2
re PR tree-optimization/34172 (Missed store ccp optimization)
2008-03-14 Richard Guenther <rguenther@suse.de> PR tree-optimization/34172 * tree-flow.h (refs_may_alias_p): Declare. (get_single_def_stmt): Likewise. (get_single_def_stmt_from_phi): Likewise. (get_single_def_stmt_with_phi): Likewise. * tree-dfa.c (refs_may_alias_p): New function. (get_single_def_stmt): Likewise. (get_single_def_stmt_from_phi): Likewise. (get_single_def_stmt_with_phi): Likewise. * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function. (vn_reference_lookup_1): New helper function. (vn_reference_lookup): Walk the virtual use-def chain to continue searching for a match if the def does not alias the reference we are looking for. * gcc.dg/tree-ssa/ssa-fre-11.c: New testcase. * gcc.dg/tree-ssa/ssa-fre-12.c: Likewise. * gcc.dg/tree-ssa/ssa-fre-13.c: Likewise. * gcc.dg/tree-ssa/ssa-fre-14.c: Likewise. * gcc.dg/tree-ssa/ssa-fre-15.c: Likewise. * gcc.dg/tree-ssa/20031106-4.c: Remove XFAIL. From-SVN: r133222
Diffstat (limited to 'gcc/tree-flow.h')
-rw-r--r--gcc/tree-flow.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/tree-flow.h b/gcc/tree-flow.h
index 1e3c92a..274e740 100644
--- a/gcc/tree-flow.h
+++ b/gcc/tree-flow.h
@@ -824,6 +824,10 @@ extern tree make_rename_temp (tree, const char *);
extern void set_default_def (tree, tree);
extern tree gimple_default_def (struct function *, tree);
extern bool stmt_references_abnormal_ssa_name (tree);
+extern bool refs_may_alias_p (tree, tree);
+extern tree get_single_def_stmt (tree);
+extern tree get_single_def_stmt_from_phi (tree, tree);
+extern tree get_single_def_stmt_with_phi (tree, tree);
/* In tree-phinodes.c */
extern void reserve_phi_args_for_new_edge (basic_block);