diff options
author | Diego Novillo <dnovillo@redhat.com> | 2005-07-26 19:53:54 +0000 |
---|---|---|
committer | Diego Novillo <dnovillo@gcc.gnu.org> | 2005-07-26 15:53:54 -0400 |
commit | 31521cd4e243e9108e23a6a0f668a7e958d0d05b (patch) | |
tree | 46ff1d955572ed4e58783492981e66c15ed5997c /gcc/tree-ssa-alias.c | |
parent | 4549941152a49defee9ee0208e646573299ce0e2 (diff) | |
download | gcc-31521cd4e243e9108e23a6a0f668a7e958d0d05b.zip gcc-31521cd4e243e9108e23a6a0f668a7e958d0d05b.tar.gz gcc-31521cd4e243e9108e23a6a0f668a7e958d0d05b.tar.bz2 |
re PR tree-optimization/22591 (wrong alias information causes an incorrect redundant load elimination)
PR 22591
* tree-ssa-alias.c (may_alias_p): Remove shortcut that tests
whether a pointer of type T * may point to objects of type T *.
testsuite/ChangeLog
PR 22591
* gcc.dg/tree-ssa/pr22591.c: New test.
* gcc.dg/tree-ssa/20030807-7.c: XFAIL everywhere.
From-SVN: r102393
Diffstat (limited to 'gcc/tree-ssa-alias.c')
-rw-r--r-- | gcc/tree-ssa-alias.c | 17 |
1 files changed, 0 insertions, 17 deletions
diff --git a/gcc/tree-ssa-alias.c b/gcc/tree-ssa-alias.c index 62c741e..d207903 100644 --- a/gcc/tree-ssa-alias.c +++ b/gcc/tree-ssa-alias.c @@ -1511,23 +1511,6 @@ may_alias_p (tree ptr, HOST_WIDE_INT mem_alias_set, alias_stats.tbaa_queries++; - /* If VAR is a pointer with the same alias set as PTR, then dereferencing - PTR can't possibly affect VAR. Note, that we are specifically testing - for PTR's alias set here, not its pointed-to type. We also can't - do this check with relaxed aliasing enabled. */ - if (POINTER_TYPE_P (TREE_TYPE (var)) - && var_alias_set != 0 - && mem_alias_set != 0) - { - HOST_WIDE_INT ptr_alias_set = get_alias_set (ptr); - if (ptr_alias_set == var_alias_set) - { - alias_stats.alias_noalias++; - alias_stats.tbaa_resolved++; - return false; - } - } - /* If the alias sets don't conflict then MEM cannot alias VAR. */ if (!alias_sets_conflict_p (mem_alias_set, var_alias_set)) { |