[SYCL] Assert for kernel having a name in runtime vs compile time #20060
+16
−19
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Follow-up for #19990
Downstream CI uncovered another scenario where
detail::CompileTimeKernelInfo<KernelName>.Name
might be empty (other than non-SYCL compilation in some of the [unit]tests). That happens when compiling the same TU using multiple offload models (e.g., both SYCL and OMP) and the device compilation for non-SYCL model doesn't use SYCL integration header to provide kernel information.Ideally, we should be just guarding
static_assert
s with some#if __SYCL_WHATEVER
but we don't set any SYCL-related macro when using 3rd party host compilers. Deal with that by turning compile-timestatic_assert
into a run-timeassert
unless we can guarantee that SYCL kernel information is available.