[AMDGPU] gfx1010 wave32 clang support
Differential Revision: https://reviews.llvm.org/D63209
llvm-svn: 363341
diff --git a/clang/lib/Driver/ToolChains/AMDGPU.cpp b/clang/lib/Driver/ToolChains/AMDGPU.cpp
index 7f6ddab..df4e7ee 100644
--- a/clang/lib/Driver/ToolChains/AMDGPU.cpp
+++ b/clang/lib/Driver/ToolChains/AMDGPU.cpp
@@ -41,6 +41,17 @@
if (const Arg *dAbi = Args.getLastArg(options::OPT_mamdgpu_debugger_abi))
D.Diag(diag::err_drv_clang_unsupported) << dAbi->getAsString(Args);
+ if (Args.getLastArg(options::OPT_mwavefrontsize64)) {
+ Features.push_back("-wavefrontsize16");
+ Features.push_back("-wavefrontsize32");
+ Features.push_back("+wavefrontsize64");
+ }
+ if (Args.getLastArg(options::OPT_mno_wavefrontsize64)) {
+ Features.push_back("-wavefrontsize16");
+ Features.push_back("+wavefrontsize32");
+ Features.push_back("-wavefrontsize64");
+ }
+
handleTargetFeaturesGroup(
Args, Features, options::OPT_m_amdgpu_Features_Group);
}
diff --git a/clang/lib/Driver/ToolChains/HIP.cpp b/clang/lib/Driver/ToolChains/HIP.cpp
index 0afd062..a60485a 100644
--- a/clang/lib/Driver/ToolChains/HIP.cpp
+++ b/clang/lib/Driver/ToolChains/HIP.cpp
@@ -316,15 +316,21 @@
else
FlushDenormalControlBC = "oclc_daz_opt_off.amdgcn.bc";
+ llvm::StringRef WaveFrontSizeBC;
+ if (stoi(GFXVersion) < 1000)
+ WaveFrontSizeBC = "oclc_wavefrontsize64_on.amdgcn.bc";
+ else
+ WaveFrontSizeBC = "oclc_wavefrontsize64_off.amdgcn.bc";
+
BCLibs.append({"hip.amdgcn.bc", "opencl.amdgcn.bc", "ocml.amdgcn.bc",
"ockl.amdgcn.bc", "oclc_finite_only_off.amdgcn.bc",
FlushDenormalControlBC,
"oclc_correctly_rounded_sqrt_on.amdgcn.bc",
- "oclc_unsafe_math_off.amdgcn.bc", ISAVerBC});
+ "oclc_unsafe_math_off.amdgcn.bc", ISAVerBC,
+ WaveFrontSizeBC});
}
for (auto Lib : BCLibs)
addBCLib(getDriver(), DriverArgs, CC1Args, LibraryPaths, Lib);
-
}
llvm::opt::DerivedArgList *