[PATCH] D55850: [OpenCL] Allow address spaces as method qualifiers
Anastasia Stulova via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Jan 24 07:07:42 PST 2019
Anastasia added a comment.
In D55850#1369008 <https://reviews.llvm.org/D55850#1369008>, @ebevhan wrote:
> I think the code that comes to mind is mostly like in `GetTypeSourceInfoForDeclarator`:
>
> LangAS AS =
> (ASIdx == LangAS::Default ? LangAS::opencl_generic : ASIdx);
>
>
> It's behind an OpenCLCPlusPlus guard so it won't add generic on anything if it's not OpenCL++, but there shouldn't be a reason why the rest of the code in that block won't work for regular C++.
>
> In fact, in most regular C++ this would be an issue, since Default typically _is_ the 'generic' address space there.
Yes, `opencl_generic` is something quite specific to OpenCL I feel. I am not sure we can generalize it to C++. I would quite like to understand this better. However, I think we could potentially implement `opencl_generic` using `Default` if only earlier OpenCL implementations wouldn't use `Default` for `opencl_private`. And because everything was built on top of this assumption it's now a big and a scary refactoring change to make. However, I think we can align different language modes better if `opencl_generic` could be implemented as `Default`. I might look into this at some point.
Repository:
rC Clang
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D55850/new/
https://reviews.llvm.org/D55850
More information about the cfe-commits
mailing list