http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50955

--- Comment #16 from rguenther at suse dot de <rguenther at suse dot de> ---
On Fri, 16 Aug 2013, pinskia at gcc dot gnu.org wrote:

> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50955
> 
> --- Comment #15 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
> (In reply to Andrew Pinski from comment #14)
> > I am running into a similar situation with a modified 4.7 on
> > mips64-linux-gnu (configured to use the Octeon2 instructions which has a
> > load instruction which does base+index [or rather reg+reg]).
> 
> Before IV-OPTS I have this use:
>   i.17_13 = (sizetype) i_52;
>   D.13668_14 = i.17_13 + -1;
>   D.13669_15 = D.13668_14 * 4;
>   D.13670_16 = D.13666_12 + D.13669_15;
>   att_17 = *D.13670_16;
> 
> But we decided that it was not used as an address here though.  We have:
> (gdb) p *use->iv
> $15 = {base = 0x7ffff77e1c60, base_object = 0x0, step = 0x7ffff77e1c60,
> ssa_name = 0x0, biv_p = 0 '\000', 
>   have_use_for = 1 '\001', use_id = 0}
> (gdb) p *use
> $16 = {id = 3, type = USE_NONLINEAR_EXPR, iv = 0x1376bb0, stmt =
> 0x7ffff727c780, op_p = 0x0, related_cands = 0x0, 
>   n_map_members = 10, cost_map = 0x13de580, selected = 0x0}

The original fix was supposed to be as small as possible (late in
the release cycle).  So it intentionally wasn't trying to be complete.

If you can provide a reproducer on trunk I'll gladly have a look
again (please open a new bugreport)

Reply via email to