This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: Lousy scheduling decisions owing to bad interaction betweensched and greg :(

> -----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!

Can't think of a witty .sigline today....

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]