Commit 2be28ee2 by Bernd Schmidt Committed by Bernd Schmidt

Add extra arg to cse_rtx_varies_p

From-SVN: r38656
parent a338321e
...@@ -8,6 +8,9 @@ Wed Jan 3 08:53:50 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> ...@@ -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 * builtins.c (expand_builtin_return_addr): Don't use MEM_ALIAS_SET on
a REG rtx. 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> 2001-01-03 Alexandre Oliva <aoliva@redhat.com>
* combine.c (simplify_shift_const): Even if we're sign-extracting, * 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, ...@@ -656,7 +656,7 @@ static struct table_elt *insert PARAMS ((rtx, struct table_elt *, unsigned,
static void merge_equiv_classes PARAMS ((struct table_elt *, static void merge_equiv_classes PARAMS ((struct table_elt *,
struct table_elt *)); struct table_elt *));
static void invalidate PARAMS ((rtx, enum machine_mode)); 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_refs PARAMS ((unsigned int));
static void remove_invalid_subreg_refs PARAMS ((unsigned int, unsigned int, static void remove_invalid_subreg_refs PARAMS ((unsigned int, unsigned int,
enum machine_mode)); enum machine_mode));
...@@ -2691,8 +2691,9 @@ exp_equiv_p (x, y, validate, equal_values) ...@@ -2691,8 +2691,9 @@ exp_equiv_p (x, y, validate, equal_values)
against certain constants or near-constants. */ against certain constants or near-constants. */
static int static int
cse_rtx_varies_p (x) cse_rtx_varies_p (x, from_alias)
register rtx x; register rtx x;
int from_alias ATTRIBUTE_UNUSED;
{ {
/* We need not check for X and the equivalence class being of the same /* 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 mode because if X is equivalent to a constant in some mode, it
...@@ -2745,7 +2746,7 @@ cse_rtx_varies_p (x) ...@@ -2745,7 +2746,7 @@ cse_rtx_varies_p (x)
return 0; return 0;
} }
return rtx_varies_p (x, 0); return rtx_varies_p (x, from_alias);
} }
/* Canonicalize an expression: /* Canonicalize an expression:
...@@ -6595,7 +6596,7 @@ invalidate_skipped_set (dest, set, data) ...@@ -6595,7 +6596,7 @@ invalidate_skipped_set (dest, set, data)
a BLKmode or nonscalar memory reference or a reference to a a BLKmode or nonscalar memory reference or a reference to a
variable address. */ variable address. */
&& (MEM_IN_STRUCT_P (dest) || GET_MODE (dest) == BLKmode && (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 (); invalidate_memory ();
return; return;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment