DJ Delorie <[EMAIL PROTECTED]> writes:

> I'm looking at an insn that has these reloads [attached].  Note that
> reload2 is not needed IF the reload 1 gets resolved.  I haven't
> figured out yet how to tell gcc this.  Suggestions?  The fb+0
> construct is something I create to recognize patterns that I've set up
> during legitimize_reload_address; eventually fb gets copied to a0.
> 
> This is, of course, for m32c.
> 
> Reload 0: reload_in (HI) = (reg/f:HI 0 r0 [1956])
>       A_REGS, RELOAD_FOR_OPERAND_ADDRESS (opnum = 0)
>       reload_in_reg: (reg/f:HI 0 r0 [1956])
> Reload 1: reload_in (HI) = (plus:HI (reg/f:HI 7 fb)
>                                   (const_int 0))
>       A_REGS, RELOAD_FOR_OPERAND_ADDRESS (opnum = 1)
>       reload_in_reg: (plus:HI (reg/f:HI 7 fb)
>                               (const_int 0))
> Reload 2: reload_in (HI) = (mem/c:HI (plus:HI (plus:HI (reg/f:HI 7 fb)
>                                                      (const_int 0))
>                                             (const_int -170)) [246 p+0 S2 A8])
>       A_REGS, RELOAD_FOR_OPERAND_ADDRESS (opnum = 1), can't combine
>       reload_in_reg: (reg/v/f:HI 1722 [ p ])

How could reload 1 not get resolved?

When you are looking at reload 2 in some predicate, can you simply
assume that reload 1 will get resolved, and report that the mem
matches the predicate?

Ian

Reply via email to