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
{{ message }}
Repository navigation
FunctionPropertyMetaInfo and PropertyMetaInfo are duplicated for every property #22729
Commit bba4f4d (#21738) introduced FunctionPropertyMetaInfo<T> as a separate parallel trait to the existing PropertyMetaInfo<T>, used by SYCL_EXT_ONEAPI_FUNCTION_PROPERTY on the lightweight free-function path. However, for every property that needs to work on both the property-list path and the free-function path, authors are now required to write two structurally identical specializations with the same name and value members.
Currently duplicated in free_function_kernel_properties.hpp:
We were trying to reduce compile time of the "free_function_kernel_properties.hpp" header. That header used to pull in sycl/ext/oneapi/properties/properties.hpp. That is an expensive header in terms of compilation time. So any TU that just wanted to annotate a free-function kernel (work_group_size, nd_range_kernel) dragged in the full properties<...> list template + aspects.hpp + forward_progress.hpp. The lightweight approach skips that duplicates 'PropertyMetaInfo` all that.
I believe though, I should not have introduced a new MetaInfo I could had re-used the existing one without any additional compilation cost. I will need to check compile time about this, but I believe you are right.
Activity
sarnex commentedon Jul 22, 2026
@koparasy Can you please provide some analysis? Thanks
koparasy commentedon Jul 22, 2026
We were trying to reduce compile time of the "free_function_kernel_properties.hpp" header. That header used to pull in sycl/ext/oneapi/properties/properties.hpp. That is an expensive header in terms of compilation time. So any TU that just wanted to annotate a free-function kernel (work_group_size, nd_range_kernel) dragged in the full properties<...> list template + aspects.hpp + forward_progress.hpp. The lightweight approach skips that duplicates 'PropertyMetaInfo` all that.
I believe though, I should not have introduced a new MetaInfo I could had re-used the existing one without any additional compilation cost. I will need to check compile time about this, but I believe you are right.
sarnex commentedon Jul 22, 2026
Thanks, looking forward to your results
[SYCL] Remove duplicate FunctionPropertyMetaInfo trait (#22741)