-
Notifications
You must be signed in to change notification settings - Fork 790
[SYCL][Driver] Emit unused argument warning for -fno-libspirv #19135
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
Conversation
717300b
to
df0bc40
Compare
eb713e6
to
8badf3c
Compare
df0bc40
to
491016c
Compare
8badf3c
to
db2c9d8
Compare
491016c
to
c1b5a53
Compare
db2c9d8
to
eac8168
Compare
) <!-- start git-machete generated --> # Based on PR #18956 ## Tree of downstream PRs as of 2025-06-25 * **PR #19130 (THIS ONE)** * PR #19131 * PR #19134 * PR #19135 * PR #19136 <!-- end git-machete generated --> In the next commits I'd like to refactor and fix SYCL libspirv linking. This adds a few tests to cover the current behavior. Some of it is buggy, and not consistent between NVPTX and AMDGPU, it will be improved in the next commits.
eac8168
to
11e238c
Compare
c1b5a53
to
63704bf
Compare
11e238c
to
d5440ef
Compare
63704bf
to
c0793c1
Compare
d5440ef
to
e5c3890
Compare
<!-- start git-machete generated --> # Based on PR #19130 ## Chain of upstream PRs & tree of downstream PRs as of 2025-06-25 * PR #19130 * **PR #19131 (THIS ONE)** * PR #19134 * PR #19135 * PR #19136 <!-- end git-machete generated --> Move the logic for finding and linking libspirv into SYCLInstallationDetector. This code was basically duplicated between the CUDA and HIP toolchains, and was also present in the Driver sources. This is NFC, aside from the fact that the code in the HIP toolchain lacked the special handling for the `-###` driver option present in the other two places.
... instead of the resource directory. This matches the behaviour of SYCL device libraries. The resource directory has nothing to do with libspirv, and it might be changed by the `-resource-dir` option, which would lead us to not find it.
Previously the `-fno-libspirv` option was not warned about when there was no SYCL compilation. Remove the explicit target check for the targets that support `-fno-libspirv` and instead rely on each target to emit appropriate warnings when its used. This commit slightly degrades diagnostic quality, from "ignoring '-fno-sycl-libspirv' option as it is not currently supported for target" to "argument unused during compilation: '-fno-sycl-libspirv'" , but I believe this is acceptable as it allows to remove the list of targets that support the option from the driver. Additionally, now if the user mixes targets that support and do not support `-fno-libspirv` in the same compilation, they will not get warnings that are not actionable.
c0793c1
to
3339a77
Compare
e5c3890
to
0bb5db5
Compare
<!-- start git-machete generated --> # Based on PR #19131 ## Chain of upstream PRs & tree of downstream PRs as of 2025-06-25 * PR #19130 * PR #19131 * **PR #19134 (THIS ONE)** * PR #19135 * PR #19136 <!-- end git-machete generated --> ... instead of the resource directory. This matches the behaviour of SYCL device libraries. The resource directory has nothing to do with libspirv, and it might be changed by the `-resource-dir` option, which would lead us to not find it.
@intel/llvm-gatekeepers this should be ready to merge. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What did you do to skip CI completely here?
Oops sorry, that was not intentional.
Yes, that's it. CI only runs on the sycl branch, but base branch change does not trigger a workflow. My usual workaround is to close and re-open, which does. Doing that now. |
@aelovikov-intel, this sounds like something we need to fix in the GHA workflow. |
Patches welcome :)
What I do is go to the source branch and "sync" it to merge latest destination branch to it. In most cases it's a non-noop merge and CI restarts. |
FYI:
(https://docs.github.com/en/actions/reference/events-that-trigger-workflows#pull_request) and https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#onevent_nametypes IIRC base branch change was under the type "edited". |
Thanks Alexey for fixing clang-format! @intel/llvm-gatekeepers this is ready to merge now. |
Based on PR #19134
Chain of upstream PRs & tree of downstream PRs as of 2025-06-25
PR [SYCL][Driver] Improve SYCL libspirv linking test coverage (NFC) #19130
PR [SYCL][Driver] Deduplicate libspirv logic #19131
PR [SYCL][Driver] Base libspirv path on sycl install candidates #19134
PR [SYCL][Driver] Emit unused argument warning for -fno-libspirv #19135 (THIS ONE)
-fsycl-device-only
mode #19136Previously the
-fno-libspirv
option was not warned about when therewas no SYCL compilation.
Remove the explicit target check for the targets that support
-fno-libspirv
and instead rely on each target to emit appropriatewarnings when its used.
This commit slightly degrades diagnostic quality, from
"ignoring '-fno-sycl-libspirv' option as it is not currently supported for target"
to
"argument unused during compilation: '-fno-sycl-libspirv'"
, but I believe this is acceptable as it allows to remove the list
of targets that support the option from the driver. Additionally,
now if the user mixes targets that support and do not support
-fno-libspirv
in the same compilation, they will not get warningsthat are not actionable.