This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: pointer math vs named address spaces


On 12/04/2014 01:54 AM, Richard Biener wrote:
> Apart from what Joseph already said using 'sizetype' in the middle-end
> for sizes and offsets is really really deep-rooted into the compiler.
> What you see above is one aspect - POINTER_PLUS_EXPR offsets
> are forced to have sizetype type.  But you'd also see it in the inability
> to create larger than sizetype objects (DECL_SIZE_UNITs type).
> 
> So for the middle-end part I'd suggest you make sure that sizetype
> covers the largest pointer-mode precision your target offers.  That of course
> doesn't fix what Joseph pointed out - that the user will still run into issues
> when writing C programs or when using the C runtime (I suppose TR 18037
> doesn't specify alternate memcpy for different address spaces?)

I'd prefer it if the middle-end were more flexible about what types it allows
for the offset of POINTER_PLUS_EXPR.  E.g. any integer type of an appropriate mode.

I'd expect the right answer is to match targetm.addr_space.address_mode rather
than .pointer_mode, so that any extension, if necessary, is already exposed to
the optimizers.  But I suppose it's also possible that might pessimize things
for these weird targets...


r~


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]