================ @@ -92,6 +98,65 @@ SPIRVTargetMachine::SPIRVTargetMachine(const Target &T, const Triple &TT, setRequiresStructuredCFG(false); } +enum AddressSpace { + Function = storageClassToAddressSpace(SPIRV::StorageClass::Function), + CrossWorkgroup = + storageClassToAddressSpace(SPIRV::StorageClass::CrossWorkgroup), + UniformConstant = + storageClassToAddressSpace(SPIRV::StorageClass::UniformConstant), + Workgroup = storageClassToAddressSpace(SPIRV::StorageClass::Workgroup), + Generic = storageClassToAddressSpace(SPIRV::StorageClass::Generic) +}; + +unsigned SPIRVTargetMachine::getAssumedAddrSpace(const Value *V) const { + // TODO: we only enable this for AMDGCN flavoured SPIR-V, where we know it to + // be correct; this might be relaxed in the future. + if (getTargetTriple().getVendor() != Triple::VendorType::AMD) + return UINT32_MAX; ---------------- bader wrote:
Can we add `AddressSpace::Unknown`/ `AddressSpace::Invalid` instead of using magic constant or at least document the meaning of `UINT32_MAX`? https://github.com/llvm/llvm-project/pull/110897 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits