Lousy scheduling decisions owing to bad interaction betweensched and greg :(
Dave Korn
dk@artimi.com
Fri Sep 3 17:26:00 GMT 2004
> -----Original Message-----
> From: Jeffrey A Law
> Sent: 03 September 2004 17:35
> On Fri, 2004-09-03 at 06:49, Dave Korn wrote:
> > Morning all!
> >
> >
> > [ This is a rather long post, so I'll summarize very
> quickly at the top:
> > 1) I've got bad scheduling decisions being made, 2) I think
> I know why, 3)
> > Would anyone be so kind as to cast an eye over my
> define_function_unit
> > statement to sanity-check it for me, 4) Does an expander
> sound like the
> > right solution to the problem? ]
> Just to make sure I understand.
>
> Your port has r->m and m->r instructions, but no m->m instructions.
> Right? That's the core issue, you need to reflect that in your
> move patterns' predicates so that you do not get m->m insns.
Yep, spot on.
> This is pretty typical for many targets. You'll want an expander
> for your move patterns which breaks m->m moves into m->r, r->m
> sequences.
>
> You'll want a matching pattern which requires a register for
> either the source or destination operand.
>
> You can probably crib code from any of the riscy-like targets
> to do this.
>
> jeff
Yep, that seems to be the consensus. Thanks, Jeff, Richard, and Joern,
for your helpful replies!
cheers,
DaveK
--
Can't think of a witty .sigline today....
More information about the Gcc
mailing list