[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