llvm::opt::ArgList &Args;
145 constllvm::opt::Arg *
constCachedRTTIArg;
160 mutablestd::unique_ptr<Tool> Clang;
161 mutablestd::unique_ptr<Tool> Flang;
162 mutablestd::unique_ptr<Tool> Assemble;
163 mutablestd::unique_ptr<Tool> Link;
164 mutablestd::unique_ptr<Tool> StaticLibTool;
165 mutablestd::unique_ptr<Tool> IfsMerge;
167 mutablestd::unique_ptr<Tool> OffloadPackager;
168 mutablestd::unique_ptr<Tool> LinkerWrapper;
170 Tool*getClang()
const;
171 Tool*getFlang()
const;
172 Tool*getAssemble()
const;
173 Tool*getLink()
const;
174 Tool*getStaticLibTool()
const;
175 Tool*getIfsMerge()
const;
176 Tool*getClangAs()
const;
177 Tool*getOffloadBundler()
const;
178 Tool*getOffloadPackager()
const;
179 Tool*getLinkerWrapper()
const;
181 mutable boolSanitizerArgsChecked =
false;
182 mutablestd::unique_ptr<XRayArgs> XRayArguments;
185 mutablellvm::Triple EffectiveTriple;
188 voidsetEffectiveTriple(llvm::Triple ET)
const{
189EffectiveTriple = std::move(ET);
192std::optional<std::string>
193getFallbackAndroidTargetPath(StringRef BaseDir)
const;
195 mutablestd::optional<CXXStdlibType> cxxStdlibType;
196 mutablestd::optional<RuntimeLibType> runtimeLibType;
197 mutablestd::optional<UnwindLibType> unwindLibType;
204 constllvm::opt::ArgList &Args);
220 boolAddArch)
const;
230llvm::opt::ArgStringList &CC1Args,
231 constTwine &
Path);
233llvm::opt::ArgStringList &CC1Args,
234 constTwine &
Path);
237llvm::opt::ArgStringList &CC1Args,
238 constTwine &
Path);
240llvm::opt::ArgStringList &CC1Args,
243 staticstd::string
concat(StringRef
Path,
constTwine &A,
constTwine &B =
"",
244 constTwine &
C=
"",
constTwine &
D=
"");
253llvm::vfs::FileSystem &
getVFS()
const;
254 constllvm::Triple &
getTriple()
const{
returnTriple; }
261 virtual constllvm::Triple *
getAuxTriple()
const{
return nullptr; }
268llvm::Triple::ArchType
getArch()
const{
returnTriple.getArch(); }
271StringRef
getOS()
const{
returnTriple.getOSName(); }
278 returnTriple.getTriple();
283assert(!EffectiveTriple.getTriple().empty() &&
"No effective triple");
284 returnEffectiveTriple;
288 return!EffectiveTriple.getTriple().empty();
323 constllvm::opt::Arg *
getRTTIArg()
const{
returnCachedRTTIArg; }
357 virtualllvm::opt::DerivedArgList *
367 constllvm::opt::DerivedArgList &Args,
boolSameTripleAsHost,
374 constllvm::opt::DerivedArgList &Args, llvm::opt::Arg *&A,
375llvm::opt::DerivedArgList *DAL,
381 virtualllvm::opt::DerivedArgList *
394std::string
GetFilePath(
const char*Name)
const;
403std::string
GetLinkerPath(
bool*LinkerIsLLD =
nullptr)
const;
510 virtualstd::string
getCompilerRT(
constllvm::opt::ArgList &Args,
574 returnllvm::codegenoptions::DIF_DWARF;
601 returnllvm::DebuggerKind::GDB;
612 constllvm::opt::ArgList &Args)
const{}
615 virtualllvm::ExceptionHandling
631 constllvm::Triple &TargetTriple,
632StringRef SysRoot)
const{
633 returnTargetTriple.str();
648 constllvm::opt::ArgList &Args,
674llvm::opt::ArgStringList &CC1Args)
const;
678llvm::opt::ArgStringList &CC1Args,
684llvm::opt::ArgStringList &CC1ASArgs)
const;
716llvm::opt::ArgStringList &CC1Args)
const;
721llvm::opt::ArgStringList &CC1Args)
const;
730llvm::opt::ArgStringList &CmdArgs)
const;
734llvm::opt::ArgStringList &CmdArgs)
const;
739llvm::opt::ArgStringList &CmdArgs)
const;
746 constllvm::opt::ArgList &Args, std::string &
Path)
const;
753 constllvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs)
const;
762llvm::opt::ArgStringList &CmdArgs)
const;
766llvm::opt::ArgStringList &CC1Args)
const;
770llvm::opt::ArgStringList &CC1Args)
const;
774llvm::opt::ArgStringList &CC1Args)
const;
778llvm::opt::ArgStringList &CC1Args)
const;
782 constllvm::opt::ArgList &Args)
const;
791llvm::opt::ArgStringList &CmdArgs)
const{}
809 constllvm::opt::ArgList &DriverArgs,
const JobAction&JA,
810 constllvm::fltSemantics *FPType =
nullptr)
const{
811 returnllvm::DenormalMode::getIEEE();
817llvm::Triple TT(TripleStr);
818 if(TT.getVendor() == llvm::Triple::UnknownVendor ||
819TT.getOS() == llvm::Triple::UnknownOS) {
820 if(TT.getArch() == llvm::Triple::nvptx)
821 returnllvm::Triple(
"nvptx-nvidia-cuda");
822 if(TT.getArch() == llvm::Triple::nvptx64)
823 returnllvm::Triple(
"nvptx64-nvidia-cuda");
824 if(TT.getArch() == llvm::Triple::amdgcn)
825 returnllvm::Triple(
"amdgcn-amd-amdhsa");
838TC.setEffectiveTriple(std::move(
T));
Forward-declares and imports various common LLVM datatypes that clang wants to use unqualified.
Defines the clang::LangOptions interface.
llvm::MachO::FileType FileType
llvm::MachO::Target Target
Defines the clang::SanitizerKind enum.
The basic abstraction for the target Objective-C runtime.
The base class of the type hierarchy.
Driver - Encapsulate logic for constructing compilation processes from a set of gcc-driver-like comma...
InputInfo - Wrapper for information about an input source.
See also MultilibSetBuilder for combining multilibs into a set.
std::vector< std::string > flags_list
Set a ToolChain's effective triple.
~RegisterEffectiveTriple()
RegisterEffectiveTriple(const ToolChain &TC, llvm::Triple T)
The JSON file list parser is used to communicate input to InstallAPI.
const FunctionProtoType * T
bool(*)(llvm::ArrayRef< const char * >, llvm::raw_ostream &, llvm::raw_ostream &, bool, bool) Driver
Diagnostic wrappers for TextAPI types for error reporting.
Helper structure used to pass information extracted from clang executable name such as i686-linux-and...
ParsedClangName(std::string Suffix, const char *Mode)
ParsedClangName()=default
const char * DriverMode
Corresponding driver mode argument, as 'âdriver-mode=g++'.
std::string ModeSuffix
Driver mode part of the executable name, as g++.
std::string TargetPrefix
Target part of the executable name, as i686-linux-android.
bool TargetIsValid
True if TargetPrefix is recognized as a registered target name.
ParsedClangName(std::string Target, std::string Suffix, const char *Mode, bool IsRegistered)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4