aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorDiego Novillo <dnovillo@redhat.com>2004-09-17 01:10:28 +0000
committerDiego Novillo <dnovillo@gcc.gnu.org>2004-09-16 21:10:28 -0400
commit7a1162112b7fbbd0fd3c8dc5b59e065f170e0042 (patch)
tree3307a55b4fb35c7579d8c021d2f9e2130d4e38b4 /gcc
parent02382b9149d6ab3452b5354cd45702742eb72617 (diff)
downloadgcc-7a1162112b7fbbd0fd3c8dc5b59e065f170e0042.zip
gcc-7a1162112b7fbbd0fd3c8dc5b59e065f170e0042.tar.gz
gcc-7a1162112b7fbbd0fd3c8dc5b59e065f170e0042.tar.bz2
re PR tree-optimization/17528 (tree optimization incorrectly optimizes away entire function (incorrect aliasing detection?))
PR tree-optimization/17528 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Do not erase the may-alias set for a tag when merging it with another. From-SVN: r87624
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/tree-ssa-alias.c3
2 files changed, 7 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 31e4df2..bc9fb61 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2004-09-16 Diego Novillo <dnovillo@redhat.com>
+
+ PR tree-optimization/17528
+ * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Do not
+ erase the may-alias set for a tag when merging it with
+ another.
+
2004-09-16 Kaz Kojima <kkojima@gcc.gnu.org>
* config/sh/sh.md (call): Extend 32-bit addresses to DImode
diff --git a/gcc/tree-ssa-alias.c b/gcc/tree-ssa-alias.c
index 801de5b..d30dc38 100644
--- a/gcc/tree-ssa-alias.c
+++ b/gcc/tree-ssa-alias.c
@@ -977,7 +977,6 @@ compute_flow_insensitive_aliasing (struct alias_info *ai)
{
struct alias_map_d *p_map2 = ai->pointers[j];
tree tag2 = var_ann (p_map2->var)->type_mem_tag;
- var_ann_t tag2_ann = var_ann (tag2);
sbitmap may_aliases2 = p_map2->may_aliases;
/* If the pointers may not point to each other, do nothing. */
@@ -999,8 +998,6 @@ compute_flow_insensitive_aliasing (struct alias_info *ai)
EXECUTE_IF_SET_IN_SBITMAP (may_aliases2, 0, k,
add_may_alias (tag1, referenced_var (k)));
sbitmap_a_or_b (may_aliases1, may_aliases1, may_aliases2);
- sbitmap_zero (may_aliases2);
- tag2_ann->may_aliases = NULL;
}
else
{