[LLVMdev] Address space extension

Justin Holewinski justin.holewinski at gmail.com
Wed Aug 7 17:02:20 PDT 2013


On Wed, Aug 7, 2013 at 7:45 PM, Michele Scandale <michele.scandale at gmail.com
> wrote:

> On 08/08/2013 01:36 AM, Justin Holewinski wrote:
>
>> It's not clear to me how this would work for targets that use the same
>> physical address space for multiple language-specific address spaces.
>>   If a target maps both constant and global to address space 42 (for
>> example), how would the optimizer differentiate between these two?
>>
>>
> I think that the proposal of Pete would imply that in the IR the logical
> address spaces are represented with addrspace modifier (3 for constant and
> 1 for global) so the optimizer can distinguish the two and using "address
> space metadata" can derive properties related to this address spaces.
> During the instruction selection the mapping information are used to drive
> the selection phase.
>
> IMO whenever possible both address spaces informations must be maintained.
>

This worries me a bit.  This would introduce language-specific processing
into SelectionDAG.  OpenCL maps address spaces one way, other languages map
them in other ways.  Currently, it is the job of the front-end to map
pointers into the correct address space for the target (hence the address
space map in clang).  With (my understanding of) this proposal, there would
be a pre-defined set of language-specific address spaces that the target
would need to know about. IMO it should be the job of the front-end to do
this mapping.


>
>> On Wed, Aug 7, 2013 at 7:15 PM, Michele Scandale
>> <michele.scandale at gmail.com <mailto:michele.scandale@**gmail.com<michele.scandale at gmail.com>>>
>> wrote:
>>
>>     On 08/08/2013 12:55 AM, Matt Arsenault wrote:
>>
>>         On 08/07/2013 03:52 PM, Michele Scandale wrote:
>>
>>
>>             In the opencl specification is said that the four address
>>             spaces are
>>             disjoint, so my conclusion of non aliasing with the others.
>>
>>         In OpenCL 2.0, you can cast between the generic address space and
>>         global/local/private, so there's also that to consider.
>>
>>     Thanks for correction. My reference was the opencl 1.2 specification.
>>
>>     Considering the case of OpenCL 2.0 IMO we would have another address
>>     space that contains the private, the global and the local address
>>     spaces.
>>
>>
>>     -Michele
>>
>>     ______________________________**___________________
>>     LLVM Developers mailing list
>>     LLVMdev at cs.uiuc.edu <mailto:LLVMdev at cs.uiuc.edu>
>> http://llvm.cs.uiuc.edu
>>     http://lists.cs.uiuc.edu/__**mailman/listinfo/llvmdev<http://lists.cs.uiuc.edu/__mailman/listinfo/llvmdev>
>>
>>     <http://lists.cs.uiuc.edu/**mailman/listinfo/llvmdev<http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev>
>> >
>>
>>
>>
>>
>> --
>>
>> Thanks,
>>
>> Justin Holewinski
>>
>
>


-- 

Thanks,

Justin Holewinski
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130807/78e85609/attachment.html>


More information about the llvm-dev mailing list