[mips patch RFA] handle trap_if with DI-mode arguments.

Richard Sandiford rsandifo@redhat.com
Wed Aug 13 22:11:00 GMT 2003


cgd@broadcom.com writes:
> So, the 'dJ' thing is actually an goodness-generated-code thing?
> (i.e., otherwise, the compiler won't generate $0 for constant integer
> 0, because it doesn't know to convert the constant integer 0 to $0
> *before* checking the constraint?)

Right.  We'd accept zero up to reload, but without the 'J', it would
then get forced into a writable register.

> And the nonmemory_operand -> arith_operand change should (possibly
> ever so slightly) help the performance of the compiler, one would
> hope?

Yeah.  mips_gen_conditional_trap makes sure that the second operand
is within range.  But with nonmemory_operand, combine might turn:

    r1 = 0x12345
    trap_if r2 = r1

into:

    trap_if r2 = 0x12345

That's prrety pointless: we're going to need to use a temporary
register, so we might as well keep the first form (and expose
r1 = 0x12345 to the first scheduling pass, for example).

Richard



More information about the Gcc-patches mailing list