diff options
-rw-r--r-- | gcc/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/cse.c | 9 |
2 files changed, 8 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c5743e5..d73f68c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -8,6 +8,9 @@ Wed Jan 3 08:53:50 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> * builtins.c (expand_builtin_return_addr): Don't use MEM_ALIAS_SET on a REG rtx. + * cse.c (cse_rtx_varies_p): Accept additional FROM_ALIAS arg. All + callers changed. + 2001-01-03 Alexandre Oliva <aoliva@redhat.com> * combine.c (simplify_shift_const): Even if we're sign-extracting, @@ -656,7 +656,7 @@ static struct table_elt *insert PARAMS ((rtx, struct table_elt *, unsigned, static void merge_equiv_classes PARAMS ((struct table_elt *, struct table_elt *)); static void invalidate PARAMS ((rtx, enum machine_mode)); -static int cse_rtx_varies_p PARAMS ((rtx)); +static int cse_rtx_varies_p PARAMS ((rtx, int)); static void remove_invalid_refs PARAMS ((unsigned int)); static void remove_invalid_subreg_refs PARAMS ((unsigned int, unsigned int, enum machine_mode)); @@ -2691,8 +2691,9 @@ exp_equiv_p (x, y, validate, equal_values) against certain constants or near-constants. */ static int -cse_rtx_varies_p (x) +cse_rtx_varies_p (x, from_alias) register rtx x; + int from_alias ATTRIBUTE_UNUSED; { /* We need not check for X and the equivalence class being of the same mode because if X is equivalent to a constant in some mode, it @@ -2745,7 +2746,7 @@ cse_rtx_varies_p (x) return 0; } - return rtx_varies_p (x, 0); + return rtx_varies_p (x, from_alias); } /* Canonicalize an expression: @@ -6595,7 +6596,7 @@ invalidate_skipped_set (dest, set, data) a BLKmode or nonscalar memory reference or a reference to a variable address. */ && (MEM_IN_STRUCT_P (dest) || GET_MODE (dest) == BLKmode - || cse_rtx_varies_p (XEXP (dest, 0)))) + || cse_rtx_varies_p (XEXP (dest, 0), 0))) { invalidate_memory (); return; |