-
Notifications
You must be signed in to change notification settings - Fork 798
[SYCL][NativeCPU] Limit generic ABI to builtins. #19564
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
base: sycl
Are you sure you want to change the base?
Conversation
In intel#17408, NativeCPU became a target in order to be able to pick the ABI for its own libclc functions consistently, without having targets affect this. This was, and is, required to be able to use libclc independent of target and target options. However, it breaks some calls into libc. Therefore, this PR allows the calling convention to be explicitly specified, ensures it is specified for any libclc functions, and ensures it is not specified for any libc functions. Fixes the SYCL-E2E acos, cmath, and exp-std-complex tests.
This needs compiler tests, |
Just a heads up that after today I will be on holiday. I am not expecting reviews to be done today, that is fine, but it will be a little while before I'll be able to respond to any issues or concerns. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
FE changes LGTM
// Note: These signatures for parallel_for_work_item are intentionally | ||
// non-conforming. The spec says this should take const WorkItemFunctionT &, | ||
// but we take it by value, and rely on passing by value being done as passing | ||
// a copy by reference (ptr byval) to ensure that the special handling in | ||
// SYCLLowerWGScopePass to mutate the passed functor object works. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hierarchical parallelism is deprecated in SYCL 2020, so nobody cares, I guess.
In #17408, NativeCPU became a target in order to be able to pick the ABI for its own libclc functions consistently, without having targets affect this. This was, and is, required to be able to use libclc independent of target and target options. However, it breaks some calls into libc. Therefore, this PR allows the calling convention to be explicitly specified, ensures it is specified for any libclc functions, and ensures it is not specified for any libc functions.
Fixes the SYCL-E2E acos, cmath, and exp-std-complex tests.