================
@@ -272,8 +284,10 @@ class LLVM_LIBRARY_VISIBILITY SPIR32TargetInfo : public 
SPIRTargetInfo {
     assert(Triple.getArch() == llvm::Triple::spir &&
            "Invalid architecture for 32-bit SPIR.");
     PointerWidth = PointerAlign = 32;
-    SizeType = TargetInfo::UnsignedInt;
-    PtrDiffType = IntPtrType = TargetInfo::SignedInt;
+    if (!HostTarget || HostTarget->getPointerWidth(LangAS::Default) != 32) {
+      SizeType = TargetInfo::UnsignedInt;
+      PtrDiffType = IntPtrType = TargetInfo::SignedInt;
+    }
----------------
schittir wrote:

Thanks for the suggestion! I gave it a try, but reverted it — dropping the || 
HostTarget->getPointerWidth(...) != 32 clause breaks two existing tests in CI 
(the 32-bit-SPIR-device / 64-bit-host combination we discussed above):

  
https://github.com/llvm/llvm-project/actions/runs/29756545672/attempts/1#summary-88400317949
  1. clang/test/Frontend/sycl-aux-triple.cpp — -fsycl-is-device -triple spir 
-aux-triple x86_64-unknown-linux-gnu
  2. clang/test/CodeGenSYCL/kernel-caller-entry-point.cpp — -fsycl-is-device 
-aux-triple x86_64-pc-windows-msvc -triple  spir-unknown-unknown (also 
x86_64-uefi, spirv32)

Two options - which would you prefer? 1. Drop those RUN lines in the tests now 
(i.e., disallow that combination of host and device), or 2. handle it in a 
follow-up PR, since treating this as like an error feels like a separate change 
(potentially combined with other SPIR-related removals). 
Sorry if this feels like nitpicking - I'd rather make this call intentionally 
(and uniformly across other combinations too). 

https://github.com/llvm/llvm-project/pull/208196
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to