|
MachO (const Driver &D, const llvm::Triple &Triple, const llvm::opt::ArgList &Args) |
|
|
|
~MachO () override |
|
|
ToolChain Implementation |
|
} { |
|
types::ID |
LookupTypeForExtension (StringRef Ext) const override |
|
LookupTypeForExtension - Return the default language type to use for the given extension. |
|
|
bool |
HasNativeLLVMSupport () const override |
|
HasNativeLTOLinker - Check whether the linker and related tools have native LLVM support. |
|
|
llvm::opt::DerivedArgList * |
TranslateArgs (const llvm::opt::DerivedArgList &Args, StringRef BoundArch, Action::OffloadKind DeviceOffloadKind) const override |
|
TranslateArgs - Create a new derived argument list for any argument translations this ToolChain may wish to perform, or 0 if no tool chain specific translations are needed. |
|
|
bool |
IsBlocksDefault () const override |
|
IsBlocksDefault - Does this tool chain enable -fblocks by default. |
|
|
bool |
IsMathErrnoDefault () const override |
|
IsMathErrnoDefault - Does this tool chain use -fmath-errno by default. |
|
|
bool |
IsEncodeExtendedBlockSignatureDefault () const override |
|
IsEncodeExtendedBlockSignatureDefault - Does this tool chain enable -fencode-extended-block-signature by default. |
|
|
bool |
IsObjCNonFragileABIDefault () const override |
|
IsObjCNonFragileABIDefault - Does this tool chain set -fobjc-nonfragile-abi by default. |
|
|
bool |
UseObjCMixedDispatch () const override |
|
UseObjCMixedDispatchDefault - When using non-legacy dispatch, should the mixed dispatch method be used? |
|
|
UnwindTableLevel |
getDefaultUnwindTableLevel (const llvm::opt::ArgList &Args) const override |
|
How detailed should the unwind tables be by default. |
|
|
RuntimeLibType |
GetDefaultRuntimeLibType () const override |
|
GetDefaultRuntimeLibType - Get the default runtime library variant to use. |
|
|
bool |
isPICDefault () const override |
|
Test whether this toolchain defaults to PIC. |
|
|
bool |
isPIEDefault (const llvm::opt::ArgList &Args) const override |
|
Test whether this toolchain defaults to PIE. |
|
|
bool |
isPICDefaultForced () const override |
|
Tests whether this toolchain forces its default for PIC, PIE or non-PIC. |
|
|
bool |
SupportsProfiling () const override |
|
SupportsProfiling - Does this tool chain support -pg. |
|
|
bool |
UseDwarfDebugFlags () const override |
|
UseDwarfDebugFlags - Embed the compile options to clang into the Dwarf compile unit information. |
|
|
std::string |
GetGlobalDebugPathRemapping () const override |
|
Add an additional -fdebug-prefix-map entry. |
|
|
llvm::ExceptionHandling |
GetExceptionModel (const llvm::opt::ArgList &Args) const override |
|
GetExceptionModel - Return the tool chain exception model. |
|
|
virtual StringRef |
getOSLibraryNameSuffix (bool IgnoreSim=false) const |
|
|
bool |
canSplitThinLTOUnit () const override |
|
Returns true when it's possible to split LTO unit to use whole program devirtualization and CFI santiizers. |
|
|
Public Member Functions inherited from clang::driver::ToolChain |
|
virtual |
~ToolChain () |
|
|
const Driver & |
getDriver () const |
|
|
llvm::vfs::FileSystem & |
getVFS () const |
|
|
const llvm::Triple & |
getTriple () const |
|
|
virtual const llvm::Triple * |
getAuxTriple () const |
|
Get the toolchain's aux triple, if it has one. |
|
|
virtual std::string |
getInputFilename (const InputInfo &Input) const |
|
Some toolchains need to modify the file name, for example to replace the extension for object files with .cubin for OpenMP offloading to Nvidia GPUs. |
|
|
llvm::Triple::ArchType |
getArch () const |
|
|
StringRef |
getArchName () const |
|
|
StringRef |
getPlatform () const |
|
|
StringRef |
getOS () const |
|
|
StringRef |
getDefaultUniversalArchName () const |
|
Provide the default architecture name (as expected by -arch) for this toolchain. |
|
|
std::string |
getTripleString () const |
|
|
const llvm::Triple & |
getEffectiveTriple () const |
|
Get the toolchain's effective clang triple. |
|
|
bool |
hasEffectiveTriple () const |
|
|
path_list & |
getLibraryPaths () |
|
|
const path_list & |
getLibraryPaths () const |
|
|
path_list & |
getFilePaths () |
|
|
const path_list & |
getFilePaths () const |
|
|
path_list & |
getProgramPaths () |
|
|
const path_list & |
getProgramPaths () const |
|
|
const MultilibSet & |
getMultilibs () const |
|
|
const llvm::SmallVector< Multilib > & |
getSelectedMultilibs () const |
|
|
Multilib::flags_list |
getMultilibFlags (const llvm::opt::ArgList &) const |
|
Get flags suitable for multilib selection, based on the provided clang command line arguments. |
|
|
SanitizerArgs |
getSanitizerArgs (const llvm::opt::ArgList &JobArgs) const |
|
|
const XRayArgs & |
getXRayArgs () const |
|
|
const llvm::opt::Arg * |
getRTTIArg () const |
|
|
RTTIMode |
getRTTIMode () const |
|
|
ExceptionsMode |
getExceptionsMode () const |
|
|
virtual llvm::opt::DerivedArgList * |
TranslateArgs (const llvm::opt::DerivedArgList &Args, StringRef BoundArch, Action::OffloadKind DeviceOffloadKind) const |
|
TranslateArgs - Create a new derived argument list for any argument translations this ToolChain may wish to perform, or 0 if no tool chain specific translations are needed. |
|
|
virtual llvm::opt::DerivedArgList * |
TranslateOpenMPTargetArgs (const llvm::opt::DerivedArgList &Args, bool SameTripleAsHost, SmallVectorImpl< llvm::opt::Arg * > &AllocatedArgs) const |
|
TranslateOpenMPTargetArgs - Create a new derived argument list for that contains the OpenMP target specific flags passed via -Xopenmp-target -opt=val OR -Xopenmp-target= -opt=val. |
|
|
virtual void |
TranslateXarchArgs (const llvm::opt::DerivedArgList &Args, llvm::opt::Arg *&A, llvm::opt::DerivedArgList *DAL, SmallVectorImpl< llvm::opt::Arg * > *AllocatedArgs=nullptr) const |
|
Append the argument following A to DAL assuming A is an Xarch argument. |
|
|
virtual llvm::opt::DerivedArgList * |
TranslateXarchArgs (const llvm::opt::DerivedArgList &Args, StringRef BoundArch, Action::OffloadKind DeviceOffloadKind, SmallVectorImpl< llvm::opt::Arg * > *AllocatedArgs) const |
|
Translate -Xarch_ arguments. |
|
|
virtual Tool * |
SelectTool (const JobAction &JA) const |
|
Choose a tool to use to handle the action JA. |
|
|
std::string |
GetFilePath (const char *Name) const |
|
|
std::string |
GetProgramPath (const char *Name) const |
|
|
std::string |
GetLinkerPath (bool *LinkerIsLLD=nullptr) const |
|
Returns the linker path, respecting the -fuse-ld= argument to determine the linker suffix or name. |
|
|
std::string |
GetStaticLibToolPath () const |
|
Returns the linker path for emitting a static library. |
|
|
virtual void |
printVerboseInfo (raw_ostream &OS) const |
|
Dispatch to the specific toolchain for verbose printing. |
|
|
virtual bool |
isCrossCompiling () const |
|
Returns true if the toolchain is targeting a non-native architecture. |
|
|
virtual bool |
HasNativeLLVMSupport () const |
|
HasNativeLTOLinker - Check whether the linker and related tools have native LLVM support. |
|
|
virtual types::ID |
LookupTypeForExtension (StringRef Ext) const |
|
LookupTypeForExtension - Return the default language type to use for the given extension. |
|
|
virtual bool |
IsBlocksDefault () const |
|
IsBlocksDefault - Does this tool chain enable -fblocks by default. |
|
|
virtual bool |
IsIntegratedAssemblerDefault () const |
|
IsIntegratedAssemblerDefault - Does this tool chain enable -integrated-as by default. |
|
|
virtual bool |
IsIntegratedBackendDefault () const |
|
IsIntegratedBackendDefault - Does this tool chain enable -fintegrated-objemitter by default. |
|
|
virtual bool |
IsIntegratedBackendSupported () const |
|
IsIntegratedBackendSupported - Does this tool chain support -fintegrated-objemitter. |
|
|
virtual bool |
IsNonIntegratedBackendSupported () const |
|
IsNonIntegratedBackendSupported - Does this tool chain support -fno-integrated-objemitter. |
|
|
virtual bool |
useIntegratedAs () const |
|
Check if the toolchain should use the integrated assembler. |
|
|
virtual bool |
useIntegratedBackend () const |
|
Check if the toolchain should use the integrated backend. |
|
|
virtual bool |
parseInlineAsmUsingAsmParser () const |
|
Check if the toolchain should use AsmParser to parse inlineAsm when integrated assembler is not default. |
|
|
virtual bool |
IsMathErrnoDefault () const |
|
IsMathErrnoDefault - Does this tool chain use -fmath-errno by default. |
|
|
virtual bool |
IsEncodeExtendedBlockSignatureDefault () const |
|
IsEncodeExtendedBlockSignatureDefault - Does this tool chain enable -fencode-extended-block-signature by default. |
|
|
virtual bool |
IsObjCNonFragileABIDefault () const |
|
IsObjCNonFragileABIDefault - Does this tool chain set -fobjc-nonfragile-abi by default. |
|
|
virtual bool |
UseObjCMixedDispatch () const |
|
UseObjCMixedDispatchDefault - When using non-legacy dispatch, should the mixed dispatch method be used? |
|
|
virtual bool |
useRelaxRelocations () const |
|
Check whether to enable x86 relax relocations by default. |
|
|
bool |
defaultToIEEELongDouble () const |
|
Check whether use IEEE binary128 as long double format by default. |
|
|
virtual LangOptions::StackProtectorMode |
GetDefaultStackProtectorLevel (bool KernelOrKext) const |
|
GetDefaultStackProtectorLevel - Get the default stack protector level for this tool chain. |
|
|
virtual LangOptions::TrivialAutoVarInitKind |
GetDefaultTrivialAutoVarInit () const |
|
Get the default trivial automatic variable initialization. |
|
|
virtual const char * |
getDefaultLinker () const |
|
GetDefaultLinker - Get the default linker to use. |
|
|
virtual RuntimeLibType |
GetDefaultRuntimeLibType () const |
|
GetDefaultRuntimeLibType - Get the default runtime library variant to use. |
|
|
virtual CXXStdlibType |
GetDefaultCXXStdlibType () const |
|
|
virtual UnwindLibType |
GetDefaultUnwindLibType () const |
|
|
virtual std::string |
getCompilerRTPath () const |
|
|
virtual std::string |
getCompilerRT (const llvm::opt::ArgList &Args, StringRef Component, FileType Type=ToolChain::FT_Static) const |
|
|
const char * |
getCompilerRTArgString (const llvm::opt::ArgList &Args, StringRef Component, FileType Type=ToolChain::FT_Static) const |
|
|
std::string |
getCompilerRTBasename (const llvm::opt::ArgList &Args, StringRef Component, FileType Type=ToolChain::FT_Static) const |
|
|
std::optional< std::string > |
getRuntimePath () const |
|
|
std::optional< std::string > |
getStdlibPath () const |
|
|
std::optional< std::string > |
getStdlibIncludePath () const |
|
|
virtual path_list |
getArchSpecificLibPaths () const |
|
|
virtual StringRef |
getOSLibName () const |
|
|
virtual UnwindTableLevel |
getDefaultUnwindTableLevel (const llvm::opt::ArgList &Args) const |
|
How detailed should the unwind tables be by default. |
|
|
virtual bool |
IsAArch64OutlineAtomicsDefault (const llvm::opt::ArgList &Args) const |
|
Test whether this toolchain supports outline atomics by default. |
|
|
virtual bool |
isPICDefault () const =0 |
|
Test whether this toolchain defaults to PIC. |
|
|
virtual bool |
isPIEDefault (const llvm::opt::ArgList &Args) const =0 |
|
Test whether this toolchain defaults to PIE. |
|
|
virtual bool |
isPICDefaultForced () const =0 |
|
Tests whether this toolchain forces its default for PIC, PIE or non-PIC. |
|
|
virtual bool |
SupportsProfiling () const |
|
SupportsProfiling - Does this tool chain support -pg. |
|
|
virtual void |
CheckObjCARC () const |
|
Complain if this tool chain doesn't support Objective-C ARC. |
|
|
virtual llvm::codegenoptions::DebugInfoFormat |
getDefaultDebugFormat () const |
|
Get the default debug info format. Typically, this is DWARF. |
|
|
virtual bool |
UseDwarfDebugFlags () const |
|
UseDwarfDebugFlags - Embed the compile options to clang into the Dwarf compile unit information. |
|
|
virtual std::string |
GetGlobalDebugPathRemapping () const |
|
Add an additional -fdebug-prefix-map entry. |
|
|
virtual unsigned |
GetDefaultDwarfVersion () const |
|
|
virtual unsigned |
getMaxDwarfVersion () const |
|
|
virtual bool |
GetDefaultStandaloneDebug () const |
|
|
virtual llvm::DebuggerKind |
getDefaultDebuggerTuning () const |
|
|
virtual bool |
supportsDebugInfoOption (const llvm::opt::Arg *) const |
|
Does this toolchain supports given debug info option or not. |
|
|
virtual void |
adjustDebugInfoKind (llvm::codegenoptions::DebugInfoKind &DebugInfoKind, const llvm::opt::ArgList &Args) const |
|
Adjust debug information kind considering all passed options. |
|
|
virtual llvm::ExceptionHandling |
GetExceptionModel (const llvm::opt::ArgList &Args) const |
|
GetExceptionModel - Return the tool chain exception model. |
|
|
virtual bool |
SupportsEmbeddedBitcode () const |
|
SupportsEmbeddedBitcode - Does this tool chain support embedded bitcode. |
|
|
virtual std::string |
getThreadModel () const |
|
getThreadModel() - Which thread model does this target use? |
|
|
virtual bool |
isThreadModelSupported (const StringRef Model) const |
|
isThreadModelSupported() - Does this target support a thread model? |
|
|
virtual bool |
isBareMetal () const |
|
isBareMetal - Is this a bare metal target. |
|
|
virtual std::string |
getMultiarchTriple (const Driver &D, const llvm::Triple &TargetTriple, StringRef SysRoot) const |
|
|
virtual std::string |
ComputeLLVMTriple (const llvm::opt::ArgList &Args, types::ID InputType=types::TY_INVALID) const |
|
ComputeLLVMTriple - Return the LLVM target triple to use, after taking command line arguments into account. |
|
|
virtual std::string |
ComputeEffectiveClangTriple (const llvm::opt::ArgList &Args, types::ID InputType=types::TY_INVALID) const |
|
ComputeEffectiveClangTriple - Return the Clang triple to use for this target, which may take into account the command line arguments. |
|
|
virtual ObjCRuntime |
getDefaultObjCRuntime (bool isNonFragile) const |
|
getDefaultObjCRuntime - Return the default Objective-C runtime for this platform. |
|
|
virtual bool |
hasBlocksRuntime () const |
|
hasBlocksRuntime - Given that the user is compiling with -fblocks, does this tool chain guarantee the existence of a blocks runtime? |
|
|
virtual std::string |
computeSysRoot () const |
|
Return the sysroot, possibly searching for a default sysroot using target-specific logic. |
|
|
virtual void |
AddClangSystemIncludeArgs (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const |
|
Add the clang cc1 arguments for system include paths. |
|
|
virtual void |
addClangTargetOptions (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, Action::OffloadKind DeviceOffloadKind) const |
|
Add options that need to be passed to cc1 for this target. |
|
|
virtual void |
addClangCC1ASTargetOptions (const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CC1ASArgs) const |
|
Add options that need to be passed to cc1as for this target. |
|
|
virtual void |
addClangWarningOptions (llvm::opt::ArgStringList &CC1Args) const |
|
Add warning options that need to be passed to cc1 for this target. |
|
|
virtual SmallVector< std::string > |
getMultilibMacroDefinesStr (llvm::opt::ArgList &Args) const |
|
|
virtual RuntimeLibType |
GetRuntimeLibType (const llvm::opt::ArgList &Args) const |
|
|
virtual CXXStdlibType |
GetCXXStdlibType (const llvm::opt::ArgList &Args) const |
|
|
virtual UnwindLibType |
GetUnwindLibType (const llvm::opt::ArgList &Args) const |
|
|
virtual std::string |
detectLibcxxVersion (StringRef IncludePath) const |
|
|
virtual void |
AddClangCXXStdlibIncludeArgs (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const |
|
AddClangCXXStdlibIncludeArgs - Add the clang -cc1 level arguments to set the include paths to use for the given C++ standard library type. |
|
|
void |
AddClangCXXStdlibIsystemArgs (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const |
|
AddClangCXXStdlibIsystemArgs - Add the clang -cc1 level arguments to set the specified include paths for the C++ standard library. |
|
|
bool |
ShouldLinkCXXStdlib (const llvm::opt::ArgList &Args) const |
|
Returns if the C++ standard library should be linked in. |
|
|
virtual void |
AddCXXStdlibLibArgs (const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs) const |
|
AddCXXStdlibLibArgs - Add the system specific linker arguments to use for the given C++ standard library type. |
|
|
void |
AddFilePathLibArgs (const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs) const |
|
AddFilePathLibArgs - Add each thing in getFilePaths() as a "-L" option. |
|
|
virtual void |
AddCCKextLibArgs (const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs) const |
|
AddCCKextLibArgs - Add the system specific linker arguments to use for kernel extensions (Darwin-specific). |
|
|
virtual bool |
isFastMathRuntimeAvailable (const llvm::opt::ArgList &Args, std::string &Path) const |
|
If a runtime library exists that sets global flags for unsafe floating point math, return true. |
|
|
bool |
addFastMathRuntimeIfAvailable (const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs) const |
|
AddFastMathRuntimeIfAvailable - If a runtime library exists that sets global flags for unsafe floating point math, add it and return true. |
|
|
virtual Expected< SmallVector< std::string > > |
getSystemGPUArchs (const llvm::opt::ArgList &Args) const |
|
getSystemGPUArchs - Use a tool to detect the user's availible GPUs. |
|
|
virtual void |
addProfileRTLibs (const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs) const |
|
addProfileRTLibs - When -fprofile-instr-profile is specified, try to pass a suitable profile runtime library to the linker. |
|
|
virtual void |
AddCudaIncludeArgs (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const |
|
Add arguments to use system-specific CUDA includes. |
|
|
virtual void |
AddHIPIncludeArgs (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const |
|
Add arguments to use system-specific HIP includes. |
|
|
virtual void |
addSYCLIncludeArgs (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const |
|
Add arguments to use system-specific SYCL includes. |
|
|
virtual void |
AddIAMCUIncludeArgs (const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const |
|
Add arguments to use MCU GCC toolchain includes. |
|
|
virtual VersionTuple |
computeMSVCVersion (const Driver *D, const llvm::opt::ArgList &Args) const |
|
On Windows, returns the MSVC compatibility version. |
|
|
virtual llvm::SmallVector< BitCodeLibraryInfo, 12 > |
getDeviceLibs (const llvm::opt::ArgList &Args) const |
|
Get paths for device libraries. |
|
|
virtual void |
AddHIPRuntimeLibArgs (const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs) const |
|
Add the system specific linker arguments to use for the given HIP runtime library type. |
|
|
virtual SanitizerMask |
getSupportedSanitizers () const |
|
Return sanitizers which are available in this toolchain. |
|
|
virtual SanitizerMask |
getDefaultSanitizers () const |
|
Return sanitizers which are enabled by default. |
|
|
virtual bool |
canSplitThinLTOUnit () const |
|
Returns true when it's possible to split LTO unit to use whole program devirtualization and CFI santiizers. |
|
|
virtual llvm::DenormalMode |
getDefaultDenormalModeForType (const llvm::opt::ArgList &DriverArgs, const JobAction &JA, const llvm::fltSemantics *FPType=nullptr) const |
|
Returns the output denormal handling type in the default floating point environment for the given FPType if given. |
|
|