-
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
[SYCL] Fix crash caused by functor without call operator as Kernel #7104
Conversation
ping @intel/dpcpp-cfe-reviewers |
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.
Can you make the changes in c779855 a separate NFC PR? Not needed as part of this one.
Failures in |
Co-authored-by: premanandrao <premanand.m.rao@intel.com>
Co-authored-by: premanandrao <premanand.m.rao@intel.com>
@intel/llvm-gatekeepers Hi, this is ready to be merged. Thanks! |
@srividya-sundaram - CI seems to fail in SemaSYCL/undefined-functor.cpp. |
@steffenlarsen Thanks for pointing out. I have fixed the failures. Note to the reviewers: |
What was the nature of the failure? |
The test was throwing this error for the undefined functor case: |
ping @intel/llvm-gatekeepers |
OCL x64 testing failed on drivers download attempt. Looks like some sporadic network issue. |
…ernel (intel#7104)" This reverts commit 490ee55.
…nctors without call operators (#8047) This PR reverts the support for templated call operators in functors and functors without call operators which were introduced in #7104 and #7970 We found a regression internally with #7104 that #7970 attempted to fix. A subsequent review of #7970 internally, lead to identifying some pre-existing caveats with regards to supporting templated call operators in functor, supporting cases where there are multiple call operators in functor and making sure the right instantiated version is selected etc. In order to better address the pre-existing issues as well as gaps in #7970 , it was decided to revert the above two PRs.
When a named function object without a call operator defined is used as a kernel, the compiler causes a
crash
.With the changes in this PR, a compiler
error
is thrown when a lambda or function object without a call operator defined is used as a kernel.