[LLVMdev] Bitcasts between pointers with different address spaces

Villmow, Micah Micah.Villmow at amd.com
Fri Sep 7 15:24:48 PDT 2012

What about the part about address spaces with pointers of different sizes?


From: Mon Ping Wang [mailto:monping at apple.com]
Sent: Friday, September 07, 2012 3:19 PM
To: Villmow, Micah
Cc: llvmdev at cs.uiuc.edu
Subject: Re: [LLVMdev] Bitcasts between pointers with different address spaces


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.

LLVM Developers mailing list
LLVMdev at cs.uiuc.edu<mailto:LLVMdev at cs.uiuc.edu>         http://llvm.cs.uiuc.edu

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

More information about the llvm-dev mailing list