[LLVMdev] C embedded extensions and LLVM

Christopher Lamb
Wed, 21 Nov 2007 05:47:27 -0000

On Nov 11, 2007, at 9:52 AM, Chris Lattner wrote:

> Unlike alignment and volatility, I think that the address space
> qualifier should be represented explicitly in the type system.  The
> reason for this is primarily that pointers to different address
> spaces are really very different sorts of beasties: for example
> they can be codegen'd to have different sizes.  Any property that
> affects how the value is stored in registers needs to be in the
> type instead of on the load/store instruction.  Also, unlike
> volatile, it is not common to cast a pointer between two different
> address spaces.
>
> The good thing about this is that I think it will make it
> substantially easier to update the various llvm optimizations if
> you do this.  The meat of project boils down to adding a new
> address space qualifier field to PointerType, making sure
> PointerType takes this field into account when it is being uniqued,
> and adding the address space qualifier to things like global variable.

Any suggestions on type syntax in .ll files for address spaced pointers?
I was thinking postfix of the type name, but I'm up in the air about
what a good separator would be. Simply whitespace?

i32$27*

i32 27*

i32(27)*

i32{27}*

i32 at 27*

--
Christopher Lamb



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