Skip to content

Made accessor_properties a ONEAPI extension and added the buffer_location extension #2439

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

Merged
merged 2 commits into from
Sep 8, 2020
Merged

Conversation

GarveyJoe
Copy link
Contributor

As part of this change, the new functionality was extracted from property_list into accessor_property_list in the ONEAPI namespace. Another significant change was that the class that represents an instance of a property is now implementation-defined and only accessed through a global variable.

@GarveyJoe GarveyJoe requested a review from a team as a code owner September 8, 2020 15:20
@bader bader merged commit f90614c into intel:sycl Sep 8, 2020
```c++
namespace sycl {
...
namespace INTEL {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@GarveyJoe have you considered swapping INTEL and property namespaces in the nesting?
The thing I find confusing in the namespace nesting, is that property namespace is put inside of INTEL (aka hardware extension) namespace, but we will have some other properties, that will have not only FPGA usage, hence these properties shall be placed in ONEAPI (aka language extensions) namespace.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was trying to be consistent with the spirit of the rules from the SYCL 2020 provisional spec which indicates that vendor extensions should be in their own namespace nested in the sycl namespace. @gmlueck is this the recommended way to nest these namespaces?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That makes sense, Thanks.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you are asking whether this extension should be in the INTEL vs ONEAPI namespace, I think @jbrodman is the right person to answer.

Regarding the order of the namespaces sycl::INTEL::property vs. sycl::property::INTEL, I think the first is preferable (which is what you have).

jsji pushed a commit that referenced this pull request Mar 26, 2024
…2439)

According to the SPIR-V specification:

> All `OpVariable` instructions in a function must be in the first
block in the function. These instructions, together with any
intermixed `OpLine` and `OpNoLine` instructions, must be the first
instructions in that block. (Note the validation rules prevent `OpPhi`
instructions in the first block of a function.)

As forcing `OpVariable` insertion at the beginning of the first block
might be too invasive by changing original semantics, inserting them
at the beginning of the argument block would preserve semantics while
always producing valid SPIR-V code.

`llvm.memmove` lowering has been fixed to always generate valid SPIR-V
code by inserting needed `alloca` instructions at the beginning of the
function's entry block.

Signed-off-by: Victor Perez <[email protected]>

Original commit:
KhronosGroup/SPIRV-LLVM-Translator@5f965be1a9a88c6
Chenyang-L pushed a commit that referenced this pull request Feb 18, 2025
[benchmarks] add explicit benchmark groups
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.

5 participants