diff options
author | Vladimir Mezentsev <vladimir.mezentsev@oracle.com> | 2018-03-15 08:55:04 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2018-03-15 08:55:04 +0000 |
commit | 74a9301d6128c0c7a4a8570545b9db40505c93f2 (patch) | |
tree | 69ad9ba092b6aca3614cfeace9ebfe66457417df /gcc | |
parent | fa7dde7ea2e02096ab3e727b8de930c2d6678f87 (diff) | |
download | gcc-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/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/aarch64/aarch64.c | 8 | ||||
-rw-r--r-- | gcc/varasm.c | 2 |
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. */ |