aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorVladimir Mezentsev <vladimir.mezentsev@oracle.com>2018-03-15 08:55:04 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2018-03-15 08:55:04 +0000
commit74a9301d6128c0c7a4a8570545b9db40505c93f2 (patch)
tree69ad9ba092b6aca3614cfeace9ebfe66457417df /gcc
parentfa7dde7ea2e02096ab3e727b8de930c2d6678f87 (diff)
downloadgcc-74a9301d6128c0c7a4a8570545b9db40505c93f2.zip
gcc-74a9301d6128c0c7a4a8570545b9db40505c93f2.tar.gz
gcc-74a9301d6128c0c7a4a8570545b9db40505c93f2.tar.bz2
re PR target/68256 (Defining TARGET_USE_CONSTANT_BLOCKS_P causes go bootstrap failure on aarch64.)
2018-03-15 Vladimir Mezentsev <vladimir.mezentsev@oracle.com> PR target/68256 * varasm.c (hash_section): Return an unchangeble hash value * config/aarch64/aarch64.c (aarch64_use_blocks_for_constant_p): Return !aarch64_can_use_per_function_literal_pools_p (). From-SVN: r258553
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/aarch64/aarch64.c8
-rw-r--r--gcc/varasm.c2
3 files changed, 11 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 07999ed..0d6855d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2018-03-15 Vladimir Mezentsev <vladimir.mezentsev@oracle.com>
+
+ PR target/68256
+ * varasm.c (hash_section): Return an unchangeble hash value
+ * config/aarch64/aarch64.c (aarch64_use_blocks_for_constant_p):
+ Return !aarch64_can_use_per_function_literal_pools_p ().
+
2018-03-15 Jakub Jelinek <jakub@redhat.com>
PR target/84860
diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
index 07c55b1..4b5183b 100644
--- a/gcc/config/aarch64/aarch64.c
+++ b/gcc/config/aarch64/aarch64.c
@@ -7733,11 +7733,9 @@ aarch64_can_use_per_function_literal_pools_p (void)
static bool
aarch64_use_blocks_for_constant_p (machine_mode, const_rtx)
{
- /* Fixme:: In an ideal world this would work similar
- to the logic in aarch64_select_rtx_section but this
- breaks bootstrap in gcc go. For now we workaround
- this by returning false here. */
- return false;
+ /* We can't use blocks for constants when we're using a per-function
+ constant pool. */
+ return !aarch64_can_use_per_function_literal_pools_p ();
}
/* Select appropriate section for constants depending
diff --git a/gcc/varasm.c b/gcc/varasm.c
index 6e345d3..2b5c70c 100644
--- a/gcc/varasm.c
+++ b/gcc/varasm.c
@@ -225,7 +225,7 @@ hash_section (section *sect)
{
if (sect->common.flags & SECTION_NAMED)
return htab_hash_string (sect->named.name);
- return sect->common.flags;
+ return sect->common.flags & ~SECTION_DECLARED;
}
/* Helper routines for maintaining object_block_htab. */