On 10/05/2017 07:09 AM, Richard Earnshaw (lists) wrote: > On 04/10/17 00:50, vladimir.mezent...@oracle.com wrote: >> From: Vladimir Mezentsev <vladimir.mezent...@oracle.com> >> >> Tested on aarch64-linux-gnu. >> No regression. >> No bootstrap failure. >> >> gcc/ChangeLog: >> 2017-09-26 Vladimir Mezentsev <vladimir.mezent...@oracle.com> >> >> * gcc/config/aarch64/aarch64.c: restore fix in >> aarch64_use_blocks_for_constant_p > Vladimir, > > Thanks for the patch, but I can't accept this as it stands. The patch > lacks a description of what is motivating the change, so I can't really > review it sensibly. What's the problem you are trying to address? Why > do you believe this is the right fix? Do you have a test case?
Hello Richard, I wanted to fix *Bug 68256* <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68256> - Defining TARGET_USE_CONSTANT_BLOCKS_P causes go bootstrap failure on aarch64. Ramana Radhakrishnan (<ramana.radhakrish...@arm.com> ) made a workaround for this bug: commit bc443a71dafa2e707bae4b2fa74f83b05dea37ab Author: ramana <ramana@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Tue Nov 10 08:35:21 2015 +0000 Workaround PR68256 on AArch64 I removed Raman's fixes andI cannot reproduce the problem. I used the gcc116.fsffrance.org machine: % uname -a Linux gcc116 3.13.0-92-generic #139-Ubuntu SMP Tue Jun 28 20:45:34 UTC 2016 aarch64 aarch64 aarch64 GNU/Linux I run % ../gcc/configure --enable-languages=c,c++,go --enable-bootstrap --enable-multilib % make -j8 bootstrap Is it correct steps to reproduce the go bootstrap failure ? If yes: There were no bootstrap comparison failure and no regression in testing. My suggestion is to remove Raman's workaround and close PR68256. If no: What is wrong in my steps? Thank you, -Vladimir > > The ChangeLog entry doesn't help me either: restore what fix? > > Is the patch associated with a bugzilla report? If so, then please > include that in the ChangeLog in the form "PR <category>/<pr-num>. > > Incidentally, ChangeLog entries should be complete sentences (begin with > a capital letter and end with a full stop). > > R. > > >> --- >> gcc/config/aarch64/aarch64.c | 8 +++----- >> 1 file changed, 3 insertions(+), 5 deletions(-) >> >> diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c >> index 1c14008..b377bc7 100644 >> --- a/gcc/config/aarch64/aarch64.c >> +++ b/gcc/config/aarch64/aarch64.c >> @@ -6193,11 +6193,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 >>