-
Notifications
You must be signed in to change notification settings - Fork 752
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] Remove sycldevice target triple environment component #3929
Conversation
/summary:run |
/summary:run |
|
@mdtoguchi, @AGindinson, I'd like to know your opinion on the direction to implement this. I see that when we link an object file, we unbundle it using following command: Note, device triple doesn't have This should cover the simplest case when we link with an object file. I haven't looked into other scenarios yet, but I'd like to confirm that this idea sounds sane to you. |
It does sound reasonable. Would there be a possibility of overlap of code (one previously built with |
I need to check what target tripe |
`CheckSpirKernels` flag is enabled only in SYCL mode, so there is no need in checking triple for that.
It's not necessary.
Drop sycldevice component from the design document example. Drop sycldevice component from the matrix extension examples.
Add a workaround to clang-offload-bundler to support bundles produced by previous versions of the compiler
8184779
to
46a928f
Compare
@vzakhari, does OpenMP compiler use the triple with |
@mdtoguchi, FYI. |
No, OpenMP compiler does not use |
/summary:run |
f368708
/summary:run |
Recent changes in the DPC++ compiler (intel/llvm#3929) allow to disregard the `sycldevice` component from the target triple in command lines. From there on, producing IR files for tests should use the simplified target triple. Clean up the existing tests to match this change. Signed-off-by: Artem Gindinson <artem.gindinson@intel.com>
Recent changes in the DPC++ compiler (intel/llvm#3929) allow to disregard the `sycldevice` component from the target triple in command lines. From there on, IR files for the Translator tests should be produced using the simplified target triple. Clean up the existing tests to match this change. Signed-off-by: Artem Gindinson <artem.gindinson@intel.com>
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.
LGTM.
Recent changes in the DPC++ compiler (intel/llvm#3929) allow to disregard the `sycldevice` component from the target triple in command lines. From there on, IR files for the Translator tests should be produced using the simplified target triple. Clean up the existing tests to match this change. Signed-off-by: Artem Gindinson <artem.gindinson@intel.com>
Recent changes in the DPC++ compiler (intel#3929) allow to disregard the `sycldevice` component from the target triple in command lines. From there on, IR files for the Translator tests should be produced using the simplified target triple. Clean up the existing tests to match this change. Signed-off-by: Artem Gindinson <artem.gindinson@intel.com> Original commit: KhronosGroup/SPIRV-LLVM-Translator@0a1f59c
With `-sycldevice` triple environment removal (as performed in intel#3929), backwards compatibility has been enforced for SYCL objects/object-format libraries only. To ensure that `.a` libraries (archives) built by older compiler versions are usable with newer compiler version, adjust `clang-offload-deps` to consider `-sycldevice`-marked symbols when encountering a SYCL target. Signed-off-by: Artem Gindinson <artem.gindinson@intel.com>
…4685) With `-sycldevice` triple environment removal (as performed in #3929), backwards compatibility has been enforced for SYCL objects/object-format libraries only. To ensure that `.a` libraries (archives) built by older compiler versions are usable with newer compiler version, adjust `clang-offload-deps` to consider `-sycldevice`-marked symbols when encountering a SYCL target. Signed-off-by: Artem Gindinson <artem.gindinson@intel.com>
Recent changes in the DPC++ compiler (intel/llvm#3929) allow to disregard the `sycldevice` component from the target triple in command lines. From there on, IR files for the Translator tests should be produced using the simplified target triple. Clean up the existing tests to match this change. Signed-off-by: Artem Gindinson <artem.gindinson@intel.com>
Today DPC++ compiler requires users to set "sycldevice" target triple component to separate SYCL compilation mode for SPIR target from other compilation mode (e.g. OpenCL).
Triple environment component is not intended to be used in such context and this patch removes
sycldevice
.This patch also preserves backward compatibility with binaries built using old versions of the compiler, which enforced
sycldevice
environment component of the target triple. It's provided byclang-offload-bundler
tool, which now implicitly looks for the additional SYCL offload kind bundle with a "legacy" triple.A driver warning was added to let users know that
sycldevice
environment component is ignored now.To simplify the review process, changes are split into multiple patches.
First nine patches updates the source code and three patches after that update target triples in
llvm-spirv
,llvm
andclang
project tests.Commits after 46a928f address code review comments.