Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[SYCL] The sycl_kernel_entry_point attribute. #111389

Merged
merged 9 commits into from
Nov 5, 2024

Commits on Oct 4, 2024

  1. [SYCL] The sycl_kernel_entry_point attribute.

    The `sycl_kernel_entry_point` attribute is used to declare a function that
    defines a pattern for an offload kernel to be emitted. The attribute requires
    a single type argument that specifies the type used as a SYCL kernel name as
    described in section 5.2, "Naming of kernels", of the SYCL 2020 specification.
    
    Properties of the offload kernel are collected when a function declared with
    the `sycl_kernel_entry_point` attribute is parsed or instantiated. These
    properties, such as the kernel name type, are stored in the AST context where
    they are (or will be) used for diagnostic purposes and to facilitate reflection
    to a SYCL run-time library. These properties are not serialized with the AST
    but are recreated upon deserialization.
    
    The `sycl_kernel_entry_point` attribute is intended to replace the existing
    `sycl_kernel` attribute which is intended to be deprecated in a future change
    and removed following an appropriate deprecation period. The new attribute
    differs in that it is enabled for both SYCL host and device compilation, may
    be used with non-template functions, explicitly indicates the type used as
    the kernel name type, and will impact AST generation.
    
    This change adds the basic infrastructure for the new attribute. Future
    changes will add diagnostics and new AST support that will be used to drive
    generation of the corresponding offload kernel.
    tahonermann committed Oct 4, 2024
    Configuration menu
    Copy the full SHA
    3c4a2b8 View commit details
    Browse the repository at this point in the history

Commits on Oct 7, 2024

  1. Configuration menu
    Copy the full SHA
    870a49e View commit details
    Browse the repository at this point in the history

Commits on Oct 12, 2024

  1. Configuration menu
    Copy the full SHA
    0b57d81 View commit details
    Browse the repository at this point in the history

Commits on Oct 27, 2024

  1. Configuration menu
    Copy the full SHA
    0ad8348 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c2f24ed View commit details
    Browse the repository at this point in the history

Commits on Oct 30, 2024

  1. Round two of addressing code review feedback from Erich Keane.

    Changes include:
    - Removal of an unneeded inclusion of <string>.
    - An update to the `sycl_kernel_entry_point` attribute documentation.
    - Updates to the AST test to validate next line proximity where applicable.
    tahonermann committed Oct 30, 2024
    Configuration menu
    Copy the full SHA
    b9c9109 View commit details
    Browse the repository at this point in the history

Commits on Nov 1, 2024

  1. Round three of addressing code review feedback from Erich Keane.

    Changes include:
    - Use `isTemplated()` instead of `isDependentContext()` since the latter doesn't
      necessarily handle templated friend functions.
    tahonermann committed Nov 1, 2024
    Configuration menu
    Copy the full SHA
    732309b View commit details
    Browse the repository at this point in the history
  2. Round four of addressing code review feedback from Erich Keane.

    Changes include:
    - Replaced a use of `llvm::report_fatal_error()` with `assert()`.
    - Modified `registerSYCLEntryPointFunction()` to silently skip registration
      of invalid or dependent function declarations.
    tahonermann committed Nov 1, 2024
    Configuration menu
    Copy the full SHA
    8a51f1c View commit details
    Browse the repository at this point in the history

Commits on Nov 4, 2024

  1. Round five of addressing code review feedback from Erich Keane.

    Changes include:
    - Minor refactoring to eliminate a branch that only contained an assertion.
    tahonermann committed Nov 4, 2024
    Configuration menu
    Copy the full SHA
    4ecf133 View commit details
    Browse the repository at this point in the history