Hi, I would like to resubmit these patches for comments. The previous detailed discussion is available in the below mentioned link. https://gcc.gnu.org/ml/gcc-patches/2014-04/msg01679.html https://gcc.gnu.org/ml/gcc-patches/2014-05/msg00489.html
The issue is still reproducible on GCC v4.8 branch.
I have tested both the attached patches with e500v2 tool chain on GCC v4.8
branch [rev 221667] and GCC trunk [rev 221310] with no regressions.
Patch1 [gcc.fix_pr60158_fixup_table_fsf_1]: Pass actual alignment value to
output_constant_pool_2.
Patch2 [gcc.fix_pr60158_fixup_table_fsf_2]: Use the alignment data available in
the first argument (constant_descriptor_rtx) of output_constant_pool_1.
(Note: this generates ".align" directive twice).
Please let me know your comments.
Regards,
Rohit
-----Original Message-----
From: Dharmakan Rohit-B30502
Sent: Wednesday, June 04, 2014 4:46 PM
To: [email protected]
Subject: RE: [Patch, PR 60158] gcc/varasm.c : Pass actual alignment value to
output_constant_pool_2
Ping.
I have changed the subject line accordingly.
Regards,
Rohit
> -----Original Message-----
> From: David Edelsohn [mailto:[email protected]]
> Sent: Thursday, May 08, 2014 9:28 PM
> To: Dharmakan Rohit-B30502; Jakub Jelinek; Richard Biener
> Cc: Alan Modra; [email protected]; Wienskoski Edmar-RA8797
> Subject: Re: [Patch, PR 60158] Generate .fixup sections for
> .data.rel.ro.local entries.
>
> Rohit,
>
> The subject line and thread may confuse people that this is a PowerPC-
> specific issue. You need approval from a reviewer with authority over
> varasm.c.
>
> Thanks, David
>
> On Thu, May 8, 2014 at 9:54 AM, [email protected]
> <[email protected]> wrote:
> >> -----Original Message-----
> >> From: Alan Modra [mailto:[email protected]]
> >> Sent: Saturday, April 26, 2014 11:52 AM
> >> To: Dharmakan Rohit-B30502
> >> Cc: [email protected]; [email protected]; Wienskoski
> >> Edmar-RA8797
> >> Subject: Re: [Patch, PR 60158] Generate .fixup sections for
> >> .data.rel.ro.local entries.
> >>
> >> On Fri, Apr 25, 2014 at 02:57:38PM +0000,
> >> [email protected]
> >> wrote:
> >> > Source file: gcc-4.8.2/gcc/varasm.c @@ -7120,7 +7120,7 @@
> >> > if (CONSTANT_POOL_ADDRESS_P (symbol))
> >> > {
> >> > desc = SYMBOL_REF_CONSTANT (symbol);
> >> > output_constant_pool_1 (desc, 1);
> >> ------------- (A)
> >> > offset += GET_MODE_SIZE (desc->mode);
> >>
> >> I think the reason 1 is passed here for align is that with
> >> -fsection- anchors, in output_object_block we've already laid out
> >> everything in the block, assigning offsets from the start of the
> >> block. Aligning shouldn't be necessary, because we've already done
> >> that.. OTOH, it shouldn't hurt to align again.
> >>
> > Thanks. I have tested for both the cases on e500v2, e500mc, e5500,
> ppc64 (GCC v4.8.2 branch) with no regressions.
> >
> > Patch1 [gcc.fix_pr60158_fixup_table-fsf]: Pass actual alignment
> > value
> to output_constant_pool_2.
> > Patch2 [gcc.fix_pr60158_fixup_table-fsf-2]: Use the alignment data
> available in the first argument (constant_descriptor_rtx) of
> output_constant_pool_1.
> > (Note: this generates ".align" directive twice).
> >
> > Is it ok to commit? Any comments?
> >
> > Regards,
> > Rohit
> >
gcc.fix_pr60158_fixup_table_trunk_fsf_1
Description: gcc.fix_pr60158_fixup_table_trunk_fsf_1
gcc.fix_pr60158_fixup_table_trunk_fsf_2
Description: gcc.fix_pr60158_fixup_table_trunk_fsf_2
