This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Pmode != INT (e.g., SImode)
- From: Michael Eager <eager at eagercon dot com>
- To: GCC <gcc at gcc dot gnu dot org>
- Date: Sun, 21 Sep 2008 09:49:25 -0700
- Subject: Pmode != INT (e.g., SImode)
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