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

--- Comment #37 from Matthew Fortune <matthew.fortune at imgtec dot com> ---
(In reply to rguent...@suse.de from comment #36)
> On Fri, 3 Jun 2016, matthew.fortune at imgtec dot com wrote:
> 
> > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68273
> > 
> > --- Comment #35 from Matthew Fortune <matthew.fortune at imgtec dot com> ---
> > (In reply to Aurelien Jarno from comment #33)
> > > (In reply to Hector Oron from comment #32)
> > > > (In reply to Richard Biener from comment #31)
> > > > > eipa_sra introduces the remaining SSA name with non-default alignment 
> > > > > via
> > > > 
> > > > [PATCH]
> > > > 
> > > 
> > > For the record, Debian now have the patch from comment #32 in its version 
> > > of
> > > GCC 5 and 6. This fixes a few more issues than reported here, in addition 
> > > to
> > > graphviz, it also fixes subversion and jq.
> > 
> > Richard: Is the updated patch from comment #32 in-keeping with your original
> > changes in comment #20? If so then I'll post it on gcc-patches.
> > 
> > I do accept that there are MIPS fixes to be made in this area but I'd like 
> > to
> > get the existing code to 'work' again first if possible.
> 
> Note that the tree-ssa.c changes from comment#32 do not work as-is
> (on the branch you don't notice that because checking is disabled).
> Even the relaxed variant that we don't have over-aligned types in the IL
> breaks AFAIR.
> 
> Given the analysis in comment #31 I'd rather patch up either
> turn_representatives_into_adjustments or ipa_modify_formal_parameters
> (which already seems to have code to avoid under-aligned types).
> 
> That is, does
> 
> Index: gcc/ipa-prop.c
> ===================================================================
> --- gcc/ipa-prop.c      (revision 237053)
> +++ gcc/ipa-prop.c      (working copy)
> @@ -3910,7 +3909,7 @@ ipa_modify_formal_parameters (tree fndec
>               if (is_gimple_reg_type (ptype))
>                 {
>                   unsigned malign = GET_MODE_ALIGNMENT (TYPE_MODE 
> (ptype));
> -                 if (TYPE_ALIGN (ptype) < malign)
> +                 if (TYPE_ALIGN (ptype) != malign)
>                     ptype = build_aligned_type (ptype, malign);
>                 }
>             }
> 
> fix the issue as well?

Sorry for the very slow reply, got busy with libjava bugs.

This does fix jq as well so it looks good. I haven't done a GCC testsuite run
with the change in place yet though.

Reply via email to