From 02e3377d92148cb2d53d58aec19ce080107db49b Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Sat, 5 Dec 1998 17:23:01 -0800 Subject: [PATCH] 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 --- gcc/ChangeLog | 5 +++++ gcc/alias.c | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index af1fdbbe3a8..0d955f0a36f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Sun Dec 6 01:19:46 1998 Richard Henderson + + * alias.c (memrefs_conflict_p): A second ANDed address + disables the aligned address optimization. + Sat Dec 5 18:48:25 1998 Richard Henderson * alpha.c (alpha_emit_set_const_1): Fix parenthesis error diff --git a/gcc/alias.c b/gcc/alias.c index 909176ea3fb..ce5a4994365 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); } -- 2.30.2