You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[SYCL] Change unique-stable-name to just use the lambda's mangled name. (#4457)
Currently, whether a lambda is used in a kernel is used to determine the
result of `__builtin_sycl_unique_stable_name`.This leads to a sitaution
where using a lambda in a kernel that is lexically higher than an
existing kernel will change the result of the builtin, causing a build
failure.
This patch replaces this with JUST the lambda's itanium-mangled name.
This has the limitation in that it is not stable/unique in light of
certain macro-expansions that differ between device and host, however
wording is being put into the SYCL standard to make those cases UB.
This DOES have one bit of fallout, which is to make sure that the name
on a Windows host does NOT have its lambda mangling 'number', which we
are doing by storing the value in the Device Lamba Mangling Number
(previously done for CUDA only for similar reasons!).
Additionally, this patch removes the 'mark_kernel_name' builtin, as this
results in it being a no-op.
0 commit comments