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 const llvm::opt::ArgList &Args,
32 llvm::opt::ArgStringList &CmdArgs,
const JobAction &JA);
34const char *
getLDMOption(
const llvm::Triple &T,
const llvm::opt::ArgList &Args);
37 const llvm::opt::ArgList &Args,
38 llvm::opt::ArgStringList &CmdArgs);
43 llvm::opt::ArgStringList &CmdArgs);
46 const llvm::opt::ArgList &Args,
47 llvm::opt::ArgStringList &CmdArgs);
50 llvm::opt::ArgStringList &CmdArgs);
53 llvm::opt::ArgStringList &CmdArgs);
56 llvm::opt::ArgStringList &CmdArgs,
57 const llvm::opt::ArgList &Args);
62 const llvm::opt::ArgList &DriverArgs,
63 llvm::opt::ArgStringList &CmdArgs,
68 const llvm::opt::ArgList &DriverArgs,
69 llvm::opt::ArgStringList &CmdArgs, StringRef
Arch,
70 StringRef
Target,
bool isBitCodeSDL);
76 const JobAction &JA,
const llvm::opt::ArgList &Args,
77 const InputInfo &Output,
const char *OutFile);
80 llvm::opt::ArgStringList &CmdArgs);
83 llvm::opt::ArgStringList &CmdArgs,
const InputInfo &Output,
88std::tuple<llvm::Reloc::Model, unsigned, bool>
94 const llvm::opt::ArgList &Args);
97 llvm::codegenoptions::DebugInfoKind DebugInfoKind);
99llvm::codegenoptions::DebugInfoKind
114 const llvm::opt::ArgList &Args,
115 llvm::opt::Arg *&Arg);
118 const llvm::opt::ArgList &Args,
const Driver &D,
122 const llvm::opt::ArgList &Args,
123 llvm::opt::ArgStringList &CmdArgs);
126 const llvm::opt::ArgList &Args,
127 llvm::opt::ArgStringList &CmdArgs);
130 llvm::opt::ArgStringList &CmdArgs);
132 const llvm::opt::ArgList &Args,
133 llvm::opt::ArgStringList &CmdArgs);
136 const ToolChain &TC,
const llvm::opt::ArgList &Args,
137 bool ForceStaticHostRuntime =
false,
138 bool IsOffloadingHost =
false,
bool GompNeedsRT =
false);
142 const llvm::opt::ArgList &Args,
143 llvm::opt::ArgStringList &CmdArgs);
146 const llvm::opt::ArgList &Args,
147 llvm::opt::ArgStringList &CmdArgs);
150 llvm::opt::ArgStringList &CmdArgs,
bool as_needed);
167 const llvm::opt::ArgList &Args,
168 llvm::opt::ArgStringList &CmdArgs);
179 llvm::opt::ArgStringList &CmdArgs,
const char *ArgName,
183 std::vector<StringRef> &Features,
184 llvm::opt::OptSpecifier OnOpt,
185 llvm::opt::OptSpecifier OffOpt, StringRef FeatureName);
188 const llvm::Triple &T,
bool FromAs =
false);
191 const llvm::opt::ArgList &Args,
192 llvm::opt::ArgStringList &CmdArgs,
bool ForAS,
202 const llvm::opt::ArgList &Args,
203 std::vector<StringRef> &Features,
204 llvm::opt::OptSpecifier Group);
220 llvm::opt::ArgStringList &CmdArgs,
bool IsLTO,
221 const StringRef PluginOptPrefix =
"");
224 const llvm::opt::ArgList &Args);
227 const llvm::opt::ArgList &Args);
230 const llvm::opt::ArgList &Args);
233 llvm::opt::ArgStringList &CmdArgs,
234 const llvm::Triple &Triple,
bool IsLTO,
235 const StringRef PluginOptPrefix =
"");
238 llvm::opt::ArgStringList &CC1Args,
239 StringRef BitcodeSuffix,
const llvm::Triple &Triple,
243 const llvm::opt::ArgList &DriverArgs,
244 llvm::opt::ArgStringList &CC1Args);
247 const llvm::opt::ArgList &Args,
248 llvm::opt::ArgStringList &CmdArgs,
249 const llvm::Triple &Triple);
251 llvm::opt::ArgStringList &CmdArgs);
253 const llvm::Triple &Triple,
254 const llvm::Reloc::Model &RelocationModel,
255 llvm::opt::ArgStringList &CmdArgs);
259 llvm::opt::ArgStringList &CmdArgs);
273 const llvm::opt::ArgList &Args);
282 const llvm::opt::ArgList &Args,
283 bool &FRecordCommandLine,
bool &GRecordCommandLine,
284 bool &DXRecordCommandLine);
287 llvm::opt::ArgStringList &CmdArgs,
288 const llvm::Triple &Triple);
291 llvm::opt::ArgStringList &CmdArgs,
299 llvm::opt::ArgStringList &CmdArgs);
303 llvm::opt::ArgStringList &CmdArgs);
307 llvm::opt::ArgStringList &CmdArgs);
326 const llvm::opt::ArgStringList &LinkerInputs,
328 const llvm::opt::ArgList &Args,
329 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.