[SYCL] Assert for kernel having a name in runtime vs compile time (#20060)
Follow-up for https://github.com/intel/llvm/pull/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-time
`static_assert` into a run-time `assert` unless we can guarantee that
SYCL kernel information is available.
---------
Co-authored-by: Sergey Semenov <sergey.semenov@intel.com>