aboutsummaryrefslogtreecommitdiff
path: root/gcc/alias.c
diff options
context:
space:
mode:
authorJeffrey A Law <law@cygnus.com>1997-10-26 17:38:13 +0000
committerJeff Law <law@gcc.gnu.org>1997-10-26 10:38:13 -0700
commit6d849a2abd23e7fcb3e128bb28835178cd64c1dc (patch)
treeb0a9353b5d4b6bd9dfa4bab7a31b42ab7d18dae7 /gcc/alias.c
parent91585c63e4f946b21ec89f51bb8ec555444ddd1f (diff)
downloadgcc-6d849a2abd23e7fcb3e128bb28835178cd64c1dc.zip
gcc-6d849a2abd23e7fcb3e128bb28835178cd64c1dc.tar.gz
gcc-6d849a2abd23e7fcb3e128bb28835178cd64c1dc.tar.bz2
alias.c (find_base_value): Handle PRE_INC, PRE_DEC, POST_INC, and POS_DEC.
* alias.c (find_base_value): Handle PRE_INC, PRE_DEC, POST_INC, and POS_DEC. (find_base_term): Likewise. * alias.c (true_dependence): Fix typo. From-SVN: r16182
Diffstat (limited to 'gcc/alias.c')
-rw-r--r--gcc/alias.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/gcc/alias.c b/gcc/alias.c
index eb28526..ea62cd5 100644
--- a/gcc/alias.c
+++ b/gcc/alias.c
@@ -93,6 +93,13 @@ find_base_value (src)
case LABEL_REF:
return src;
+ case PRE_INC:
+ case PRE_DEC:
+ case POST_INC:
+ case POST_DEC:
+ src = XEXP (src, 0);
+ /* fall through */
+
case REG:
/* At the start of a function argument registers have known base
values which may be lost later. Returning an ADDRESS
@@ -463,6 +470,12 @@ find_base_term (x)
case HIGH:
return find_base_term (XEXP (x, 0));
+ case PRE_INC:
+ case PRE_DEC:
+ case POST_INC:
+ case POST_DEC:
+ return find_base_term (XEXP (x, 0));
+
case CONST:
x = XEXP (x, 0);
if (GET_CODE (x) != PLUS && GET_CODE (x) != MINUS)
@@ -824,7 +837,8 @@ true_dependence (mem, mem_mode, x, varies)
if (mem_mode == VOIDmode)
mem_mode = GET_MODE (mem);
- if (! memrefs_conflict_p (mem_mode, mem_addr, SIZE_FOR_MODE (x), x_addr, 0))
+ if (! memrefs_conflict_p (SIZE_FOR_MODE (mem_mode), mem_addr,
+ SIZE_FOR_MODE (x), x_addr, 0))
return 0;
/* If both references are struct references, or both are not, nothing