aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2010-07-08 09:09:15 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2010-07-08 09:09:15 +0000
commite73cfe5d34490fef3beaf807140e5e56b3952c92 (patch)
tree16300a69c1c77ad01612763cfe737e8043ca7448 /gcc
parent51d49bc21877f8fb9850e30ef168f71ea6d164e8 (diff)
downloadgcc-e73cfe5d34490fef3beaf807140e5e56b3952c92.zip
gcc-e73cfe5d34490fef3beaf807140e5e56b3952c92.tar.gz
gcc-e73cfe5d34490fef3beaf807140e5e56b3952c92.tar.bz2
re PR rtl-optimization/44838 (RTL loop unrolling causes FAIL: gcc.dg/pr39794.c)
2010-07-08 Richard Guenther <rguenther@suse.de> PR rtl-optimization/44838 * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in SSA form do not use pointer equivalence. From-SVN: r161945
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/tree-ssa-alias.c3
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e374743..3d619ad 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2010-07-08 Richard Guenther <rguenther@suse.de>
+
+ PR rtl-optimization/44838
+ * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
+ SSA form do not use pointer equivalence.
+
2010-07-08 Eric Botcazou <ebotcazou@adacore.com>
* dwarf2out.c (AT_linkage_name): Delete.
diff --git a/gcc/tree-ssa-alias.c b/gcc/tree-ssa-alias.c
index 78eb362..2460804 100644
--- a/gcc/tree-ssa-alias.c
+++ b/gcc/tree-ssa-alias.c
@@ -801,7 +801,8 @@ indirect_refs_may_alias_p (tree ref1 ATTRIBUTE_UNUSED, tree base1,
/* If both bases are based on pointers they cannot alias if they may not
point to the same memory object or if they point to the same object
and the accesses do not overlap. */
- if (operand_equal_p (ptr1, ptr2, 0))
+ if ((!cfun || gimple_in_ssa_p (cfun))
+ && operand_equal_p (ptr1, ptr2, 0))
{
if (TREE_CODE (base1) == MEM_REF)
offset1 += mem_ref_offset (base1).low * BITS_PER_UNIT;