15 #include "llvm/Option/ArgList.h" 20 using namespace clang;
27 const char *LinkingOutput)
const {
29 std::string
Linker = getToolChain().GetProgramPath(getShortName());
30 ArgStringList CmdArgs;
32 CmdArgs.push_back(
"-shared");
33 CmdArgs.push_back(
"-o");
35 C.
addCommand(llvm::make_unique<Command>(JA, *
this, Args.MakeArgString(Linker),
40 const llvm::opt::ArgList &Args,
41 std::vector<StringRef> &Features) {
42 if (
const Arg *dAbi = Args.getLastArg(options::OPT_mamdgpu_debugger_abi)) {
43 StringRef value = dAbi->getValue();
45 Features.push_back(
"+amdgpu-debugger-insert-nops");
46 Features.push_back(
"+amdgpu-debugger-reserve-regs");
47 Features.push_back(
"+amdgpu-debugger-emit-prologue");
49 D.
Diag(diag::err_drv_clang_unsupported) << dAbi->getAsString(Args);
54 Args, Features, options::OPT_m_amdgpu_Features_Group);
58 AMDGPUToolChain::AMDGPUToolChain(
const Driver &D,
const llvm::Triple &Triple,
61 OptionsDefault({{options::OPT_O,
"3"},
62 {options::OPT_cl_std_EQ,
"CL1.2"}}) {}
76 if (!Args.getLastArgValue(options::OPT_x).equals(
"cl"))
80 DAL =
new DerivedArgList(Args.getBaseArgs());
87 if (Args.hasArg(options::OPT_c) && Args.hasArg(options::OPT_emit_llvm)) {
88 DAL->AddFlagArg(
nullptr, Opts.getOption(
getTriple().isArch64Bit()
94 if (!Args.hasArg(options::OPT_O, options::OPT_O0, options::OPT_O4,
96 DAL->AddJoinedArg(
nullptr, Opts.getOption(options::OPT_O),
DiagnosticBuilder Diag(unsigned DiagID) const
Driver - Encapsulate logic for constructing compilation processes from a set of gcc-driver-like comma...
void addCommand(std::unique_ptr< Command > C)
Dataflow Directional Tag Classes.
Compilation - A set of tasks to perform for a single driver invocation.
const llvm::opt::OptTable & getOpts() const