[SYCL][Clang] Add ARM64_SPIRV64 and ARM64SPIR64 target info
Add TargetInfo for MSVC ARM64 host with SPIR64 or SPIRV64 device target.
Hello frens @intel/llvm-reviewers-cuda
I think it looks good, but I wonder if this could benefit upstream LLVM as well. Seems like at least some of it is independent of SYCL.
I'm not 100% sure there is the basic infrastructure yet for this. But I think it would be nice to stop creating these hardcoded subvariants (it'll probably not fly well upstream anyway), they are hacks and it doesn't scale. E.g. AMD has one TargetInfo and NV has 2 (for the 32 and 64 variants) and that enough to support all host...
We only need the SPIRTargetInfo, SPIR64TargetInfo, SPIRV32TargetInfo and SPIRV64TargetInfo variants and a proper implementation of setAuxTarget to copy the info from the host triple. NOTE: SPIRVTargetInfo is for the Shader variant, so not required for SYCL.
So for now do you think it's OK to merge this patch and add a TODO for upstreaming? Looks like some refactoring is needed in order to get something that would be agreeable to upstream.
Thanks @Naghasan ! Ping @intel/dpcpp-cfe-reviewers
Ping @intel/llvm-gatekeepers this is good to go 🙏