aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Driver/Tools.cpp
diff options
context:
space:
mode:
authorPaul Robinson <paul_robinson@playstation.sony.com>2016-01-25 19:46:40 +0000
committerPaul Robinson <paul_robinson@playstation.sony.com>2016-01-25 19:46:40 +0000
commit4391d09d608938749b1555264cbed14ac924df9e (patch)
treeecb7778b25257c0bc87d35118a4168f70c91772e /clang/lib/Driver/Tools.cpp
parente71c99c7e23f48d5cefb15078f528475d94547a9 (diff)
downloadllvm-4391d09d608938749b1555264cbed14ac924df9e.zip
llvm-4391d09d608938749b1555264cbed14ac924df9e.tar.gz
llvm-4391d09d608938749b1555264cbed14ac924df9e.tar.bz2
LTO via the gold plugin needs to be told about debugger tuning.
Differential Revision: http://reviews.llvm.org/D16094 llvm-svn: 258712
Diffstat (limited to 'clang/lib/Driver/Tools.cpp')
-rw-r--r--clang/lib/Driver/Tools.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp
index 574bf5c..2bbcb27 100644
--- a/clang/lib/Driver/Tools.cpp
+++ b/clang/lib/Driver/Tools.cpp
@@ -1817,6 +1817,17 @@ static void AddGoldPlugin(const ToolChain &ToolChain, const ArgList &Args,
if (IsThinLTO)
CmdArgs.push_back("-plugin-opt=thinlto");
+
+ // If an explicit debugger tuning argument appeared, pass it along.
+ if (Arg *A = Args.getLastArg(options::OPT_gTune_Group,
+ options::OPT_ggdbN_Group)) {
+ if (A->getOption().matches(options::OPT_glldb))
+ CmdArgs.push_back("-plugin-opt=-debugger-tune=lldb");
+ else if (A->getOption().matches(options::OPT_gsce))
+ CmdArgs.push_back("-plugin-opt=-debugger-tune=sce");
+ else
+ CmdArgs.push_back("-plugin-opt=-debugger-tune=gdb");
+ }
}
/// This is a helper function for validating the optional refinement step