diff options
author | Jeffrey A Law <law@cygnus.com> | 1997-10-26 17:38:13 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1997-10-26 10:38:13 -0700 |
commit | 6d849a2abd23e7fcb3e128bb28835178cd64c1dc (patch) | |
tree | b0a9353b5d4b6bd9dfa4bab7a31b42ab7d18dae7 /gcc/alias.c | |
parent | 91585c63e4f946b21ec89f51bb8ec555444ddd1f (diff) | |
download | gcc-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.c | 16 |
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 |