Message ID | 1444280375-20866-3-git-send-email-rth@redhat.com |
---|---|
State | New |
Headers | show |
On Thu, Oct 8, 2015 at 6:59 AM, Richard Henderson <rth@redhat.com> wrote: > If all address spaces use the same modes and forms, we would > be forced to replicate these hooks in the backend. Which would > then require the creation of a new hook to replace > target_default_pointer_address_modes_p. Looks good to me. Richard. > > * targhooks.c (default_addr_space_pointer_mode): Remove check > for generic address space. > (default_addr_space_address_mode): Likewise. > (default_addr_space_valid_pointer_mode): Likewise. > (default_addr_space_legitimate_address_p): Likewise. > (default_addr_space_legitimize_address): Likewise. > --- > gcc/targhooks.c | 39 ++++++++++++++++----------------------- > 1 file changed, 16 insertions(+), 23 deletions(-) > > diff --git a/gcc/targhooks.c b/gcc/targhooks.c > index 7238c8f..a8a243c 100644 > --- a/gcc/targhooks.c > +++ b/gcc/targhooks.c > @@ -1181,35 +1181,31 @@ default_ref_may_alias_errno (ao_ref *ref) > return false; > } > > -/* Return the mode for a pointer to a given ADDRSPACE, defaulting to ptr_mode > - for the generic address space only. */ > +/* Return the mode for a pointer to a given ADDRSPACE, > + defaulting to ptr_mode for all address spaces. */ > > machine_mode > default_addr_space_pointer_mode (addr_space_t addrspace ATTRIBUTE_UNUSED) > { > - gcc_assert (ADDR_SPACE_GENERIC_P (addrspace)); > return ptr_mode; > } > > -/* Return the mode for an address in a given ADDRSPACE, defaulting to Pmode > - for the generic address space only. */ > +/* Return the mode for an address in a given ADDRSPACE, > + defaulting to Pmode for all address spaces. */ > > machine_mode > default_addr_space_address_mode (addr_space_t addrspace ATTRIBUTE_UNUSED) > { > - gcc_assert (ADDR_SPACE_GENERIC_P (addrspace)); > return Pmode; > } > > -/* Named address space version of valid_pointer_mode. */ > +/* Named address space version of valid_pointer_mode. > + To match the above, the same modes apply to all address spaces. */ > > bool > -default_addr_space_valid_pointer_mode (machine_mode mode, addr_space_t as) > +default_addr_space_valid_pointer_mode (machine_mode mode, > + addr_space_t as ATTRIBUTE_UNUSED) > { > - if (!ADDR_SPACE_GENERIC_P (as)) > - return (mode == targetm.addr_space.pointer_mode (as) > - || mode == targetm.addr_space.address_mode (as)); > - > return targetm.valid_pointer_mode (mode); > } > > @@ -1229,27 +1225,24 @@ target_default_pointer_address_modes_p (void) > return true; > } > > -/* Named address space version of legitimate_address_p. */ > +/* Named address space version of legitimate_address_p. > + By default, all address spaces have the same form. */ > > bool > default_addr_space_legitimate_address_p (machine_mode mode, rtx mem, > - bool strict, addr_space_t as) > + bool strict, > + addr_space_t as ATTRIBUTE_UNUSED) > { > - if (!ADDR_SPACE_GENERIC_P (as)) > - gcc_unreachable (); > - > return targetm.legitimate_address_p (mode, mem, strict); > } > > -/* Named address space version of LEGITIMIZE_ADDRESS. */ > +/* Named address space version of LEGITIMIZE_ADDRESS. > + By default, all address spaces have the same form. */ > > rtx > -default_addr_space_legitimize_address (rtx x, rtx oldx, > - machine_mode mode, addr_space_t as) > +default_addr_space_legitimize_address (rtx x, rtx oldx, machine_mode mode, > + addr_space_t as ATTRIBUTE_UNUSED) > { > - if (!ADDR_SPACE_GENERIC_P (as)) > - return x; > - > return targetm.legitimize_address (x, oldx, mode); > } > > -- > 2.4.3 >
diff --git a/gcc/targhooks.c b/gcc/targhooks.c index 7238c8f..a8a243c 100644 --- a/gcc/targhooks.c +++ b/gcc/targhooks.c @@ -1181,35 +1181,31 @@ default_ref_may_alias_errno (ao_ref *ref) return false; } -/* Return the mode for a pointer to a given ADDRSPACE, defaulting to ptr_mode - for the generic address space only. */ +/* Return the mode for a pointer to a given ADDRSPACE, + defaulting to ptr_mode for all address spaces. */ machine_mode default_addr_space_pointer_mode (addr_space_t addrspace ATTRIBUTE_UNUSED) { - gcc_assert (ADDR_SPACE_GENERIC_P (addrspace)); return ptr_mode; } -/* Return the mode for an address in a given ADDRSPACE, defaulting to Pmode - for the generic address space only. */ +/* Return the mode for an address in a given ADDRSPACE, + defaulting to Pmode for all address spaces. */ machine_mode default_addr_space_address_mode (addr_space_t addrspace ATTRIBUTE_UNUSED) { - gcc_assert (ADDR_SPACE_GENERIC_P (addrspace)); return Pmode; } -/* Named address space version of valid_pointer_mode. */ +/* Named address space version of valid_pointer_mode. + To match the above, the same modes apply to all address spaces. */ bool -default_addr_space_valid_pointer_mode (machine_mode mode, addr_space_t as) +default_addr_space_valid_pointer_mode (machine_mode mode, + addr_space_t as ATTRIBUTE_UNUSED) { - if (!ADDR_SPACE_GENERIC_P (as)) - return (mode == targetm.addr_space.pointer_mode (as) - || mode == targetm.addr_space.address_mode (as)); - return targetm.valid_pointer_mode (mode); } @@ -1229,27 +1225,24 @@ target_default_pointer_address_modes_p (void) return true; } -/* Named address space version of legitimate_address_p. */ +/* Named address space version of legitimate_address_p. + By default, all address spaces have the same form. */ bool default_addr_space_legitimate_address_p (machine_mode mode, rtx mem, - bool strict, addr_space_t as) + bool strict, + addr_space_t as ATTRIBUTE_UNUSED) { - if (!ADDR_SPACE_GENERIC_P (as)) - gcc_unreachable (); - return targetm.legitimate_address_p (mode, mem, strict); } -/* Named address space version of LEGITIMIZE_ADDRESS. */ +/* Named address space version of LEGITIMIZE_ADDRESS. + By default, all address spaces have the same form. */ rtx -default_addr_space_legitimize_address (rtx x, rtx oldx, - machine_mode mode, addr_space_t as) +default_addr_space_legitimize_address (rtx x, rtx oldx, machine_mode mode, + addr_space_t as ATTRIBUTE_UNUSED) { - if (!ADDR_SPACE_GENERIC_P (as)) - return x; - return targetm.legitimize_address (x, oldx, mode); }