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);
174 llvm::opt::ArgStringList &CmdArgs,
const char *ArgName,
178 std::vector<StringRef> &Features,
179 llvm::opt::OptSpecifier OnOpt,
180 llvm::opt::OptSpecifier OffOpt, StringRef FeatureName);
183 const llvm::Triple &T,
bool FromAs =
false);
186 const llvm::opt::ArgList &Args,
187 llvm::opt::ArgStringList &CmdArgs,
bool ForAS,
197 const llvm::opt::ArgList &Args,
198 std::vector<StringRef> &Features,
199 llvm::opt::OptSpecifier Group);
215 llvm::opt::ArgStringList &CmdArgs,
bool IsLTO,
216 const StringRef PluginOptPrefix =
"");
219 const llvm::opt::ArgList &Args);
222 const llvm::opt::ArgList &Args);
225 const llvm::opt::ArgList &Args);
228 llvm::opt::ArgStringList &CmdArgs,
229 const llvm::Triple &Triple,
bool IsLTO,
230 const StringRef PluginOptPrefix =
"");
233 llvm::opt::ArgStringList &CC1Args,
234 StringRef BitcodeSuffix,
const llvm::Triple &Triple,
238 const llvm::opt::ArgList &DriverArgs,
239 llvm::opt::ArgStringList &CC1Args);
242 const llvm::opt::ArgList &Args,
243 llvm::opt::ArgStringList &CmdArgs,
244 const llvm::Triple &Triple);
246 llvm::opt::ArgStringList &CmdArgs);
248 const llvm::Triple &Triple,
249 const llvm::Reloc::Model &RelocationModel,
250 llvm::opt::ArgStringList &CmdArgs);
254 llvm::opt::ArgStringList &CmdArgs);
268 const llvm::opt::ArgList &Args);
277 const llvm::opt::ArgList &Args,
278 bool &FRecordCommandLine,
279 bool &GRecordCommandLine);
282 llvm::opt::ArgStringList &CmdArgs,
283 const llvm::Triple &Triple);
286 llvm::opt::ArgStringList &CmdArgs);
293 llvm::opt::ArgStringList &CmdArgs);
297 llvm::opt::ArgStringList &CmdArgs);
301 llvm::opt::ArgStringList &CmdArgs);
320 const llvm::opt::ArgStringList &LinkerInputs,
322 const llvm::opt::ArgList &Args,
323 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.