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);
54 llvm::opt::ArgStringList &CmdArgs,
60 llvm::opt::ArgStringList &CmdArgs);
63 const llvm::opt::ArgList &Args,
64 llvm::opt::ArgStringList &CmdArgs);
67 llvm::opt::ArgStringList &CmdArgs);
70 llvm::opt::ArgStringList &CmdArgs);
73 llvm::opt::ArgStringList &CmdArgs,
74 const llvm::opt::ArgList &Args);
79 const llvm::opt::ArgList &DriverArgs,
80 llvm::opt::ArgStringList &CmdArgs,
85 const llvm::opt::ArgList &DriverArgs,
86 llvm::opt::ArgStringList &CmdArgs, StringRef
Arch,
87 StringRef
Target,
bool isBitCodeSDL);
93 const JobAction &JA,
const llvm::opt::ArgList &Args,
94 const InputInfo &Output,
const char *OutFile);
97 llvm::opt::ArgStringList &CmdArgs);
100 llvm::opt::ArgStringList &CmdArgs,
const InputInfo &Output,
105std::tuple<llvm::Reloc::Model, unsigned, bool>
111 const llvm::opt::ArgList &Args);
114 llvm::codegenoptions::DebugInfoKind DebugInfoKind);
116llvm::codegenoptions::DebugInfoKind
131 const llvm::opt::ArgList &Args,
132 llvm::opt::Arg *&Arg);
135 const llvm::opt::ArgList &Args,
const Driver &D,
139 const llvm::opt::ArgList &Args,
140 llvm::opt::ArgStringList &CmdArgs);
143 const llvm::opt::ArgList &Args,
144 llvm::opt::ArgStringList &CmdArgs);
147 llvm::opt::ArgStringList &CmdArgs);
149 const llvm::opt::ArgList &Args,
150 llvm::opt::ArgStringList &CmdArgs);
153 llvm::opt::ArgStringList &CmdArgs,
155 const llvm::opt::ArgList &Args);
159 const ToolChain &TC,
const llvm::opt::ArgList &Args,
160 bool ForceStaticHostRuntime =
false,
161 bool IsOffloadingHost =
false,
bool GompNeedsRT =
false);
165 const llvm::opt::ArgList &Args,
166 llvm::opt::ArgStringList &CmdArgs);
169 const llvm::opt::ArgList &Args,
170 llvm::opt::ArgStringList &CmdArgs);
173 llvm::opt::ArgStringList &CmdArgs,
bool as_needed);
190 const llvm::opt::ArgList &Args,
191 llvm::opt::ArgStringList &CmdArgs);
202 llvm::opt::ArgStringList &CmdArgs,
const char *ArgName,
206 std::vector<StringRef> &Features,
207 llvm::opt::OptSpecifier OnOpt,
208 llvm::opt::OptSpecifier OffOpt, StringRef FeatureName);
211 const llvm::Triple &
T,
bool FromAs =
false);
214 const llvm::opt::ArgList &Args,
215 llvm::opt::ArgStringList &CmdArgs,
bool ForAS,
225 const llvm::opt::ArgList &Args,
226 std::vector<StringRef> &Features,
227 llvm::opt::OptSpecifier Group);
243 llvm::opt::ArgStringList &CmdArgs,
bool IsLTO,
244 const StringRef PluginOptPrefix =
"");
247 const llvm::opt::ArgList &Args);
250 const llvm::opt::ArgList &Args);
253 const llvm::opt::ArgList &Args);
256 llvm::opt::ArgStringList &CmdArgs,
257 const llvm::Triple &Triple,
bool IsLTO,
258 const StringRef PluginOptPrefix =
"");
261 llvm::opt::ArgStringList &CC1Args,
262 StringRef BitcodeSuffix,
const llvm::Triple &Triple,
270 const llvm::opt::ArgList &DriverArgs,
271 llvm::opt::ArgStringList &CC1Args);
274 const llvm::opt::ArgList &Args,
275 llvm::opt::ArgStringList &CmdArgs,
276 const llvm::Triple &Triple);
278 llvm::opt::ArgStringList &CmdArgs);
280 const llvm::Triple &Triple,
281 const llvm::Reloc::Model &RelocationModel,
282 llvm::opt::ArgStringList &CmdArgs);
286 llvm::opt::ArgStringList &CmdArgs);
300 const llvm::opt::ArgList &Args);
309 const llvm::opt::ArgList &Args,
310 bool &FRecordCommandLine,
bool &GRecordCommandLine,
311 bool &DXRecordCommandLine);
314 llvm::opt::ArgStringList &CmdArgs,
315 const llvm::Triple &Triple);
318 llvm::opt::ArgStringList &CmdArgs,
326 llvm::opt::ArgStringList &CmdArgs);
330 llvm::opt::ArgStringList &CmdArgs);
334 llvm::opt::ArgStringList &CmdArgs);
353 const llvm::opt::ArgStringList &LinkerInputs,
355 const llvm::opt::ArgList &Args,
356 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
Top level wrappers for InstallAPI frontend operations.
const FunctionProtoType * T