Address Space Casting

Hello to everybody,

I am writing this mail to inform you about a patch that will be committed soon
(respect to current reviews).

Here the link to the first mail in llvm-commits:
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20130812/184422.html

This patch introduces a new IR instruction named 'addrspacecast' that will be
used to represent the casting operation between pointers of different address
spaces. This instruction will represent whatever kind of conversion (potentially
both value and size of the pointer) and the semantic of the conversion between a
pair of address spaces is target specific.

With this patch 'bitcast' will be allowed to convert pointers within the same
address space.

Thanks in advance for the attention.

Best regards,
-Michele

Hi,

This patch introduces a new IR instruction named 'addrspacecast' that will be
used to represent the casting operation between pointers of different address
spaces. This instruction will represent whatever kind of conversion (potentially
both value and size of the pointer) and the semantic of the conversion between a
pair of address spaces is target specific.

Assuming I understand the changes, it's probably with being explicit in this note
that "instruction will represent" means "will be the only reliable means of
representing".

Cheers,
Dave

-- IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.

ARM Limited, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, Registered in England & Wales, Company No: 2557590
ARM Holdings plc, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ, Registered in England & Wales, Company No: 2548782

Hi,

> This patch introduces a new IR instruction named 'addrspacecast' that will be
> used to represent the casting operation between pointers of different address
> spaces. This instruction will represent whatever kind of conversion (potentially
> both value and size of the pointer) and the semantic of the conversion between a
> pair of address spaces is target specific.

Assuming I understand the changes, it's probably with being explicit in this note
that "instruction will represent" means "will be the only reliable means of
representing".

Yes, this new instruction will replace bitcast (it will be illegal to convert
pointers between different address spaces) and possibly also ptrtoint+inttoptr
that are now used for *some* address space casting.

-Michele