jhuber6 wrote:

> Which is the gist of what I am saying: linguistic constructs carry semantics 
> (meaning), we should not work back from their disembodied lowering into a 
> target specific quantity to generalise the latter into a linguistic construct 
> beyond the initial one. CUDA made language design choices, it is an AS 
> agnostic language, cuda_shared doesn't work like an address space in the OCL 
> / Clang sense, even though it ends up lowered through the same mechanism / 
> leads to a numbered AS being CodeGen-ed. TL;DR: this doesn't work by design, 
> not by accident = those ARE distinct from a language perspective.

I've updated this to make the language AS's and target AS's so now this won't 
conflict at all. This patch just uses target information to ascribe some 
semantic meaning to the target AS's, which I believe is legitimate. The text 
that @AaronBallman provided says the following.

>If a pointer into address space A is assigned to a pointer into a different 
>address space B, a
constraint requires that A be a subset of B. (As usual, this constraint can be 
circumvented by a cast
of the source pointer before the assignment.)
... 
For every pair of distinct address spaces A and B, it is implementation-defined 
whether A
encloses B.
..
If one address space encloses another, the two address spaces overlap, and 
their combined
address space is the one that encloses the other. If two address spaces do not 
overlap, they are

My interpretation of this is that it's fine to have target specific behavior 
for address spaces, and that it seems okay with `B = A` if we say they're 
subsets (which they are for this target).
disjoint, and no location (address) within one is also within the other. (Thus 
if two address spaces
share a location, one address space must enclose the other.)

https://github.com/llvm/llvm-project/pull/115777
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to