To my knowledge, the AdaptiveCpp-specific workaround in dpl_shim.h is no longer necessary as the linking issue was fixed some time ago.
Additionally, this workaround prevents a new optmization in AdaptiveCpp stdpar from taking place: AdaptiveCpp stdpar can now emit automatic data prefetches. But this only works, if the data is managed by the stdpar runtime, which tracks pointers it knows. If sycl::malloc_shared is used directly, the stdpar optimizations do not recognize the pointer and won't apply the optimization.
(the reasoning being that if someone calls SYCL functionality directly, they might want to exert more control and emit prefetches or mem_advise operations by themselves).
Other projects which also use this header like cloverleaf are also affected. Will create a PR there too.
To my knowledge, the AdaptiveCpp-specific workaround in
dpl_shim.h
is no longer necessary as the linking issue was fixed some time ago.Additionally, this workaround prevents a new optmization in AdaptiveCpp stdpar from taking place: AdaptiveCpp stdpar can now emit automatic data prefetches. But this only works, if the data is managed by the stdpar runtime, which tracks pointers it knows. If sycl::malloc_shared is used directly, the stdpar optimizations do not recognize the pointer and won't apply the optimization. (the reasoning being that if someone calls SYCL functionality directly, they might want to exert more control and emit prefetches or mem_advise operations by themselves).
Other projects which also use this header like cloverleaf are also affected. Will create a PR there too.