[PATCH] Modulo-scheduling improvements. Patch 2 of 2.

Ayal Zaks ZAKS@il.ibm.com
Sat Aug 18 19:52:00 GMT 2007


Zdenek Dvorak <rakdver@kam.mff.cuni.cz> wrote on 18/08/2007 17:24:22:

> Hello,
>
> > > > > +  pattern = PATTERN (doloop_pat);
> > > > > +
> > > > >    if (GET_CODE (pattern) != PARALLEL)
> > > > > -    return 0;
> > > > > +    {
> > > > > +      rtx cond;
> > > > >
> > > > > -  cmp = XVECEXP (pattern, 0, 0);
> > > > > -  inc = XVECEXP (pattern, 0, 1);
> > > > > +      cmp = pattern;
> > > > > +      inc = PATTERN (PREV_INSN (doloop_pat));
> > > >
> > > > This is probably where we need to check that
> > > > +  if (INSN_P (PREV_INSN (doloop_pat)))
> > >
> > > it won't harm (and also checking that PREV_INSN (doloop_pat) !=
> > NULL_RTX);
> > > however, since doloop_pat comes from the machine description, we
could
> > > also just trust it.
> >
> > We saw cases in spu and ia64 that PREV_INSN was a note and thus the
check
> > for INSN_P (PREV_INSN (doloop_pat)) should be done.
>
> oh... I forgot that you are also using doloop_condition_get from the SMS
> code.  OK for now, but I expect you (or someone else responsible for
> SMS) to rewrite SMS asap to stop doing it.
>

Yup, on our list, following the Re: Does unrolling prevents doloop
optimizations discussion.

Ayal.



More information about the Gcc-patches mailing list