aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Driver/Tools.cpp
diff options
context:
space:
mode:
authorKonstantin Zhuravlyov <kzhuravl_dev@outlook.com>2016-04-12 21:42:15 +0000
committerKonstantin Zhuravlyov <kzhuravl_dev@outlook.com>2016-04-12 21:42:15 +0000
commit5124bf8edc84b2c18e1475ba5bf5bce466bafcb7 (patch)
treef2807ab16d18f88af7e6fc17f152246917bf879f /clang/lib/Driver/Tools.cpp
parentd5faa267c4a7856491aadc30d3f006a6c9237873 (diff)
downloadllvm-5124bf8edc84b2c18e1475ba5bf5bce466bafcb7.zip
llvm-5124bf8edc84b2c18e1475ba5bf5bce466bafcb7.tar.gz
llvm-5124bf8edc84b2c18e1475ba5bf5bce466bafcb7.tar.bz2
[AMDGPU] Add debugger related target options
Differential Revision: http://reviews.llvm.org/D18748 llvm-svn: 266133
Diffstat (limited to 'clang/lib/Driver/Tools.cpp')
-rw-r--r--clang/lib/Driver/Tools.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp
index f0b1de8..74bfc6e 100644
--- a/clang/lib/Driver/Tools.cpp
+++ b/clang/lib/Driver/Tools.cpp
@@ -2391,6 +2391,22 @@ static void getWebAssemblyTargetFeatures(const ArgList &Args,
handleTargetFeaturesGroup(Args, Features, options::OPT_m_wasm_Features_Group);
}
+static void getAMDGPUTargetFeatures(const Driver &D, const ArgList &Args,
+ std::vector<const char *> &Features) {
+ if (const Arg *dAbi = Args.getLastArg(options::OPT_mamdgpu_debugger_abi)) {
+ StringRef value = dAbi->getValue();
+ if (value == "1.0") {
+ Features.push_back("+amdgpu-debugger-insert-nops");
+ Features.push_back("+amdgpu-debugger-reserve-trap-regs");
+ } else {
+ D.Diag(diag::err_drv_clang_unsupported) << dAbi->getAsString(Args);
+ }
+ }
+
+ handleTargetFeaturesGroup(
+ Args, Features, options::OPT_m_amdgpu_Features_Group);
+}
+
static void getTargetFeatures(const ToolChain &TC, const llvm::Triple &Triple,
const ArgList &Args, ArgStringList &CmdArgs,
bool ForAS) {
@@ -2436,6 +2452,10 @@ static void getTargetFeatures(const ToolChain &TC, const llvm::Triple &Triple,
case llvm::Triple::wasm64:
getWebAssemblyTargetFeatures(Args, Features);
break;
+ case llvm::Triple::r600:
+ case llvm::Triple::amdgcn:
+ getAMDGPUTargetFeatures(D, Args, Features);
+ break;
}
// Find the last of each feature.