Mercurial > hg > CbC > CbC_gcc
diff gcc/alias.c @ 19:58ad6c70ea60
update gcc from 4.4.0 to 4.4.1.
author | kent@firefly.cr.ie.u-ryukyu.ac.jp |
---|---|
date | Thu, 24 Sep 2009 13:21:57 +0900 |
parents | a06113de4d67 |
children | 855418dad1a3 |
line wrap: on
line diff
--- a/gcc/alias.c Thu Sep 24 13:06:16 2009 +0900 +++ b/gcc/alias.c Thu Sep 24 13:21:57 2009 +0900 @@ -1438,15 +1438,16 @@ return x; return 0; + case LO_SUM: + /* The standard form is (lo_sum reg sym) so look only at the + second operand. */ + return find_base_term (XEXP (x, 1)); + case CONST: x = XEXP (x, 0); if (GET_CODE (x) != PLUS && GET_CODE (x) != MINUS) return 0; /* Fall through. */ - case LO_SUM: - /* The standard form is (lo_sum reg sym) so look only at the - second operand. */ - return find_base_term (XEXP (x, 1)); case PLUS: case MINUS: { @@ -2250,14 +2251,13 @@ Variant of true_dependence which assumes MEM has already been canonicalized (hence we no longer do that here). The mem_addr argument has been added, since true_dependence computed - this value prior to canonicalizing. */ + this value prior to canonicalizing. + If x_addr is non-NULL, it is used in preference of XEXP (x, 0). */ int canon_true_dependence (const_rtx mem, enum machine_mode mem_mode, rtx mem_addr, - const_rtx x, bool (*varies) (const_rtx, bool)) + const_rtx x, rtx x_addr, bool (*varies) (const_rtx, bool)) { - rtx x_addr; - if (MEM_VOLATILE_P (x) && MEM_VOLATILE_P (mem)) return 1; @@ -2283,7 +2283,8 @@ if (nonoverlapping_memrefs_p (x, mem)) return 0; - x_addr = get_addr (XEXP (x, 0)); + if (! x_addr) + x_addr = get_addr (XEXP (x, 0)); if (! base_alias_check (x_addr, mem_addr, GET_MODE (x), mem_mode)) return 0;