diff options
author | Alex Voicu <alexandru.voicu@amd.com> | 2024-11-05 10:53:05 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-11-05 10:53:05 +0200 |
commit | dc62edf10543137fbf7f3d4aaa21c17ff073a8fe (patch) | |
tree | a10e0054adc47496275e8545372e2a23cb81e7a0 /clang/lib/Driver/ToolChain.cpp | |
parent | d084bc291a21895fa2ecc74e2d1c9d1818ba4fd7 (diff) | |
download | llvm-dc62edf10543137fbf7f3d4aaa21c17ff073a8fe.zip llvm-dc62edf10543137fbf7f3d4aaa21c17ff073a8fe.tar.gz llvm-dc62edf10543137fbf7f3d4aaa21c17ff073a8fe.tar.bz2 |
[clang][Driver][HIP] Add support for mixing AMDGCNSPIRV & concrete `offload-arch`s. (#113509)
This removes the temporary ban on mixing AMDGCN flavoured SPIR-V and
concrete targets (e.g. `gfx900`) in the same HIPAMD compilation. This is
done primarily by tweaking the effective / observable triple when the
target is `amdgcnspirv`, which seamlessly composes with the existing
infra. The test is stolen from #75357.
Diffstat (limited to 'clang/lib/Driver/ToolChain.cpp')
-rw-r--r-- | clang/lib/Driver/ToolChain.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/clang/lib/Driver/ToolChain.cpp b/clang/lib/Driver/ToolChain.cpp index bdf3da0..9774d3f 100644 --- a/clang/lib/Driver/ToolChain.cpp +++ b/clang/lib/Driver/ToolChain.cpp @@ -1099,6 +1099,12 @@ std::string ToolChain::ComputeLLVMTriple(const ArgList &Args, } case llvm::Triple::aarch64_32: return getTripleString(); + case llvm::Triple::amdgcn: { + llvm::Triple Triple = getTriple(); + if (Args.getLastArgValue(options::OPT_mcpu_EQ) == "amdgcnspirv") + Triple.setArch(llvm::Triple::ArchType::spirv64); + return Triple.getTriple(); + } case llvm::Triple::arm: case llvm::Triple::armeb: case llvm::Triple::thumb: |