9#ifndef LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_COMMONARGS_H
10#define LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_COMMONARGS_H
18#include "llvm/ADT/StringRef.h"
19#include "llvm/Option/Arg.h"
20#include "llvm/Option/ArgList.h"
21#include "llvm/Support/CodeGen.h"
31 llvm::opt::Arg *
A =
nullptr;
44 const llvm::opt::ArgList &Args,
45 llvm::opt::ArgStringList &CmdArgs,
const JobAction &JA);
47const char *
getLDMOption(
const llvm::Triple &T,
const llvm::opt::ArgList &Args);
50 const llvm::opt::ArgList &Args,
51 llvm::opt::ArgStringList &CmdArgs);
56 llvm::opt::ArgStringList &CmdArgs);
59 const llvm::opt::ArgList &Args,
60 llvm::opt::ArgStringList &CmdArgs);
63 llvm::opt::ArgStringList &CmdArgs);
66 llvm::opt::ArgStringList &CmdArgs);
69 llvm::opt::ArgStringList &CmdArgs,
70 const llvm::opt::ArgList &Args);
75 const llvm::opt::ArgList &DriverArgs,
76 llvm::opt::ArgStringList &CmdArgs,
81 const llvm::opt::ArgList &DriverArgs,
82 llvm::opt::ArgStringList &CmdArgs, StringRef
Arch,
83 StringRef
Target,
bool isBitCodeSDL);
89 const JobAction &JA,
const llvm::opt::ArgList &Args,
90 const InputInfo &Output,
const char *OutFile);
93 llvm::opt::ArgStringList &CmdArgs);
96 llvm::opt::ArgStringList &CmdArgs,
const InputInfo &Output,
101std::tuple<llvm::Reloc::Model, unsigned, bool>
107 const llvm::opt::ArgList &Args);
110 llvm::codegenoptions::DebugInfoKind DebugInfoKind);
112llvm::codegenoptions::DebugInfoKind
127 const llvm::opt::ArgList &Args,
128 llvm::opt::Arg *&Arg);
131 const llvm::opt::ArgList &Args,
const Driver &D,
135 const llvm::opt::ArgList &Args,
136 llvm::opt::ArgStringList &CmdArgs);
139 const llvm::opt::ArgList &Args,
140 llvm::opt::ArgStringList &CmdArgs);
143 llvm::opt::ArgStringList &CmdArgs);
145 const llvm::opt::ArgList &Args,
146 llvm::opt::ArgStringList &CmdArgs);
149 const ToolChain &TC,
const llvm::opt::ArgList &Args,
150 bool ForceStaticHostRuntime =
false,
151 bool IsOffloadingHost =
false,
bool GompNeedsRT =
false);
155 const llvm::opt::ArgList &Args,
156 llvm::opt::ArgStringList &CmdArgs);
159 const llvm::opt::ArgList &Args,
160 llvm::opt::ArgStringList &CmdArgs);
163 llvm::opt::ArgStringList &CmdArgs,
bool as_needed);
180 const llvm::opt::ArgList &Args,
181 llvm::opt::ArgStringList &CmdArgs);
192 llvm::opt::ArgStringList &CmdArgs,
const char *ArgName,
196 std::vector<StringRef> &Features,
197 llvm::opt::OptSpecifier OnOpt,
198 llvm::opt::OptSpecifier OffOpt, StringRef FeatureName);
201 const llvm::Triple &T,
bool FromAs =
false);
204 const llvm::opt::ArgList &Args,
205 llvm::opt::ArgStringList &CmdArgs,
bool ForAS,
215 const llvm::opt::ArgList &Args,
216 std::vector<StringRef> &Features,
217 llvm::opt::OptSpecifier Group);
233 llvm::opt::ArgStringList &CmdArgs,
bool IsLTO,
234 const StringRef PluginOptPrefix =
"");
237 const llvm::opt::ArgList &Args);
240 const llvm::opt::ArgList &Args);
243 const llvm::opt::ArgList &Args);
246 llvm::opt::ArgStringList &CmdArgs,
247 const llvm::Triple &Triple,
bool IsLTO,
248 const StringRef PluginOptPrefix =
"");
251 llvm::opt::ArgStringList &CC1Args,
252 StringRef BitcodeSuffix,
const llvm::Triple &Triple,
260 const llvm::opt::ArgList &DriverArgs,
261 llvm::opt::ArgStringList &CC1Args);
264 const llvm::opt::ArgList &Args,
265 llvm::opt::ArgStringList &CmdArgs,
266 const llvm::Triple &Triple);
268 llvm::opt::ArgStringList &CmdArgs);
270 const llvm::Triple &Triple,
271 const llvm::Reloc::Model &RelocationModel,
272 llvm::opt::ArgStringList &CmdArgs);
276 llvm::opt::ArgStringList &CmdArgs);
290 const llvm::opt::ArgList &Args);
299 const llvm::opt::ArgList &Args,
300 bool &FRecordCommandLine,
bool &GRecordCommandLine,
301 bool &DXRecordCommandLine);
304 llvm::opt::ArgStringList &CmdArgs,
305 const llvm::Triple &Triple);
308 llvm::opt::ArgStringList &CmdArgs,
316 llvm::opt::ArgStringList &CmdArgs);
320 llvm::opt::ArgStringList &CmdArgs);
324 llvm::opt::ArgStringList &CmdArgs);
343 const llvm::opt::ArgStringList &LinkerInputs,
345 const llvm::opt::ArgList &Args,
346 const char *OutputFilename =
nullptr);
clang::CodeGenOptions::FramePointerKind getFramePointerKind(const llvm::opt::ArgList &Args, const llvm::Triple &Triple)
ComplexRangeKind
Controls the various implementations for complex multiplication and.
Compilation - A set of tasks to perform for a single driver invocation.
Driver - Encapsulate logic for constructing compilation processes from a set of gcc-driver-like comma...
std::vector< std::string > flags_list
SmallVector< InputInfo, 4 > InputInfoList
The JSON file list parser is used to communicate input to InstallAPI.