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 llvm::opt::ArgStringList &CmdArgs);
128 const llvm::opt::ArgList &Args,
129 llvm::opt::ArgStringList &CmdArgs);
132 const ToolChain &TC,
const llvm::opt::ArgList &Args,
133 bool ForceStaticHostRuntime =
false,
134 bool IsOffloadingHost =
false,
bool GompNeedsRT =
false);
138 const llvm::opt::ArgList &Args,
139 llvm::opt::ArgStringList &CmdArgs);
142 const llvm::opt::ArgList &Args,
143 llvm::opt::ArgStringList &CmdArgs);
146 llvm::opt::ArgStringList &CmdArgs,
bool as_needed);
170 llvm::opt::ArgStringList &CmdArgs,
const char *ArgName,
174 std::vector<StringRef> &Features,
175 llvm::opt::OptSpecifier OnOpt,
176 llvm::opt::OptSpecifier OffOpt, StringRef FeatureName);
179 const llvm::Triple &T,
bool FromAs =
false);
182 const llvm::opt::ArgList &Args,
183 llvm::opt::ArgStringList &CmdArgs,
bool ForAS,
193 const llvm::opt::ArgList &Args,
194 std::vector<StringRef> &Features,
195 llvm::opt::OptSpecifier Group);
211 llvm::opt::ArgStringList &CmdArgs,
bool IsLTO,
212 const StringRef PluginOptPrefix =
"");
215 const llvm::opt::ArgList &Args);
218 const llvm::opt::ArgList &Args);
221 const llvm::opt::ArgList &Args);
224 llvm::opt::ArgStringList &CmdArgs,
225 const llvm::Triple &Triple,
bool IsLTO,
226 const StringRef PluginOptPrefix =
"");
229 llvm::opt::ArgStringList &CC1Args,
230 StringRef BitcodeSuffix,
const llvm::Triple &Triple,
234 const llvm::opt::ArgList &DriverArgs,
235 llvm::opt::ArgStringList &CC1Args);
238 const llvm::opt::ArgList &Args,
239 llvm::opt::ArgStringList &CmdArgs,
240 const llvm::Triple &Triple);
242 llvm::opt::ArgStringList &CmdArgs);
244 const llvm::Triple &Triple,
245 const llvm::Reloc::Model &RelocationModel,
246 llvm::opt::ArgStringList &CmdArgs);
250 llvm::opt::ArgStringList &CmdArgs);
264 const llvm::opt::ArgList &Args);
273 const llvm::opt::ArgList &Args,
274 bool &FRecordCommandLine,
275 bool &GRecordCommandLine);
278 llvm::opt::ArgStringList &CmdArgs,
279 const llvm::Triple &Triple);
282 llvm::opt::ArgStringList &CmdArgs);
289 llvm::opt::ArgStringList &CmdArgs);
293 llvm::opt::ArgStringList &CmdArgs);
297 llvm::opt::ArgStringList &CmdArgs);
316 const llvm::opt::ArgStringList &LinkerInputs,
318 const llvm::opt::ArgList &Args,
319 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.