diff options
author | Konstantin Zhuravlyov <kzhuravl_dev@outlook.com> | 2016-04-12 21:42:15 +0000 |
---|---|---|
committer | Konstantin Zhuravlyov <kzhuravl_dev@outlook.com> | 2016-04-12 21:42:15 +0000 |
commit | 5124bf8edc84b2c18e1475ba5bf5bce466bafcb7 (patch) | |
tree | f2807ab16d18f88af7e6fc17f152246917bf879f /clang/lib/Driver/Tools.cpp | |
parent | d5faa267c4a7856491aadc30d3f006a6c9237873 (diff) | |
download | llvm-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.cpp | 20 |
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. |