Michael Eager <[EMAIL PROTECTED]> writes: > I'm running into a situation where reload is replacing > a pseudo-register in an insn with a memory reference. > The problem is that this is happening in a memory ref. > > The initial pattern is something like > > (set (reg/v:SI 1) (mem/s:SI (plus:SI > (reg/f:SI 30) > (const_int 4)) )) > > After reload, this becomes > > (set (reg/v:SI 1) (mem/s:SI (plus:SI > (mem/f/c:SI (plus:SI (reg/f:SI 19) (const_int -2)) > (const_int 4)) > > The reg-equiv for pseudo-reg 30 is the mem ref in the middle. > > Any idea about why this might be happening, or, better, > how to get reload to generate a load from reg-equiv to a reg > rather than replace the pseudo-reg with the reg-equiv?
This is a normal occurrence during the course of reload. If this escapes from reload, it suggests that your GO_IF_LEGITIMATE_ADDRESS macro is incorrectly accepting a MEM as a memory address, or that your insn operand predicate is somehow accepting it. Ian