aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Driver/ToolChain.cpp
diff options
context:
space:
mode:
authorAlex Voicu <alexandru.voicu@amd.com>2024-11-05 10:53:05 +0200
committerGitHub <noreply@github.com>2024-11-05 10:53:05 +0200
commitdc62edf10543137fbf7f3d4aaa21c17ff073a8fe (patch)
treea10e0054adc47496275e8545372e2a23cb81e7a0 /clang/lib/Driver/ToolChain.cpp
parentd084bc291a21895fa2ecc74e2d1c9d1818ba4fd7 (diff)
downloadllvm-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.cpp6
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: