AlexVlx wrote: > I could see only applying these rules to the target specific (i.e. > non-language AS's) so `AS(3) *` would convert to `*` but not `__shared__ *`. > The above example doesn't work because we consider `cuda_shared` and `AS(3)` > distinct even though they lower to the same thing for the target.
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. 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