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);
80 const JobAction &JA,
const llvm::opt::ArgList &Args,
81 const InputInfo &Output,
const char *OutFile);
84 llvm::opt::ArgStringList &CmdArgs);
87 llvm::opt::ArgStringList &CmdArgs,
const InputInfo &Output,
92std::tuple<llvm::Reloc::Model, unsigned, bool>
98 const llvm::opt::ArgList &Args);
101 llvm::codegenoptions::DebugInfoKind DebugInfoKind);
103llvm::codegenoptions::DebugInfoKind
118 const llvm::opt::ArgList &Args,
119 llvm::opt::Arg *&Arg);
122 const llvm::opt::ArgList &Args,
const Driver &D,
126 const llvm::opt::ArgList &Args,
127 llvm::opt::ArgStringList &CmdArgs);
130 const llvm::opt::ArgList &Args,
131 llvm::opt::ArgStringList &CmdArgs);
134 llvm::opt::ArgStringList &CmdArgs);
136 const llvm::opt::ArgList &Args,
137 llvm::opt::ArgStringList &CmdArgs);
140 llvm::opt::ArgStringList &CmdArgs,
142 const llvm::opt::ArgList &Args);
146 const ToolChain &TC,
const llvm::opt::ArgList &Args,
147 bool ForceStaticHostRuntime =
false,
148 bool IsOffloadingHost =
false,
bool GompNeedsRT =
false);
152 const llvm::opt::ArgList &Args,
153 llvm::opt::ArgStringList &CmdArgs);
156 const llvm::opt::ArgList &Args,
157 llvm::opt::ArgStringList &CmdArgs);
160 llvm::opt::ArgStringList &CmdArgs,
bool as_needed);
177 const llvm::opt::ArgList &Args,
178 llvm::opt::ArgStringList &CmdArgs);
189 llvm::opt::ArgStringList &CmdArgs,
const char *ArgName,
193 std::vector<StringRef> &Features,
194 llvm::opt::OptSpecifier OnOpt,
195 llvm::opt::OptSpecifier OffOpt, StringRef FeatureName);
198 const llvm::Triple &
T,
bool FromAs =
false);
201 const llvm::opt::ArgList &Args,
202 llvm::opt::ArgStringList &CmdArgs,
bool ForAS,
212 const llvm::opt::ArgList &Args,
213 std::vector<StringRef> &Features,
214 llvm::opt::OptSpecifier Group);
230 llvm::opt::ArgStringList &CmdArgs,
bool IsLTO,
231 const StringRef PluginOptPrefix =
"");
234 const llvm::opt::ArgList &Args);
237 const llvm::opt::ArgList &Args);
240 const llvm::opt::ArgList &Args);
243 llvm::opt::ArgStringList &CmdArgs,
244 const llvm::Triple &Triple,
bool IsLTO,
245 const StringRef PluginOptPrefix =
"");
248 const llvm::opt::ArgList &Args,
249 llvm::opt::ArgStringList &CmdArgs,
250 const llvm::Triple &Triple);
253 llvm::opt::ArgStringList &CC1Args,
254 StringRef BitcodeSuffix,
const llvm::Triple &Triple,
262 const llvm::opt::ArgList &DriverArgs,
263 llvm::opt::ArgStringList &CC1Args);
266 const llvm::opt::ArgList &Args,
267 llvm::opt::ArgStringList &CmdArgs,
268 const llvm::Triple &Triple);
270 llvm::opt::ArgStringList &CmdArgs);
272 const llvm::Triple &Triple,
273 const llvm::Reloc::Model &RelocationModel,
274 llvm::opt::ArgStringList &CmdArgs);
278 llvm::opt::ArgStringList &CmdArgs);
292 const llvm::opt::ArgList &Args);
301 const llvm::opt::ArgList &Args,
302 bool &FRecordCommandLine,
bool &GRecordCommandLine,
303 bool &DXRecordCommandLine);
306 llvm::opt::ArgStringList &CmdArgs,
307 const llvm::Triple &Triple);
310 llvm::opt::ArgStringList &CmdArgs,
318 llvm::opt::ArgStringList &CmdArgs);
322 llvm::opt::ArgStringList &CmdArgs);
326 llvm::opt::ArgStringList &CmdArgs);
345 const llvm::opt::ArgStringList &LinkerInputs,
347 const llvm::opt::ArgList &Args,
348 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