diff options
author | Jan Hubicka <jh@suse.cz> | 2004-01-12 12:15:33 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2004-01-12 11:15:33 +0000 |
commit | 9ddb66ca2c45a7b33ccabfa750292234928d6a2c (patch) | |
tree | 5e9cab849c3f60977861853b4d2869f626c7215c /gcc/cse.c | |
parent | c65ecebc826db604a52f546fe956da2926ee3486 (diff) | |
download | gcc-9ddb66ca2c45a7b33ccabfa750292234928d6a2c.zip gcc-9ddb66ca2c45a7b33ccabfa750292234928d6a2c.tar.gz gcc-9ddb66ca2c45a7b33ccabfa750292234928d6a2c.tar.bz2 |
alias.c: Invlude varray.h
* alias.c: Invlude varray.h
(alias_sets): Turn into varray.
(get_alias_set_entry): Use VARRAY; mark inline.
(mems_in_disjoint_alias_sets_p): Mark inline.
(record_alias_subset): Use varray.
(init_alias_once): Initialize varray.
(new_alias_set): Grow array.
* varray.c: Make VARRAY_GENERIC_PTR non GTYized.
From-SVN: r75711
Diffstat (limited to 'gcc/cse.c')
-rw-r--r-- | gcc/cse.c | 7 |
1 files changed, 6 insertions, 1 deletions
@@ -1768,6 +1768,7 @@ struct check_dependence_data { enum machine_mode mode; rtx exp; + rtx addr; }; static int @@ -1775,7 +1776,8 @@ check_dependence (rtx *x, void *data) { struct check_dependence_data *d = (struct check_dependence_data *) data; if (*x && GET_CODE (*x) == MEM) - return true_dependence (d->exp, d->mode, *x, cse_rtx_varies_p); + return canon_true_dependence (d->exp, d->mode, d->addr, *x, + cse_rtx_varies_p); else return 0; } @@ -1797,6 +1799,7 @@ invalidate (rtx x, enum machine_mode full_mode) { int i; struct table_elt *p; + rtx addr; switch (GET_CODE (x)) { @@ -1887,6 +1890,7 @@ invalidate (rtx x, enum machine_mode full_mode) return; case MEM: + addr = canon_rtx (get_addr (XEXP (x, 0))); /* Calculate the canonical version of X here so that true_dependence doesn't generate new RTL for X on each call. */ x = canon_rtx (x); @@ -1914,6 +1918,7 @@ invalidate (rtx x, enum machine_mode full_mode) if (!p->canon_exp) p->canon_exp = canon_rtx (p->exp); d.exp = x; + d.addr = addr; d.mode = full_mode; if (for_each_rtx (&p->canon_exp, check_dependence, &d)) remove_from_table (p, i); |