This is the mail archive of the gcc@gcc.gnu.org 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: Help with constraint for single register


On Sat, Dec 25, 2004 at 07:45:20PM -0500, Robert Baruch wrote:
> QUESTION #1: Since I'm always going to use DONE, do I really have to
> define an RTL template here? Or can I leave it empty? Should I leave
> it in just for documentation purposes?

The match_operands have to be present.  Most times we leave the minimal
template there for documentation.  Other times we just do

  [(match_operand:QI 0 "nonimmediate_operand" "")
   (match_operand:QI 1 "general_operand" "")]

> QUESTION #2: Uh oh, somehow the compiler got a hold of W anyway, and
> generated RTL for const -1 -> W, and passed that move to my expander.
> How did the compiler grab W?

If you exposed W through an expander, that'll be the cause.
You've let the rtl optimzers see the register.

It sounds like W is a real bottleneck on your target.  It may
be unwise to expose this register at all before reload.

And if you've not got any real scheduling or instruction packing
constraints (most microcontrolers don't), then really there's no
point in exposing it at all.


r~


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