diff options
author | Richard Guenther <rguenther@suse.de> | 2010-07-08 09:09:15 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2010-07-08 09:09:15 +0000 |
commit | e73cfe5d34490fef3beaf807140e5e56b3952c92 (patch) | |
tree | 16300a69c1c77ad01612763cfe737e8043ca7448 /gcc/tree-ssa-alias.c | |
parent | 51d49bc21877f8fb9850e30ef168f71ea6d164e8 (diff) | |
download | gcc-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/tree-ssa-alias.c')
-rw-r--r-- | gcc/tree-ssa-alias.c | 3 |
1 files changed, 2 insertions, 1 deletions
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; |