Skip to content

[Driver][SYCL] Enable adding of default device triple #4175

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 6 commits into from
Aug 1, 2021

Conversation

mdtoguchi
Copy link
Contributor

@mdtoguchi mdtoguchi commented Jul 24, 2021

Add the default device triple (spir64) when we encounter any incoming objects
or libraries that have been previously built with the spir64 target. The use
of -fno-sycl-link-spirv has been added to disable this behavior.

Add the default device triple (spir64) when we encounter any incoming objects
or libraries that have been previously built with the spir64 target.  The use
of -fno-sycl-link-spirv has been added to disable this behavior.

Also add a supplemental option of -fsycl-add-spirv which will add the default
device triple (spir64) if it is not already being used via -fsycl-targets.
Copy link
Contributor

@AGindinson AGindinson left a comment

Choose a reason for hiding this comment

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

LGTM, thanks!

@bader bader merged commit 1342360 into intel:sycl Aug 1, 2021
zahiraam pushed a commit to zahiraam/llvm-1 that referenced this pull request Aug 2, 2021
Add the default device triple (spir64) when we encounter any incoming objects
or libraries that have been previously built with the spir64 target.  The use
of -fno-sycl-link-spirv has been added to disable this behavior.
romanovvlad pushed a commit that referenced this pull request Sep 6, 2021
…4463)

#4175 introduced automatic addition
of the generic spir64 device target when any section of the input
objects had this triple assigned to it. As a result, the actual list
of toolchains started exceeding the user-provided one by 1 item.

After #4239, the above became a
problem. The dispatch of -Xsycl-target-* arguments started happening
earlier in theflow, which broke the following use-case:
```
clang++ -fsycl -fsycl-targets=spir64_gen gen-obj.o
gen-and-spir64-obj.o -Xsycl-target-backend "-device *"
```
A fix for now is to ignore the autodetected spir64 target when
propagating the -Xsycl-target-backend arguments. A permanent solution
would involve a re-design of -Xsycl-target-backend handling so that it
took place only once in the flow, or belating the addition of the
autodetected generic triple into the list of device targets.

Signed-off-by: Artem Gindinson <artem.gindinson@intel.com>
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