Help with another constraint
Hans-Peter Nilsson
hp@bitrange.com
Sun Dec 16 17:18:00 GMT 2007
On Sun, 16 Dec 2007, Hans-Peter Nilsson wrote:
> On Wed, 12 Dec 2007, Dave Korn wrote:
>
> > On 12 December 2007 12:14, Revital1 Eres wrote:
> >
> > > It seems that the pair m and I is missing (which indicate the memory =
> > > constant instruction).
> >
> > So doesn't the question then become "Why isn't reload reloading the constant
> > into a register"?
>
> Yes. And the answer AFAIK is "because it doesn't see a way to
> move a constant into a register; it understands "r", not "p" and
> "q".
I think I have to correct myself; register allocation and reload
*should* understand p and q as register constraints, given e.g.
a correct REG_CLASS_FROM_LETTER definition and correct regclass
macros. The latter were not disclosed and are usually a source
of hard-to-find errors.
Besides, if you can't directly move between p and q (as your
constraints indicate) then as Rask says, you also need to tell
GCC through the secondary-reload mechanisms.
I can't help but thinking the best suggetion is for bviyer to
let gdb answer the question by stepping through cc1 instead of
relying on indirect debugging. That's what people do. ;)
brgds, H-P
More information about the Gcc
mailing list