[LLVMdev] Bitcasts between pointers with different address spaces

Mon Ping Wang monping at apple.com
Fri Sep 7 15:18:59 PDT 2012


I don't think we should make bit casts between pointers with different address spaces illegal.  Address spaces are not required to be disjoint.  In the N1169 spec, it says 
   A non-null pointer into an address space A can be cast to a pointer into another address space B, but such a cast is undefined if the source pointer does not point to a location in B. 

If the address spaces overlap, one should be able to bticast between them. 

-- Mon Ping

On Sep 7, 2012, at 10:47 AM, Villmow, Micah wrote:

> Should LLVM make bitcasts between pointers with different address spaces illegal?
> This will require a small clarification in the documentation and an assertion check added to the verifier, but I think this would be a good approach.
> The reason being is that in different address spaces, pointers are not always the same size.
> This could be limited to make it legal only if the size of the pointer in source and destination address spaces are equivalent, but that seems like more of a work-around than a proper solution.
> Ideas?
> Micah
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20120907/c3f65e98/attachment.html>

More information about the llvm-dev mailing list