Skip to content

[SYCL] Part2: Split info_desc.hpp into per-trait-class headers#22273

Open
koparasy wants to merge 2 commits into
intel:syclfrom
koparasy:sycl-info-traits-PR-B
Open

[SYCL] Part2: Split info_desc.hpp into per-trait-class headers#22273
koparasy wants to merge 2 commits into
intel:syclfrom
koparasy:sycl-info-traits-PR-B

Conversation

@koparasy

@koparasy koparasy commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Split <sycl/info/info_desc.hpp> (~740 lines) into 6 per-trait-class headers under sycl/include/sycl/info/:

  • platform.hpp — 5 platform traits
  • context.hpp — 7 context traits
  • device.hppdevice_type / partition_property / partition_affinity_domain / local_mem_type / fp_config / global_mem_cache_type / execution_capability enums + ~95 device traits
  • queue.hpp — 3 queue traits
  • kernel.hpp — 5 kernel + 10 kernel_device_specific traits
  • event.hppevent_command_status enum + 2 event traits + 3 event_profiling traits

info_desc.hpp becomes a thin umbrella that includes all six plus the ext-trait chain (matrix, max_work_groups, forward_progress, device_architecture, bindless_image_info, composite_device, kernel_queue_info, ext::oneapi::info::device, ext::intel::info::{device, kernel}, ext::codeplay::experimental::max_registers_query). Existing consumers continue to work unchanged.

Prereq for trimming info_desc.hpp from internal consumers (next PR). Per-class consumers of info::queue / info::context / etc. will be able to skip info::device's ~95 trait structs and the matrix / device-architecture / forward-progress include chain.

This PR delivers no measurable compile-time win on its own (the umbrella still pulls everything); it sets up the structural change that will be performed by the last PR as described in #22182

Split `<sycl/info/info_desc.hpp>` (~740 lines) into 6 per-trait-class
headers under `sycl/include/sycl/info/`:

* `platform.hpp` — 5 platform traits
* `context.hpp` — 7 context traits
* `device.hpp` — `device_type` / `partition_property` /
  `partition_affinity_domain` / `local_mem_type` / `fp_config` /
  `global_mem_cache_type` / `execution_capability` enums + ~95 device traits
* `queue.hpp` — 3 queue traits
* `kernel.hpp` — 5 kernel + 10 kernel_device_specific traits
* `event.hpp` — `event_command_status` enum + 2 event traits + 3
  event_profiling traits

`info_desc.hpp` becomes a thin umbrella that includes all six plus the
ext-trait chain (matrix, max_work_groups, forward_progress,
device_architecture, bindless_image_info, composite_device,
kernel_queue_info, ext::oneapi::info::device, ext::intel::info::{device,
kernel}, ext::codeplay::experimental::max_registers_query). Existing
consumers continue to work unchanged.

Prereq for trimming `info_desc.hpp` from internal consumers (next PR).
Per-class consumers of `info::queue` / `info::context` / etc. will be
able to skip `info::device`'s ~95 trait structs and the matrix /
device-architecture / forward-progress include chain.

This PR delivers no measurable compile-time win on its own (the
umbrella still pulls everything); it sets up the structural change.
@koparasy koparasy requested a review from a team as a code owner June 9, 2026 17:44
@koparasy koparasy requested a review from againull June 9, 2026 17:44
@sys-ce-bb

Copy link
Copy Markdown
Contributor

@intel/llvm-gatekeepers please consider merging

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants