aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2015-10-21 13:34:47 -0700
committerRichard Henderson <rth@gcc.gnu.org>2015-10-21 13:34:47 -0700
commit0f16c5729bfc4a9939578feb7e319f41c7dd9b41 (patch)
tree1d760d175ded09b634db1ebadfcfa055214ca9bf /gcc
parent2e44cd8b00ffeabf4a8ec8683ef97802bf9a9345 (diff)
downloadgcc-0f16c5729bfc4a9939578feb7e319f41c7dd9b41.zip
gcc-0f16c5729bfc4a9939578feb7e319f41c7dd9b41.tar.gz
gcc-0f16c5729bfc4a9939578feb7e319f41c7dd9b41.tar.bz2
Relax ADDR_SPACE_GENERIC_P checks for default address space hooks
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. * 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. From-SVN: r229143
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/targhooks.c39
2 files changed, 23 insertions, 23 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ec60f84..d5d304d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,12 @@
2015-10-21 Richard Henderson <rth@redhat.com>
+ * 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.
+
* expr.c (expand_expr_real_2): Use convert_modes on disjoint
address spaces.
diff --git a/gcc/targhooks.c b/gcc/targhooks.c
index 01aaed07..c39f266 100644
--- a/gcc/targhooks.c
+++ b/gcc/targhooks.c
@@ -1195,35 +1195,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);
}
@@ -1243,27 +1239,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);
}