public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* Help with reload
@ 2010-06-22 18:47 Revital1 Eres
  2010-06-22 18:57 ` Jeff Law
  0 siblings, 1 reply; 2+ messages in thread
From: Revital1 Eres @ 2010-06-22 18:47 UTC (permalink / raw)
  To: gcc


Hello,

I have a question regarding code generation for a new target I'm working
on.
I am using GCC 4.6.

In reload pass  the following first instruction is replaced with the
second one after spilling reg 182 to the stack.  The problem is that
the generated new instruction does not have a valid address format and
I'm not sure why it was considered as a valid replacement.
Any help on how to resolve this is appreciated.

(insn 282 150 151 13 jctrans.c:109 (set (reg:SI 12 r12)
        (mem/s:SI (plus:SI (reg/v/f:SI 182 [ incomp ])
                (const_int 8 [0x8])) [6 *incomp_85 S4 A32])) -1 (nil))

(insn 282 150 151 13 jctrans.c:109 (set (reg:SI 12 r12)
        (mem/s:SI (plus:SI (mem/c:SI (plus:SI (reg/f:SI 63 r63)
                        (const_int -12 [0xfffffff4])) [56 %sfp+-12 S4 A32])
                (const_int 8 [0x8])) [6 *incomp_85 S4 A32])) -1 (nil))

Thanks,
Revital

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Help with reload
  2010-06-22 18:47 Help with reload Revital1 Eres
@ 2010-06-22 18:57 ` Jeff Law
  0 siblings, 0 replies; 2+ messages in thread
From: Jeff Law @ 2010-06-22 18:57 UTC (permalink / raw)
  To: Revital1 Eres; +Cc: gcc

On 06/22/10 08:52, Revital1 Eres wrote:
> Hello,
>
> I have a question regarding code generation for a new target I'm working
> on.
> I am using GCC 4.6.
>
> In reload pass  the following first instruction is replaced with the
> second one after spilling reg 182 to the stack.  The problem is that
> the generated new instruction does not have a valid address format and
> I'm not sure why it was considered as a valid replacement.
> Any help on how to resolve this is appreciated.
>
> (insn 282 150 151 13 jctrans.c:109 (set (reg:SI 12 r12)
>          (mem/s:SI (plus:SI (reg/v/f:SI 182 [ incomp ])
>                  (const_int 8 [0x8])) [6 *incomp_85 S4 A32])) -1 (nil))
>
> (insn 282 150 151 13 jctrans.c:109 (set (reg:SI 12 r12)
>          (mem/s:SI (plus:SI (mem/c:SI (plus:SI (reg/f:SI 63 r63)
>                          (const_int -12 [0xfffffff4])) [56 %sfp+-12 S4 A32])
>                  (const_int 8 [0x8])) [6 *incomp_85 S4 A32])) -1 (nil))
>    

What's happening is pseudo 182 is not getting a hard reg, and is thus on 
the stack (see reg_equiv_mem).  Reload will substitute the MEM for the 
unassigned pseudo.

Check your GO_IF_LEGITIMATE_ADDRESS.  You might also look at your 
REGNO_OK_FOR_BASE_P and whether or not it handles a strict & non-strict 
variant properly.

Jeff

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2010-06-22 17:27 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-06-22 18:47 Help with reload Revital1 Eres
2010-06-22 18:57 ` Jeff Law

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).