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