On 09/03/2013 07:34 PM, Erik Schnetter wrote: > Yes, R600 defines a "good" address space map. > > My patch currently overrides the target-specific address space maps... > > Instead of doing so, I think the right approach is to define a default > address space map that already does the right thing for OpenCL and CUDA. This > makes sense since address spaces seem currently defined for OpenCL and CUDA > only, i.e. they won't be used by standard C/C++. The targets can then > override the default (which they already do).
Doing this would imply that every backend should be able to handle these fake address space also if they are not physically supported by the target architecture. I totally disagree with this: the target address space map is used to anticipate in the frontend the knowledge of physical address spaces supported by the architecture, in order to map entities in the IR within the correct physical address space (the semantic of addrspace modifier is clear). I am also discussing in llvmdev about a proper way to represent source level address space information in the IR so to improve optimization opportunities: please see the end of http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20130819/086907.html for a quick description and references to the discussion. Thanks for the attention. -Michele _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
