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