Pmode != INT (e.g., SImode)

Michael Eager eager@eagercon.com
Mon Sep 22 14:20:00 GMT 2008


I'm working with a target which has address registers
which are shorter than an integer.  Pmode is defined as
PSImode, not SImode.  There are a limited number of operations
on the address registers, including pre/post-increment/decrement,
but not generalized arithmetic.

I'm running into a number of problems.  Instruction costs
used in loops-ivopts are wildly inflated so loop invariants
are not recognized and it looks like combine doesn't recognize
that it can combine a memory access with an increment into a
single instruction, possibly because of mode differences.

Are there any architectures which have Pmode != INT?

Is this the right way to describe this kind of architecture?

There's a comment in the m32r description:
    The M32R doesn't have full 32 bit pointers, but making this PSImode has
    its own problems (you have to add extendpsisi2 and truncsipsi2).
    Try to avoid it.


-- 
Michael Eager	 eager@eagercon.com
1960 Park Blvd., Palo Alto, CA 94306  650-325-8077



More information about the Gcc mailing list