-
Notifications
You must be signed in to change notification settings - Fork 788
[SYCL][ESIMD] Bring vc-intrinsics sources #1930
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
sycl/CMakeLists.txt
Outdated
@@ -184,6 +184,21 @@ install(DIRECTORY ${OPENCL_INCLUDE}/CL | |||
COMPONENT opencl-headers | |||
) | |||
|
|||
if (NOT TARGET LLVMGenXIntrinsics) | |||
message(STATUS "vc-intrinsics are missing. Will try to download them from github.com") | |||
include(FetchContent) |
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.
The line 1 in this CmakeLists.txt file says:
cmake_minimum_required(VERSION 3.2)
But the FetchContent becomes available only in Cmake-3.11
Is there any specific reason why you need FetchContent and move the download to 'configure' phase instead of using ExternalProject and have the download at 'build' phase?
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.
We have a long discussion in an email tread. The reason for this is a cyclic dependency LLVM->vc-instrinsics->LLVM (LowerESIMD). And we decided that I can use this mechanism,
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.
Please add those people to reviewers.
If you keep using this mechanism, then please a) update the first line in this file and b) update the pre-requisites here: https://intel.github.io/llvm-docs/GetStartedGuide.html#prerequisites
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.
OK, done. I set 3.14 version because FetchContent_MakeAvailable was introduced at this version.
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.
approve to start testin
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.
please add possibility to provide source directory in cmake command line.
VC intrinsics library is required by LowerESIMD pass.
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.
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.
Doc change LGTM
@bader - please take a look, leave it to you to merge. |
It seems to me that it would be more reasonable to move CMake changes from SYCL library CMake to llvm/lib/SYCLLowerIR/CMakeLists.txt. |
@tfzhu, @vladimirlaz, is CI environment ready for such change? |
We already moved all CIs (to 3.15 to match future LLVM expectations) |
Ops, sorry, I did not notice this comment when clicked Merge button. |
I think it can be applied in scope of #1881 i.e. moving CMake changes from SYCL library to LLVM pass. |
As for me, it depends on the further usage of vc-intrinsics. For now, this library is required only in SYCLLowerIR and it may be reasonably moved there. Can we imagine another user of vc-intrinsics library here? If we can, I'm not sure that we should move it. |
There are no usages of this intrinsics in the SYCL runtime library, so I don't understand why it's added to |
VC intrinsics library is required by LowerESIMD pass (#1881).