From: Jeffrey A Law Date: Sun, 26 Oct 1997 18:39:57 +0000 (+0000) Subject: Take out find_base_value change -- not needed, only the find_base_term X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=adb9effb26586361b5dbf9ec28ce68c7b681b10e;p=gcc.git Take out find_base_value change -- not needed, only the find_base_term change was needed. From-SVN: r16185 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7fa5613a7a4..0cd65dc9898 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -17,9 +17,8 @@ Sun Oct 26 09:21:40 1997 Jeffrey A Law (law@cygnus.com) * Makefile.in (LIBGCC2_CFLAGS): Add -fexceptions. - * alias.c (find_base_value): Handle PRE_INC, PRE_DEC, POST_INC, + * alias.c (find_base_term): Handle PRE_INC, PRE_DEC, POST_INC, and POS_DEC. - (find_base_term): Likewise. * alias.c (true_dependence): Fix typo. diff --git a/gcc/alias.c b/gcc/alias.c index ea62cd56fe2..07f98e61e91 100644 --- a/gcc/alias.c +++ b/gcc/alias.c @@ -93,13 +93,6 @@ 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 @@ -107,6 +100,8 @@ find_base_value (src) even when the argument registers are used for other purposes. */ if (REGNO (src) < FIRST_PSEUDO_REGISTER && copying_arguments) return reg_base_value[REGNO (src)]; + if (REG_N_SETS (REGNO (src)) == 1 && reg_base_value[REGNO (src)]) + return reg_base_value[REGNO (src)]; return src; case MEM: @@ -129,7 +124,21 @@ find_base_value (src) case PLUS: case MINUS: { - rtx src_0 = XEXP (src, 0), src_1 = XEXP (src, 1); + rtx temp, src_0 = XEXP (src, 0), src_1 = XEXP (src, 1); + + if (GET_CODE (src_0) == REG) + { + temp = find_base_value (src_0); + if (temp) + src_0 = temp; + } + + if (GET_CODE (src_1) == REG) + { + temp = find_base_value (src_1); + if (temp) + src_1 = temp; + } /* Guess which operand is the base address. @@ -144,6 +153,12 @@ find_base_value (src) || GET_CODE (src_0) == CONST) return find_base_value (src_0); + if (GET_CODE (src_0) == CONST_INT + || GET_CODE (src_1) == SYMBOL_REF + || GET_CODE (src_1) == LABEL_REF + || GET_CODE (src_1) == CONST) + return find_base_value (src_1); + if (GET_CODE (src_0) == REG && REGNO_POINTER_FLAG (REGNO (src_0))) return find_base_value (src_0);