https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68404

--- Comment #32 from Michael Meissner <meissner at linux dot vnet.ibm.com> ---
On Thu, Feb 11, 2016 at 05:53:35PM +0000, meissner at linux dot vnet.ibm.com
wrote:
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68404
> 
> --- Comment #31 from Michael Meissner <meissner at linux dot vnet.ibm.com> ---
> On Thu, Feb 11, 2016 at 02:32:13AM +0000, bernds at gcc dot gnu.org wrote:
> > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68404
> > 
> > --- Comment #30 from Bernd Schmidt <bernds at gcc dot gnu.org> ---
> > Something like this maybe? I don't know much about the machine and can't say
> > whether the earlyclobber is justified, but looking at my dumps this appears 
> > to
> > prevent the problematic peephole from triggering. No testing beyond that.
> > 
> > Index: rs6000.c
> > ===================================================================
> > --- rs6000.c    (revision 233217)
> > +++ rs6000.c    (working copy)
> > @@ -35801,6 +35801,9 @@ fusion_gpr_load_p (rtx addis_reg,       /* reg
> >    if (!fusion_gpr_addis (addis_value, GET_MODE (addis_value)))
> >      return false;
> > 
> > +  if (reg_overlap_mentioned_p (target, addis_value))
> > +    return false;
> > +
> >    /* Allow sign/zero extension.  */
> >    if (GET_CODE (mem) == ZERO_EXTEND
> >        || (GET_CODE (mem) == SIGN_EXTEND && TARGET_P8_FUSION_SIGN))
> 
> In looking at it, I probably don't need the early clobber.  Let me play with
> it.

It turns out the earlyclobber was indeed the issue, and just eliminating the
earlyclobber and providing constraints for the combined insns allowed
profiledbootstrap with LTO to do a complete build.  Just to be sure, I also did
a profiledbootstrap with LTO and specifying -O3.

I'll submit the patches to the patches mailing list.

Reply via email to