On Fri, 15 May 2015, Jeff Law wrote:

> On 05/15/2015 04:37 AM, Dharmakan Rohit Arul Raj wrote:
> > 
> > > -----Original Message-----
> > > From: Jeff Law [mailto:l...@redhat.com]
> > > Sent: Friday, May 15, 2015 10:30 AM
> > > > Just to summarize: By default in GCC v4.7.x, all the constants are put
> > > > into '.rodata.str1.4' section. In GCC v4.8.x from r192719 onwards, one
> > > > of the move instruction of the string constant ".LC0" is getting
> > > > spilled. The reload pass, for any constants that aren't allowed and
> > > > can't be reloaded in to registers tries to change them into memory
> > > > references. Then while emitting that string constant to asm code
> > > > (A:varasm.c: output_constant_pool_1), it explicitly passes the
> > > > alignment as 1 which prevents the generation of fix-up table entries
> > > > in  'B: rs6000.c:rs6000_assemble_integer' because the data is
> > > > considered unaligned now.
> > > > 
> > > > The bug seems to have gone latent with an unrelated trunk commit
> > > > r204695 [* tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Refactor
> > > > the code. Handle type conversion.]. This commit chooses different
> > > > spill candidates hence all the string constants are being put in to
> > > > '.rodata.str1.4´section.
> > > > 
> > > > The check I had in the test case is that if there is a
> > > > '.data.rel.ro.local', then there should be '.fixup' section generated.
> > > > 
> > > > Please let me know if you need any other details.
> > > Thanks.  Even though I wasn't able to trigger the bug with the testcase
> > > from
> > > 65018, I went ahead and committed this patch to the trunk.  It can't hurt
> > > and
> > > it's the right thing to do.
> > > 
> > > Thanks for your patience,
> > > 
> > 
> > Jeff, Thanks for checking-in the changes.
> > Can we apply the patch to GCC v4.8 and GCC v4.9 branch as well?
> That's up to the branch maintainers.  I'd think it's safe, but it's ultimately
> their call.

If it's a regression or a wrong-code issue then it's ok to backport given
the patch is safe, of course.

Richard.

> jeff
> 
> 

-- 
Richard Biener <rguent...@suse.de>
SUSE LINUX GmbH, GF: Felix Imendoerffer, Jane Smithard, Dilip Upmanyu, Graham 
Norton, HRB 21284 (AG Nuernberg)

Reply via email to