-
Notifications
You must be signed in to change notification settings - Fork 738
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ICE when using libcxx #186
Comments
Although we can just rename the variable in libcxx, I wonder if we really need these |
I think ComputeCpp does or used to do something similar to what you suggest (perhaps for other reasons): https://developer.codeplay.com/products/computecpp/ce/api-reference/base_8h Maybe @Ruyk or @Naghasan will be able to elaborate on it or correct me though if my assumption is wrong |
Another option is to use more OpenCL specific keywords (e.g. |
They need to be exposed somehow, as SYCL 1.2.1 defines interop type like I think the main problem here is that
As @bader said, this sets a target address space, so its is actually different from the language address space.
We expose the language address spaces as an attribute, which limits the exposure.
Maybe @AnastasiaStulova has an opinion on this |
We are not required to expose OpenCL address spaces using keywords defined the OpenCL spec. The option I mentioned tries to expose OpenCL concept using different keyword, although it might not solve the fundamental problem. |
I think this is related to my earlier question about your overall approach to address spaces (#59 (comment)) There are obviously a multiple options available and whichever you select will affect the rest of your compilation flow I believe. In C++ for OpenCL upstream we are using language address spaces just like we used in OpenCL C. They are enabled by both "__" prefixed spelling and without. However, it is still work in progress and it heavily relies on generic address space feature that I believe is not available in SYCL 1.2... If you are using |
In triSYCL we use |
When using libcxx and a simple example (unrelated to SYCL), then the compiler will ICE. This appears to be due to the use of
__global
in libcxx:llvm/libcxx/include/__locale
Line 177 in eacc876
Example
Stack Trace
When invoked as
./bin/clang++ -std=c++11 -stdlib=libc++ repro.cpp -o repro
with a build of eacc876:The text was updated successfully, but these errors were encountered: