Re: How can I write an empty conversion instruction

2005-05-09 Thread Richard Henderson
On Mon, May 09, 2005 at 05:26:10PM +0100, Richard Earnshaw wrote: > So do we fully recreate *all* the flow information before a scheduling > pass? Yes. r~

Re: How can I write an empty conversion instruction

2005-05-09 Thread Richard Earnshaw
On Mon, 2005-05-09 at 17:11, Richard Henderson wrote: > On Mon, May 09, 2005 at 12:40:48PM +0100, Richard Earnshaw wrote: > > > The best way is to have a post-reload splitter that splits the insn > > > into nothing at all. > > > > Is that really valid? I would have thought it would break the data

Re: How can I write an empty conversion instruction

2005-05-09 Thread Richard Henderson
On Mon, May 09, 2005 at 12:40:48PM +0100, Richard Earnshaw wrote: > > The best way is to have a post-reload splitter that splits the insn > > into nothing at all. > > Is that really valid? I would have thought it would break the data flow. Obviously you only split to nothing when the registers m

Re: How can I write an empty conversion instruction

2005-05-09 Thread Richard Earnshaw
On Sat, 2005-05-07 at 04:14, Richard Henderson wrote: > On Fri, May 06, 2005 at 01:59:06PM -0700, Steve Ellcey wrote: > > I was wondering if anyone could tell me how to write an (empty) > > instruction pattern that does a truncate/extend conversion on a register > > 'in place'. > > > > All the con

Re: How can I write an empty conversion instruction

2005-05-06 Thread Richard Henderson
On Fri, May 06, 2005 at 01:59:06PM -0700, Steve Ellcey wrote: > I was wondering if anyone could tell me how to write an (empty) > instruction pattern that does a truncate/extend conversion on a register > 'in place'. > > All the conversions I see are like this one in ia64/ia64.md: > > (define_ins

Re: How can I write an empty conversion instruction

2005-05-06 Thread Daniel Jacobowitz
On Fri, May 06, 2005 at 02:38:30PM -0700, Steve Ellcey wrote: > > You might want to try this instead: > > > > [(set (match_operand:DF 0 "fr_register_operand" "=f") > > (unspec:DF [(match_operand:SF 0 "fr_register_operand" "0")] > > UNSPEC_NOP_EXTEND))] > > > > -- > > Daniel Jacobowitz

Re: How can I write an empty conversion instruction

2005-05-06 Thread Steve Ellcey
> You might want to try this instead: > > [(set (match_operand:DF 0 "fr_register_operand" "=f") > (unspec:DF [(match_operand:SF 0 "fr_register_operand" "0")] > UNSPEC_NOP_EXTEND))] > > -- > Daniel Jacobowitz > CodeSourcery, LLC Nope. GCC doesn't like seeing two match_operand's for o

Re: How can I write an empty conversion instruction

2005-05-06 Thread David Edelsohn
> Steve Ellcey writes: Steve> I was wondering if anyone could tell me how to write an (empty) Steve> instruction pattern that does a truncate/extend conversion on a register Steve> 'in place'. See extendsfdf2_fpr in rs6000.md David

Re: How can I write an empty conversion instruction

2005-05-06 Thread Daniel Jacobowitz
On Fri, May 06, 2005 at 01:59:06PM -0700, Steve Ellcey wrote: > My attempt: > > (define_insn "nop_extendsfdf" > [(set (match_operand:DF 0 "fr_register_operand" "+f") > (unspec:DF [(match_dup:SF 0)] UNSPEC_NOP_EXTEND))] > "" > "" > [(set_attr "itanium_class" "ignore") >(set_attr

How can I write an empty conversion instruction

2005-05-06 Thread Steve Ellcey
I was wondering if anyone could tell me how to write an (empty) instruction pattern that does a truncate/extend conversion on a register 'in place'. All the conversions I see are like this one in ia64/ia64.md: (define_insn "extendsfdf2" [(set (match_operand:DF 0 "fr_register_operand" "=f")