[clang] [libc] [lld] [llvm] Ugly example of building libc to spirv (PR #128585)
Farzon Lotfi via llvm-commits
llvm-commits at lists.llvm.org
Mon Feb 24 18:51:08 PST 2025
farzonl wrote:
@JonChesterfield even if you distinguish spirv64 from amdgpu in cmake clang
doesn't make that distinction. A common pattern for spriv64 is to return null if its not AMDGPU.
`clang/lib/CodeGen/CGBuiltin.cpp`
```
case llvm::Triple::spirv64:
if (CGF->getTarget().getTriple().getOS() != llvm::Triple::OSType::AMDHSA)
return nullptr;
return CGF->EmitAMDGPUBuiltinExpr(BuiltinID, E);
```
`clang/lib/Basic/Targets.cpp`
```
case llvm::Triple::spirv64: {
if (os != llvm::Triple::UnknownOS ||
Triple.getEnvironment() != llvm::Triple::UnknownEnvironment) {
if (os == llvm::Triple::OSType::AMDHSA)
return std::make_unique<SPIRV64AMDGCNTargetInfo>(Triple, Opts);
return nullptr;
}
}
```
https://github.com/llvm/llvm-project/pull/128585
More information about the llvm-commits
mailing list