diff options
author | Richard Sandiford <rdsandiford@googlemail.com> | 2011-07-19 17:43:27 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2011-07-19 17:43:27 +0000 |
commit | 527210c448c692264cebb61acf3a2c6aef3073ad (patch) | |
tree | dc0b299847e998d99b662b29fa6960f8e4d4b826 /gcc/builtins.c | |
parent | f5541398efc0174bbdc40933be77747ad2000426 (diff) | |
download | gcc-527210c448c692264cebb61acf3a2c6aef3073ad.zip gcc-527210c448c692264cebb61acf3a2c6aef3073ad.tar.gz gcc-527210c448c692264cebb61acf3a2c6aef3073ad.tar.bz2 |
rtl.texi (MEM_OFFSET_KNOWN_P): Document.
gcc/
* doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document.
(MEM_OFFSET): Change from returning an rtx to returning a
HOST_WIDE_INT.
* rtl.h (MEM_OFFSET_KNOWN_P): New macro.
(MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx.
* emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
(clear_mem_offset): Declare.
* alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using
MEM_OFFSET_KNOWN_P to test whether the offset is known, and
MEM_OFFSET to get a HOST_WIDE_INT offset.
(nonoverlapping_memrefs_p): Likewise. Adjust calls to...
(adjust_offset_for_component_ref): Take a bool "known_p"
parameter and a HOST_WIDE_INT "offset" parameter.
* builtins.c (get_memory_rtx): As for ao_ref_from_mem.
Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather
than an rtx. Use clear_mem_offset to clear the offset.
* cfgcleanup.c (merge_memattrs): Likewise.
* dwarf2out.c (tls_mem_loc_descriptor): Likewise.
* function.c (assign_parm_find_stack_rtl): Likewise.
(assign_parm_setup_stack): Likewise.
* print-rtl.c (print_rtx): Likewise.
* reload.c (find_reloads_subreg_address): Likewise.
* simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
* var-tracking.c (INT_MEM_OFFSET): Likewise.
* emit-rtl.c (set_reg_attrs_from_value): Likewise.
(get_mem_align_offset): Likewise.
(set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
(clear_mem_offset): New function.
* config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT
offset rather than an rtx. Assume both the expressio and offset
are available.
(r10k_needs_protection_p_1): Update accordingly, checking the
expression and offset availability here instead.
From-SVN: r176477
Diffstat (limited to 'gcc/builtins.c')
-rw-r--r-- | gcc/builtins.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/gcc/builtins.c b/gcc/builtins.c index 6818fe2..afe1ed0 100644 --- a/gcc/builtins.c +++ b/gcc/builtins.c @@ -1238,9 +1238,8 @@ get_memory_rtx (tree exp, tree len) gcc_assert (TREE_CODE (inner) == COMPONENT_REF); - if (MEM_OFFSET (mem) - && CONST_INT_P (MEM_OFFSET (mem))) - offset = INTVAL (MEM_OFFSET (mem)); + if (MEM_OFFSET_KNOWN_P (mem)) + offset = MEM_OFFSET (mem); if (offset >= 0 && len && host_integerp (len, 0)) length = tree_low_cst (len, 0); @@ -1295,7 +1294,10 @@ get_memory_rtx (tree exp, tree len) if (mem_expr != MEM_EXPR (mem)) { set_mem_expr (mem, mem_expr); - set_mem_offset (mem, offset >= 0 ? GEN_INT (offset) : NULL_RTX); + if (offset >= 0) + set_mem_offset (mem, offset); + else + clear_mem_offset (mem); } } set_mem_alias_set (mem, 0); |