================
@@ -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