diff options
author | Richard Guenther <rguenther@suse.de> | 2008-03-14 17:05:48 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2008-03-14 17:05:48 +0000 |
commit | 896c8b96c5cf36090b62e5f1ba8ce7e49a4a53e5 (patch) | |
tree | e62afbba9e20ac34bc1bb3da1a97cb976122058a /gcc/tree-flow.h | |
parent | 155350439afb47e68f93beb052eb93c0128c017c (diff) | |
download | gcc-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.h | 4 |
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); |