Replies: 4 comments 11 replies
-
We had a discussion about that here: #7595 (comment)
However, I agree that we have this mode, which effectively doesn't support |
Beta Was this translation helpful? Give feedback.
-
Yeah my understanding was we knew the option is not SYCL compliant, but we can get some some big compile-time gains in some workloads so we added support. I would be happy to implement a change where we don't define |
Beta Was this translation helpful? Give feedback.
-
I think it's better to give an error if the source file has
With my proposal, the user gets an error when compiling "a.cpp". If we simply undefine |
Beta Was this translation helpful? Give feedback.
-
@bader @gmlueck I did some initial investigation for this and it seems a little more complicated than we thought.
Do you guys have and good solutions? One idea I had was to change the preprocessor to define Did I miss an obvious solution? |
Beta Was this translation helpful? Give feedback.
-
@sarnex, I'm trying to build SYCL-CTS with
-fno-sycl-rdc
option and hit a problem.SYCL-CTS uses SYCL_EXTERNAL macro in the tests. This is an optional feature and to check whether implementation supports it CTS uses following check:
This is aligned with the SYCL specification:
f884993 keeps definition of
SYCL_EXTERNAL
macro, but emits a new error message for usages.What do you think about removing the definition of
SYCL_EXTERNAL
macro in-fno-sycl-rdc
mode? NOTE: this will impact the diagnostics. There still be an error message, but probably less intuitive than exiting diagnostics.Alternative option would be to change the way users detect whether implementation supports external device function definitions. C++ Feature Test might be an option, but it's C++20 feature and I'm not sure if we can adopt it for SYCL-2020. @gmlueck, FYI.
Beta Was this translation helpful? Give feedback.
All reactions