This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: How to implement pattens with more that 30 alternatives
On Mon, 2009-12-21 at 18:44 +0000, Paul Brook wrote:
> > > > I am doing a port in GCC 4.4.0 for a 32 bit target. As a part of
> > > > scheduling framework i have to write the move patterns with more
> > > > clarity, so that i could control the scheduling with the help of
> > > > attributes. Re-writting the pattern resulted in movsi pattern with 41
> > > > alternatives :(
> > >
> > > Use rtl expressions instead of alternatives. e.g. arm.md:arith_shiftsi
> >
> > Or use the more modern iterators approach.
>
> Aren't iterators for generating multiple insns (e.g. movsi and movdi) from the
> same pattern, whereas in this case we have a single insn that needs to accept
> many different operand combinartions?
Yes, but that is often better, I suspect, than having too fancy a
pattern that breaks the optimization simplifications that genrecog does.
Note that the attributes that were requested could be made part of the
iterator as well, using a mode_attribute.
R.