diff options
author | Richard Henderson <rth@cygnus.com> | 1998-12-05 17:23:01 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 1998-12-05 17:23:01 -0800 |
commit | 02e3377d92148cb2d53d58aec19ce080107db49b (patch) | |
tree | de29d6055c3b79ef7b7ec74eb92b6be522669cbf /gcc/alias.c | |
parent | 07f04c916210ef346d9f314418daca775bf37859 (diff) | |
download | gcc-02e3377d92148cb2d53d58aec19ce080107db49b.zip gcc-02e3377d92148cb2d53d58aec19ce080107db49b.tar.gz gcc-02e3377d92148cb2d53d58aec19ce080107db49b.tar.bz2 |
alias.c (memrefs_conflict_p): A second ANDed address disables the aligned address optimization.
* alias.c (memrefs_conflict_p): A second ANDed address
disables the aligned address optimization.
From-SVN: r24121
Diffstat (limited to 'gcc/alias.c')
-rw-r--r-- | gcc/alias.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/alias.c b/gcc/alias.c index 909176e..ce5a499 100644 --- a/gcc/alias.c +++ b/gcc/alias.c @@ -1055,7 +1055,7 @@ memrefs_conflict_p (xsize, x, ysize, y, c) at least as large as the alignment, assume no other overlap. */ if (GET_CODE (x) == AND && GET_CODE (XEXP (x, 1)) == CONST_INT) { - if (ysize < -INTVAL (XEXP (x, 1))) + if (GET_CODE (y) == AND || ysize < -INTVAL (XEXP (x, 1))) xsize = -1; return memrefs_conflict_p (xsize, XEXP (x, 0), ysize, y, c); } @@ -1065,7 +1065,7 @@ memrefs_conflict_p (xsize, x, ysize, y, c) may yet be able to determine that we can not overlap. But we also need to that we are far enough from the end not to overlap a following reference, so we do nothing with that for now. */ - if (xsize < -INTVAL (XEXP (y, 1))) + if (GET_CODE (x) == AND || xsize < -INTVAL (XEXP (y, 1))) ysize = -1; return memrefs_conflict_p (xsize, x, ysize, XEXP (y, 0), c); } |