-
Notifications
You must be signed in to change notification settings - Fork 67
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
Allow any manifestly constant-evaluated expression and conversion in device function #388
base: main
Are you sure you want to change the base?
Allow any manifestly constant-evaluated expression and conversion in device function #388
Conversation
This should address KhronosGroup#267
Look good enough to get us started :). In theory, if recursion is tail-recurvice if you be allowed to (as it will not need a call stack on the GPU) |
You assume that the compiler is smart enough to replace a tail-recursion by a loop. What if |
I agree with Ronan, |
https://reviews.llvm.org/D99517, LLVM have now a pragma that should force it for example. But I see your point that it's "just an optimization". Same as The goal is only to ensure that the generated accelerator backend code should not have recursion; how we achieve this goal can be multiple. |
WG: Better approach is to add sentence about |
In the case of a manifestly constant-evaluated expression or conversion, any code accepted by the C++ standard in this case is also accepted in SYCL device function.
ef19c48
to
bdc8fea
Compare
This has been generalized to address #379 |
bug fix or NEXT or KHR? |
Changing to a draft to wait for SYCL Next. |
Please open MR on GitLab. Thanks! |
I have rebased this PR for SYCL Next as internal https://gitlab.khronos.org/sycl/Specification/-/merge_requests/740 |
Just removing the Draft status to consider this to be closed during next meeting and look at GitLab. |
This should address #267