class ToolChain
Declaration
class ToolChain { /* full declaration omitted */ };
Description
ToolChain - Access to tools for a single platform.
Declared at: clang/include/clang/Driver/ToolChain.h:91
Member Variables
- private const clang::driver::Driver& D
- private llvm::Triple Triple
- private const llvm::opt::ArgList& Args
- private const llvm::opt::Arg* const CachedRTTIArg
- private const clang::driver::ToolChain::RTTIMode CachedRTTIMode
- private clang::driver::ToolChain::path_list LibraryPaths
- The list of toolchain specific path prefixes to search for libraries.
- private clang::driver::ToolChain::path_list FilePaths
- The list of toolchain specific path prefixes to search for files.
- private clang::driver::ToolChain::path_list ProgramPaths
- The list of toolchain specific path prefixes to search for programs.
- private std::unique_ptr<Tool> Clang
- private std::unique_ptr<Tool> Flang
- private std::unique_ptr<Tool> Assemble
- private std::unique_ptr<Tool> Link
- private std::unique_ptr<Tool> StaticLibTool
- private std::unique_ptr<Tool> IfsMerge
- private std::unique_ptr<Tool> OffloadBundler
- private std::unique_ptr<Tool> OffloadWrapper
- private std::unique_ptr<Tool> OffloadPackager
- private std::unique_ptr<Tool> LinkerWrapper
- private bool SanitizerArgsChecked = false
- private std::unique_ptr<XRayArgs> XRayArguments
- private llvm::Triple EffectiveTriple
- The effective clang triple for the current Job.
- private llvm::Optional<CXXStdlibType> cxxStdlibType
- private llvm::Optional<RuntimeLibType> runtimeLibType
- private llvm::Optional<UnwindLibType> unwindLibType
- protected clang::driver::MultilibSet Multilibs
- protected clang::driver::Multilib SelectedMultilib
Method Overview
- public virtual void AddCCKextLibArgs(const llvm::opt::ArgList & Args, llvm::opt::ArgStringList & CmdArgs) const
- public virtual void AddCXXStdlibLibArgs(const llvm::opt::ArgList & Args, llvm::opt::ArgStringList & CmdArgs) const
- public virtual void AddClangCXXStdlibIncludeArgs(const llvm::opt::ArgList & DriverArgs, llvm::opt::ArgStringList & CC1Args) const
- public void AddClangCXXStdlibIsystemArgs(const llvm::opt::ArgList & DriverArgs, llvm::opt::ArgStringList & CC1Args) const
- public virtual void AddClangSystemIncludeArgs(const llvm::opt::ArgList & DriverArgs, llvm::opt::ArgStringList & CC1Args) const
- public virtual void AddCudaIncludeArgs(const llvm::opt::ArgList & DriverArgs, llvm::opt::ArgStringList & CC1Args) const
- public void AddFilePathLibArgs(const llvm::opt::ArgList & Args, llvm::opt::ArgStringList & CmdArgs) const
- public virtual void AddHIPIncludeArgs(const llvm::opt::ArgList & DriverArgs, llvm::opt::ArgStringList & CC1Args) const
- public virtual void AddHIPRuntimeLibArgs(const llvm::opt::ArgList & Args, llvm::opt::ArgStringList & CmdArgs) const
- public virtual void AddIAMCUIncludeArgs(const llvm::opt::ArgList & DriverArgs, llvm::opt::ArgStringList & CC1Args) const
- public virtual void CheckObjCARC() const
- public virtual std::string ComputeEffectiveClangTriple(const llvm::opt::ArgList & Args, types::ID InputType = types::TY_INVALID) const
- public virtual std::string ComputeLLVMTriple(const llvm::opt::ArgList & Args, types::ID InputType = types::TY_INVALID) const
- public virtual clang::driver::ToolChain::CXXStdlibType GetCXXStdlibType(const llvm::opt::ArgList & Args) const
- public virtual clang::driver::ToolChain::CXXStdlibType GetDefaultCXXStdlibType() const
- public virtual unsigned int GetDefaultDwarfVersion() const
- public virtual clang::driver::ToolChain::RuntimeLibType GetDefaultRuntimeLibType() const
- public virtual LangOptions::StackProtectorMode GetDefaultStackProtectorLevel(bool KernelOrKext) const
- public virtual bool GetDefaultStandaloneDebug() const
- public virtual LangOptions::TrivialAutoVarInitKind GetDefaultTrivialAutoVarInit() const
- public virtual clang::driver::ToolChain::UnwindLibType GetDefaultUnwindLibType() const
- public virtual llvm::ExceptionHandling GetExceptionModel(const llvm::opt::ArgList & Args) const
- public std::string GetFilePath(const char * Name) const
- public virtual std::string GetGlobalDebugPathRemapping() const
- public std::string GetLinkerPath(bool * LinkerIsLLD = nullptr) const
- public std::string GetProgramPath(const char * Name) const
- public virtual clang::driver::ToolChain::RuntimeLibType GetRuntimeLibType(const llvm::opt::ArgList & Args) const
- public std::string GetStaticLibToolPath() const
- public virtual clang::driver::ToolChain::UnwindLibType GetUnwindLibType(const llvm::opt::ArgList & Args) const
- public virtual bool HasNativeLLVMSupport() const
- public virtual bool IsAArch64OutlineAtomicsDefault(const llvm::opt::ArgList & Args) const
- public virtual bool IsBlocksDefault() const
- public virtual bool IsEncodeExtendedBlockSignatureDefault() const
- public virtual bool IsIntegratedAssemblerDefault() const
- public virtual bool IsIntegratedBackendDefault() const
- public virtual bool IsIntegratedBackendSupported() const
- public virtual bool IsMathErrnoDefault() const
- public virtual bool IsNonIntegratedBackendSupported() const
- public virtual bool IsObjCNonFragileABIDefault() const
- public virtual bool IsUnwindTablesDefault(const llvm::opt::ArgList & Args) const
- public virtual types::ID LookupTypeForExtension(llvm::StringRef Ext) const
- public virtual clang::driver::Tool * SelectTool(const clang::driver::JobAction & JA) const
- public bool ShouldLinkCXXStdlib(const llvm::opt::ArgList & Args) const
- public virtual bool SupportsEmbeddedBitcode() const
- public virtual bool SupportsProfiling() const
- protected ToolChain(const clang::driver::Driver & D, const llvm::Triple & T, const llvm::opt::ArgList & Args)
- public virtual llvm::opt::DerivedArgList * TranslateArgs(const llvm::opt::DerivedArgList & Args, llvm::StringRef BoundArch, Action::OffloadKind DeviceOffloadKind) const
- public virtual llvm::opt::DerivedArgList * TranslateOpenMPTargetArgs(const llvm::opt::DerivedArgList & Args, bool SameTripleAsHost, SmallVectorImpl<llvm::opt::Arg *> & AllocatedArgs) const
- public virtual void TranslateXarchArgs(const llvm::opt::DerivedArgList & Args, llvm::opt::Arg *& A, llvm::opt::DerivedArgList * DAL, SmallVectorImpl<llvm::opt::Arg *> * AllocatedArgs = nullptr) const
- public virtual llvm::opt::DerivedArgList * TranslateXarchArgs(const llvm::opt::DerivedArgList & Args, llvm::StringRef BoundArch, Action::OffloadKind DeviceOffloadKind, SmallVectorImpl<llvm::opt::Arg *> * AllocatedArgs) const
- public virtual bool UseDwarfDebugFlags() const
- public virtual bool UseObjCMixedDispatch() const
- public virtual void addClangTargetOptions(const llvm::opt::ArgList & DriverArgs, llvm::opt::ArgStringList & CC1Args, Action::OffloadKind DeviceOffloadKind) const
- public virtual void addClangWarningOptions(llvm::opt::ArgStringList & CC1Args) const
- protected static void addExternCSystemInclude(const llvm::opt::ArgList & DriverArgs, llvm::opt::ArgStringList & CC1Args, const llvm::Twine & Path)
- protected static void addExternCSystemIncludeIfExists(const llvm::opt::ArgList & DriverArgs, llvm::opt::ArgStringList & CC1Args, const llvm::Twine & Path)
- public bool addFastMathRuntimeIfAvailable(const llvm::opt::ArgList & Args, llvm::opt::ArgStringList & CmdArgs) const
- public virtual void addProfileRTLibs(const llvm::opt::ArgList & Args, llvm::opt::ArgStringList & CmdArgs) const
- protected static void addSystemInclude(const llvm::opt::ArgList & DriverArgs, llvm::opt::ArgStringList & CC1Args, const llvm::Twine & Path)
- protected static void addSystemIncludes(const llvm::opt::ArgList & DriverArgs, llvm::opt::ArgStringList & CC1Args, ArrayRef<llvm::StringRef> Paths)
- public virtual void adjustDebugInfoKind(codegenoptions::DebugInfoKind & DebugInfoKind, const llvm::opt::ArgList & Args) const
- protected virtual clang::driver::Tool * buildAssembler() const
- protected virtual std::string buildCompilerRTBasename(const llvm::opt::ArgList & Args, llvm::StringRef Component, clang::driver::ToolChain::FileType Type, bool AddArch) const
- protected virtual clang::driver::Tool * buildLinker() const
- protected virtual clang::driver::Tool * buildStaticLibTool() const
- public virtual bool canSplitThinLTOUnit() const
- public virtual llvm::VersionTuple computeMSVCVersion(const clang::driver::Driver * D, const llvm::opt::ArgList & Args) const
- public virtual std::string computeSysRoot() const
- protected static std::string concat(llvm::StringRef Path, const llvm::Twine & A, const llvm::Twine & B = "", const llvm::Twine & C = "", const llvm::Twine & D = "")
- public bool defaultToIEEELongDouble() const
- public virtual std::string detectLibcxxVersion(llvm::StringRef IncludePath) const
- public llvm::Triple::ArchType getArch() const
- public llvm::StringRef getArchName() const
- public std::string getArchSpecificLibPath() const
- private clang::driver::Tool * getAssemble() const
- public virtual const llvm::Triple * getAuxTriple() const
- private clang::driver::Tool * getClang() const
- private clang::driver::Tool * getClangAs() const
- public virtual std::string getCompilerRT(const llvm::opt::ArgList & Args, llvm::StringRef Component, clang::driver::ToolChain::FileType Type = ToolChain::FT_Static) const
- public const char * getCompilerRTArgString(const llvm::opt::ArgList & Args, llvm::StringRef Component, clang::driver::ToolChain::FileType Type = ToolChain::FT_Static) const
- public std::string getCompilerRTBasename(const llvm::opt::ArgList & Args, llvm::StringRef Component, clang::driver::ToolChain::FileType Type = ToolChain::FT_Static) const
- public virtual std::string getCompilerRTPath() const
- public virtual codegenoptions::DebugInfoFormat getDefaultDebugFormat() const
- public virtual llvm::DebuggerKind getDefaultDebuggerTuning() const
- public virtual llvm::DenormalMode getDefaultDenormalModeForType(const llvm::opt::ArgList & DriverArgs, const clang::driver::JobAction & JA, const llvm::fltSemantics * FPType = nullptr) const
- public virtual const char * getDefaultLinker() const
- public virtual clang::ObjCRuntime getDefaultObjCRuntime(bool isNonFragile) const
- public virtual clang::SanitizerMask getDefaultSanitizers() const
- public llvm::StringRef getDefaultUniversalArchName() const
- public const clang::driver::Driver & getDriver() const
- public const llvm::Triple & getEffectiveTriple() const
- public clang::driver::ToolChain::path_list & getFilePaths()
- public const clang::driver::ToolChain::path_list & getFilePaths() const
- private clang::driver::Tool * getFlang() const
- public virtual llvm::SmallVector<BitCodeLibraryInfo, 12> getHIPDeviceLibs(const llvm::opt::ArgList & Args) const
- private clang::driver::Tool * getIfsMerge() const
- public virtual std::string getInputFilename(const clang::driver::InputInfo & Input) const
- public const clang::driver::ToolChain::path_list & getLibraryPaths() const
- public clang::driver::ToolChain::path_list & getLibraryPaths()
- private clang::driver::Tool * getLink() const
- private clang::driver::Tool * getLinkerWrapper() const
- public virtual unsigned int getMaxDwarfVersion() const
- public virtual std::string getMultiarchTriple(const clang::driver::Driver & D, const llvm::Triple & TargetTriple, llvm::StringRef SysRoot) const
- public const clang::driver::Multilib & getMultilib() const
- public const clang::driver::MultilibSet & getMultilibs() const
- public llvm::StringRef getOS() const
- public virtual llvm::StringRef getOSLibName() const
- private clang::driver::Tool * getOffloadBundler() const
- private clang::driver::Tool * getOffloadPackager() const
- private clang::driver::Tool * getOffloadWrapper() const
- public static llvm::Triple getOpenMPTriple(llvm::StringRef TripleStr)
- public llvm::StringRef getPlatform() const
- public const clang::driver::ToolChain::path_list & getProgramPaths() const
- public clang::driver::ToolChain::path_list & getProgramPaths()
- public const llvm::opt::Arg * getRTTIArg() const
- public clang::driver::ToolChain::RTTIMode getRTTIMode() const
- public clang::driver::ToolChain::path_list getRuntimePaths() const
- public clang::driver::SanitizerArgs getSanitizerArgs(const llvm::opt::ArgList & JobArgs) const
- private clang::driver::Tool * getStaticLibTool() const
- public clang::driver::ToolChain::path_list getStdlibPaths() const
- public virtual clang::SanitizerMask getSupportedSanitizers() const
- public static clang::driver::ParsedClangName getTargetAndModeFromProgramName(llvm::StringRef ProgName)
- public virtual Optional<llvm::Triple> getTargetVariantTriple() const
- public virtual std::string getThreadModel() const
- protected virtual clang::driver::Tool * getTool(Action::ActionClass AC) const
- public const llvm::Triple & getTriple() const
- public std::string getTripleString() const
- public llvm::vfs::FileSystem & getVFS() const
- public const clang::driver::XRayArgs & getXRayArgs() const
- public virtual bool hasBlocksRuntime() const
- public virtual bool isCrossCompiling() const
- public virtual bool isFastMathRuntimeAvailable(const llvm::opt::ArgList & Args, std::string & Path) const
- public virtual bool isPICDefault() const
- public virtual bool isPICDefaultForced() const
- public virtual bool isPIEDefault(const llvm::opt::ArgList & Args) const
- public virtual bool isThreadModelSupported(const llvm::StringRef Model) const
- public static bool needsGCovInstrumentation(const llvm::opt::ArgList & Args)
- public static bool needsProfileRT(const llvm::opt::ArgList & Args)
- public virtual bool parseInlineAsmUsingAsmParser() const
- public virtual void printVerboseInfo(llvm::raw_ostream & OS) const
- private void setEffectiveTriple(llvm::Triple ET) const
- protected void setTripleEnvironment(llvm::Triple::EnvironmentType Env)
- public virtual bool supportsDebugInfoOption(const llvm::opt::Arg *) const
- public virtual bool useIntegratedAs() const
- public virtual bool useIntegratedBackend() const
- public virtual bool useRelaxRelocations() const
- public virtual ~ToolChain()
Methods
¶virtual void AddCCKextLibArgs(
const llvm::opt::ArgList& Args,
llvm::opt::ArgStringList& CmdArgs) const
virtual void AddCCKextLibArgs(
const llvm::opt::ArgList& Args,
llvm::opt::ArgStringList& CmdArgs) const
Description
AddCCKextLibArgs - Add the system specific linker arguments to use for kernel extensions (Darwin-specific).
Declared at: clang/include/clang/Driver/ToolChain.h:674
Parameters
- const llvm::opt::ArgList& Args
- llvm::opt::ArgStringList& CmdArgs
¶virtual void AddCXXStdlibLibArgs(
const llvm::opt::ArgList& Args,
llvm::opt::ArgStringList& CmdArgs) const
virtual void AddCXXStdlibLibArgs(
const llvm::opt::ArgList& Args,
llvm::opt::ArgStringList& CmdArgs) const
Description
AddCXXStdlibLibArgs - Add the system specific linker arguments to use for the given C++ standard library type.
Declared at: clang/include/clang/Driver/ToolChain.h:665
Parameters
- const llvm::opt::ArgList& Args
- llvm::opt::ArgStringList& CmdArgs
¶virtual void AddClangCXXStdlibIncludeArgs(
const llvm::opt::ArgList& DriverArgs,
llvm::opt::ArgStringList& CC1Args) const
virtual void AddClangCXXStdlibIncludeArgs(
const llvm::opt::ArgList& DriverArgs,
llvm::opt::ArgStringList& CC1Args) const
Description
AddClangCXXStdlibIncludeArgs - Add the clang -cc1 level arguments to set the include paths to use for the given C++ standard library type.
Declared at: clang/include/clang/Driver/ToolChain.h:651
Parameters
- const llvm::opt::ArgList& DriverArgs
- llvm::opt::ArgStringList& CC1Args
¶void AddClangCXXStdlibIsystemArgs(
const llvm::opt::ArgList& DriverArgs,
llvm::opt::ArgStringList& CC1Args) const
void AddClangCXXStdlibIsystemArgs(
const llvm::opt::ArgList& DriverArgs,
llvm::opt::ArgStringList& CC1Args) const
Description
AddClangCXXStdlibIsystemArgs - Add the clang -cc1 level arguments to set the specified include paths for the C++ standard library.
Declared at: clang/include/clang/Driver/ToolChain.h:656
Parameters
- const llvm::opt::ArgList& DriverArgs
- llvm::opt::ArgStringList& CC1Args
¶virtual void AddClangSystemIncludeArgs(
const llvm::opt::ArgList& DriverArgs,
llvm::opt::ArgStringList& CC1Args) const
virtual void AddClangSystemIncludeArgs(
const llvm::opt::ArgList& DriverArgs,
llvm::opt::ArgStringList& CC1Args) const
Description
Add the clang cc1 arguments for system include paths. This routine is responsible for adding the necessary cc1 arguments to include headers from standard system header directories.
Declared at: clang/include/clang/Driver/ToolChain.h:621
Parameters
- const llvm::opt::ArgList& DriverArgs
- llvm::opt::ArgStringList& CC1Args
¶virtual void AddCudaIncludeArgs(
const llvm::opt::ArgList& DriverArgs,
llvm::opt::ArgStringList& CC1Args) const
virtual void AddCudaIncludeArgs(
const llvm::opt::ArgList& DriverArgs,
llvm::opt::ArgStringList& CC1Args) const
Description
Add arguments to use system-specific CUDA includes.
Declared at: clang/include/clang/Driver/ToolChain.h:697
Parameters
- const llvm::opt::ArgList& DriverArgs
- llvm::opt::ArgStringList& CC1Args
¶void AddFilePathLibArgs(
const llvm::opt::ArgList& Args,
llvm::opt::ArgStringList& CmdArgs) const
void AddFilePathLibArgs(
const llvm::opt::ArgList& Args,
llvm::opt::ArgStringList& CmdArgs) const
Description
AddFilePathLibArgs - Add each thing in getFilePaths() as a "-L" option.
Declared at: clang/include/clang/Driver/ToolChain.h:669
Parameters
- const llvm::opt::ArgList& Args
- llvm::opt::ArgStringList& CmdArgs
¶virtual void AddHIPIncludeArgs(
const llvm::opt::ArgList& DriverArgs,
llvm::opt::ArgStringList& CC1Args) const
virtual void AddHIPIncludeArgs(
const llvm::opt::ArgList& DriverArgs,
llvm::opt::ArgStringList& CC1Args) const
Description
Add arguments to use system-specific HIP includes.
Declared at: clang/include/clang/Driver/ToolChain.h:701
Parameters
- const llvm::opt::ArgList& DriverArgs
- llvm::opt::ArgStringList& CC1Args
¶virtual void AddHIPRuntimeLibArgs(
const llvm::opt::ArgList& Args,
llvm::opt::ArgStringList& CmdArgs) const
virtual void AddHIPRuntimeLibArgs(
const llvm::opt::ArgList& Args,
llvm::opt::ArgStringList& CmdArgs) const
Description
Add the system specific linker arguments to use for the given HIP runtime library type.
Declared at: clang/include/clang/Driver/ToolChain.h:718
Parameters
- const llvm::opt::ArgList& Args
- llvm::opt::ArgStringList& CmdArgs
¶virtual void AddIAMCUIncludeArgs(
const llvm::opt::ArgList& DriverArgs,
llvm::opt::ArgStringList& CC1Args) const
virtual void AddIAMCUIncludeArgs(
const llvm::opt::ArgList& DriverArgs,
llvm::opt::ArgStringList& CC1Args) const
Description
Add arguments to use MCU GCC toolchain includes.
Declared at: clang/include/clang/Driver/ToolChain.h:705
Parameters
- const llvm::opt::ArgList& DriverArgs
- llvm::opt::ArgStringList& CC1Args
¶virtual void CheckObjCARC() const
virtual void CheckObjCARC() const
Description
Complain if this tool chain doesn't support Objective-C ARC.
Declared at: clang/include/clang/Driver/ToolChain.h:522
¶virtual std::string ComputeEffectiveClangTriple(
const llvm::opt::ArgList& Args,
types::ID InputType = types::TY_INVALID) const
virtual std::string ComputeEffectiveClangTriple(
const llvm::opt::ArgList& Args,
types::ID InputType = types::TY_INVALID) const
Description
ComputeEffectiveClangTriple - Return the Clang triple to use for this target, which may take into account the command line arguments. For example, on Darwin the -mmacosx-version-min= command line argument (which sets the deployment target) determines the version in the triple passed to Clang.
Declared at: clang/include/clang/Driver/ToolChain.h:595
Parameters
- const llvm::opt::ArgList& Args
- types::ID InputType = types::TY_INVALID
¶virtual std::string ComputeLLVMTriple(
const llvm::opt::ArgList& Args,
types::ID InputType = types::TY_INVALID) const
virtual std::string ComputeLLVMTriple(
const llvm::opt::ArgList& Args,
types::ID InputType = types::TY_INVALID) const
Description
ComputeLLVMTriple - Return the LLVM target triple to use, after taking command line arguments into account.
Declared at: clang/include/clang/Driver/ToolChain.h:587
Parameters
- const llvm::opt::ArgList& Args
- types::ID InputType = types::TY_INVALID
¶virtual clang::driver::ToolChain::CXXStdlibType
GetCXXStdlibType(
const llvm::opt::ArgList& Args) const
virtual clang::driver::ToolChain::CXXStdlibType
GetCXXStdlibType(
const llvm::opt::ArgList& Args) const
Declared at: clang/include/clang/Driver/ToolChain.h:639
Parameters
- const llvm::opt::ArgList& Args
¶virtual clang::driver::ToolChain::CXXStdlibType
GetDefaultCXXStdlibType() const
virtual clang::driver::ToolChain::CXXStdlibType
GetDefaultCXXStdlibType() const
Declared at: clang/include/clang/Driver/ToolChain.h:455
¶virtual unsigned int GetDefaultDwarfVersion()
const
virtual unsigned int GetDefaultDwarfVersion()
const
Declared at: clang/include/clang/Driver/ToolChain.h:538
¶virtual clang::driver::ToolChain::RuntimeLibType
GetDefaultRuntimeLibType() const
virtual clang::driver::ToolChain::RuntimeLibType
GetDefaultRuntimeLibType() const
Description
GetDefaultRuntimeLibType - Get the default runtime library variant to use.
Declared at: clang/include/clang/Driver/ToolChain.h:451
¶virtual LangOptions::StackProtectorMode
GetDefaultStackProtectorLevel(
bool KernelOrKext) const
virtual LangOptions::StackProtectorMode
GetDefaultStackProtectorLevel(
bool KernelOrKext) const
Description
GetDefaultStackProtectorLevel - Get the default stack protector level for this tool chain.
Declared at: clang/include/clang/Driver/ToolChain.h:437
Parameters
- bool KernelOrKext
¶virtual bool GetDefaultStandaloneDebug() const
virtual bool GetDefaultStandaloneDebug() const
Declared at: clang/include/clang/Driver/ToolChain.h:549
¶virtual LangOptions::TrivialAutoVarInitKind
GetDefaultTrivialAutoVarInit() const
virtual LangOptions::TrivialAutoVarInitKind
GetDefaultTrivialAutoVarInit() const
Description
Get the default trivial automatic variable initialization.
Declared at: clang/include/clang/Driver/ToolChain.h:443
¶virtual clang::driver::ToolChain::UnwindLibType
GetDefaultUnwindLibType() const
virtual clang::driver::ToolChain::UnwindLibType
GetDefaultUnwindLibType() const
Declared at: clang/include/clang/Driver/ToolChain.h:459
¶virtual llvm::ExceptionHandling GetExceptionModel(
const llvm::opt::ArgList& Args) const
virtual llvm::ExceptionHandling GetExceptionModel(
const llvm::opt::ArgList& Args) const
Description
GetExceptionModel - Return the tool chain exception model.
Declared at: clang/include/clang/Driver/ToolChain.h:567
Parameters
- const llvm::opt::ArgList& Args
¶std::string GetFilePath(const char* Name) const
std::string GetFilePath(const char* Name) const
Declared at: clang/include/clang/Driver/ToolChain.h:349
Parameters
- const char* Name
¶virtual std::string GetGlobalDebugPathRemapping()
const
virtual std::string GetGlobalDebugPathRemapping()
const
Description
Add an additional -fdebug-prefix-map entry.
Declared at: clang/include/clang/Driver/ToolChain.h:534
¶std::string GetLinkerPath(
bool* LinkerIsLLD = nullptr) const
std::string GetLinkerPath(
bool* LinkerIsLLD = nullptr) const
Description
Returns the linker path, respecting the -fuse-ld= argument to determine the linker suffix or name. If LinkerIsLLD is non-nullptr, it is set to true if the returned linker is LLD. If it's set, it can be assumed that the linker is LLD built at the same revision as clang, and clang can make assumptions about LLD's supported flags, error output, etc.
Declared at: clang/include/clang/Driver/ToolChain.h:358
Parameters
- bool* LinkerIsLLD = nullptr
¶std::string GetProgramPath(const char* Name) const
std::string GetProgramPath(const char* Name) const
Declared at: clang/include/clang/Driver/ToolChain.h:350
Parameters
- const char* Name
¶virtual clang::driver::ToolChain::RuntimeLibType
GetRuntimeLibType(
const llvm::opt::ArgList& Args) const
virtual clang::driver::ToolChain::RuntimeLibType
GetRuntimeLibType(
const llvm::opt::ArgList& Args) const
Declared at: clang/include/clang/Driver/ToolChain.h:635
Parameters
- const llvm::opt::ArgList& Args
¶std::string GetStaticLibToolPath() const
std::string GetStaticLibToolPath() const
Description
Returns the linker path for emitting a static library.
Declared at: clang/include/clang/Driver/ToolChain.h:361
¶virtual clang::driver::ToolChain::UnwindLibType
GetUnwindLibType(
const llvm::opt::ArgList& Args) const
virtual clang::driver::ToolChain::UnwindLibType
GetUnwindLibType(
const llvm::opt::ArgList& Args) const
Declared at: clang/include/clang/Driver/ToolChain.h:643
Parameters
- const llvm::opt::ArgList& Args
¶virtual bool HasNativeLLVMSupport() const
virtual bool HasNativeLLVMSupport() const
Description
HasNativeLTOLinker - Check whether the linker and related tools have native LLVM support.
Declared at: clang/include/clang/Driver/ToolChain.h:378
¶virtual bool IsAArch64OutlineAtomicsDefault(
const llvm::opt::ArgList& Args) const
virtual bool IsAArch64OutlineAtomicsDefault(
const llvm::opt::ArgList& Args) const
Description
Test whether this toolchain supports outline atomics by default.
Declared at: clang/include/clang/Driver/ToolChain.h:502
Parameters
- const llvm::opt::ArgList& Args
¶virtual bool IsBlocksDefault() const
virtual bool IsBlocksDefault() const
Description
IsBlocksDefault - Does this tool chain enable -fblocks by default.
Declared at: clang/include/clang/Driver/ToolChain.h:385
¶virtual bool
IsEncodeExtendedBlockSignatureDefault() const
virtual bool
IsEncodeExtendedBlockSignatureDefault() const
Description
IsEncodeExtendedBlockSignatureDefault - Does this tool chain enable -fencode-extended-block-signature by default.
Declared at: clang/include/clang/Driver/ToolChain.h:418
¶virtual bool IsIntegratedAssemblerDefault() const
virtual bool IsIntegratedAssemblerDefault() const
Description
IsIntegratedAssemblerDefault - Does this tool chain enable -integrated-as by default.
Declared at: clang/include/clang/Driver/ToolChain.h:389
¶virtual bool IsIntegratedBackendDefault() const
virtual bool IsIntegratedBackendDefault() const
Description
IsIntegratedBackendDefault - Does this tool chain enable -fintegrated-objemitter by default.
Declared at: clang/include/clang/Driver/ToolChain.h:393
¶virtual bool IsIntegratedBackendSupported() const
virtual bool IsIntegratedBackendSupported() const
Description
IsIntegratedBackendSupported - Does this tool chain support -fintegrated-objemitter.
Declared at: clang/include/clang/Driver/ToolChain.h:397
¶virtual bool IsMathErrnoDefault() const
virtual bool IsMathErrnoDefault() const
Description
IsMathErrnoDefault - Does this tool chain use -fmath-errno by default.
Declared at: clang/include/clang/Driver/ToolChain.h:414
¶virtual bool IsNonIntegratedBackendSupported()
const
virtual bool IsNonIntegratedBackendSupported()
const
Description
IsNonIntegratedBackendSupported - Does this tool chain support -fno-integrated-objemitter.
Declared at: clang/include/clang/Driver/ToolChain.h:401
¶virtual bool IsObjCNonFragileABIDefault() const
virtual bool IsObjCNonFragileABIDefault() const
Description
IsObjCNonFragileABIDefault - Does this tool chain set -fobjc-nonfragile-abi by default.
Declared at: clang/include/clang/Driver/ToolChain.h:422
¶virtual bool IsUnwindTablesDefault(
const llvm::opt::ArgList& Args) const
virtual bool IsUnwindTablesDefault(
const llvm::opt::ArgList& Args) const
Description
IsUnwindTablesDefault - Does this tool chain use -funwind-tables by default.
Declared at: clang/include/clang/Driver/ToolChain.h:498
Parameters
- const llvm::opt::ArgList& Args
¶virtual types::ID LookupTypeForExtension(
llvm::StringRef Ext) const
virtual types::ID LookupTypeForExtension(
llvm::StringRef Ext) const
Description
LookupTypeForExtension - Return the default language type to use for the given extension.
Declared at: clang/include/clang/Driver/ToolChain.h:382
Parameters
- llvm::StringRef Ext
¶virtual clang::driver::Tool* SelectTool(
const clang::driver::JobAction& JA) const
virtual clang::driver::Tool* SelectTool(
const clang::driver::JobAction& JA) const
Description
Choose a tool to use to handle the action \p JA. This can be overridden when a particular ToolChain needs to use a compiler other than Clang.
Declared at: clang/include/clang/Driver/ToolChain.h:345
Parameters
- const clang::driver::JobAction& JA
¶bool ShouldLinkCXXStdlib(
const llvm::opt::ArgList& Args) const
bool ShouldLinkCXXStdlib(
const llvm::opt::ArgList& Args) const
Description
Returns if the C++ standard library should be linked in. Note that e.g. -lm should still be linked even if this returns false.
Declared at: clang/include/clang/Driver/ToolChain.h:661
Parameters
- const llvm::opt::ArgList& Args
¶virtual bool SupportsEmbeddedBitcode() const
virtual bool SupportsEmbeddedBitcode() const
Description
SupportsEmbeddedBitcode - Does this tool chain support embedded bitcode.
Declared at: clang/include/clang/Driver/ToolChain.h:570
¶virtual bool SupportsProfiling() const
virtual bool SupportsProfiling() const
Description
SupportsProfiling - Does this tool chain support -pg.
Declared at: clang/include/clang/Driver/ToolChain.h:519
¶ToolChain(const clang::driver::Driver& D,
const llvm::Triple& T,
const llvm::opt::ArgList& Args)
ToolChain(const clang::driver::Driver& D,
const llvm::Triple& T,
const llvm::opt::ArgList& Args)
Declared at: clang/include/clang/Driver/ToolChain.h:188
Parameters
- const clang::driver::Driver& D
- const llvm::Triple& T
- const llvm::opt::ArgList& Args
¶virtual llvm::opt::DerivedArgList* TranslateArgs(
const llvm::opt::DerivedArgList& Args,
llvm::StringRef BoundArch,
Action::OffloadKind DeviceOffloadKind) const
virtual llvm::opt::DerivedArgList* TranslateArgs(
const llvm::opt::DerivedArgList& Args,
llvm::StringRef BoundArch,
Action::OffloadKind DeviceOffloadKind) const
Description
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. If \p DeviceOffloadKind is specified the translation specific for that offload kind is performed.
Declared at: clang/include/clang/Driver/ToolChain.h:313
Parameters
- const llvm::opt::DerivedArgList& Args
- llvm::StringRef BoundArch
- - The bound architecture name, or 0.
- Action::OffloadKind DeviceOffloadKind
- - The device offload kind used for the translation.
¶virtual llvm::opt::DerivedArgList*
TranslateOpenMPTargetArgs(
const llvm::opt::DerivedArgList& Args,
bool SameTripleAsHost,
SmallVectorImpl<llvm::opt::Arg*>&
AllocatedArgs) const
virtual llvm::opt::DerivedArgList*
TranslateOpenMPTargetArgs(
const llvm::opt::DerivedArgList& Args,
bool SameTripleAsHost,
SmallVectorImpl<llvm::opt::Arg*>&
AllocatedArgs) const
Description
TranslateOpenMPTargetArgs - Create a new derived argument list for that contains the OpenMP target specific flags passed via -Xopenmp-target -opt=val OR -Xopenmp-target= <triple > -opt=val
Declared at: clang/include/clang/Driver/ToolChain.h:321
Parameters
- const llvm::opt::DerivedArgList& Args
- bool SameTripleAsHost
- SmallVectorImpl<llvm::opt::Arg*>& AllocatedArgs
¶virtual void TranslateXarchArgs(
const llvm::opt::DerivedArgList& Args,
llvm::opt::Arg*& A,
llvm::opt::DerivedArgList* DAL,
SmallVectorImpl<llvm::opt::Arg*>*
AllocatedArgs = nullptr) const
virtual void TranslateXarchArgs(
const llvm::opt::DerivedArgList& Args,
llvm::opt::Arg*& A,
llvm::opt::DerivedArgList* DAL,
SmallVectorImpl<llvm::opt::Arg*>*
AllocatedArgs = nullptr) const
Description
Append the argument following \p A to \p DAL assuming \p A is an Xarch argument. If \p AllocatedArgs is null pointer, synthesized arguments are added to \p DAL, otherwise they are appended to \p AllocatedArgs.
Declared at: clang/include/clang/Driver/ToolChain.h:328
Parameters
- const llvm::opt::DerivedArgList& Args
- llvm::opt::Arg*& A
- llvm::opt::DerivedArgList* DAL
- SmallVectorImpl<llvm::opt::Arg*>* AllocatedArgs = nullptr
¶virtual llvm::opt::DerivedArgList*
TranslateXarchArgs(
const llvm::opt::DerivedArgList& Args,
llvm::StringRef BoundArch,
Action::OffloadKind DeviceOffloadKind,
SmallVectorImpl<llvm::opt::Arg*>*
AllocatedArgs) const
virtual llvm::opt::DerivedArgList*
TranslateXarchArgs(
const llvm::opt::DerivedArgList& Args,
llvm::StringRef BoundArch,
Action::OffloadKind DeviceOffloadKind,
SmallVectorImpl<llvm::opt::Arg*>*
AllocatedArgs) const
Description
Translate -Xarch_ arguments. If there are no such arguments, return a null pointer, otherwise return a DerivedArgList containing the translated arguments.
Declared at: clang/include/clang/Driver/ToolChain.h:337
Parameters
- const llvm::opt::DerivedArgList& Args
- llvm::StringRef BoundArch
- Action::OffloadKind DeviceOffloadKind
- SmallVectorImpl<llvm::opt::Arg*>* AllocatedArgs
¶virtual bool UseDwarfDebugFlags() const
virtual bool UseDwarfDebugFlags() const
Description
UseDwarfDebugFlags - Embed the compile options to clang into the Dwarf compile unit information.
Declared at: clang/include/clang/Driver/ToolChain.h:531
¶virtual bool UseObjCMixedDispatch() const
virtual bool UseObjCMixedDispatch() const
Description
UseObjCMixedDispatchDefault - When using non-legacy dispatch, should the mixed dispatch method be used?
Declared at: clang/include/clang/Driver/ToolChain.h:426
¶virtual void addClangTargetOptions(
const llvm::opt::ArgList& DriverArgs,
llvm::opt::ArgStringList& CC1Args,
Action::OffloadKind DeviceOffloadKind) const
virtual void addClangTargetOptions(
const llvm::opt::ArgList& DriverArgs,
llvm::opt::ArgStringList& CC1Args,
Action::OffloadKind DeviceOffloadKind) const
Description
Add options that need to be passed to cc1 for this target.
Declared at: clang/include/clang/Driver/ToolChain.h:625
Parameters
- const llvm::opt::ArgList& DriverArgs
- llvm::opt::ArgStringList& CC1Args
- Action::OffloadKind DeviceOffloadKind
¶virtual void addClangWarningOptions(
llvm::opt::ArgStringList& CC1Args) const
virtual void addClangWarningOptions(
llvm::opt::ArgStringList& CC1Args) const
Description
Add warning options that need to be passed to cc1 for this target.
Declared at: clang/include/clang/Driver/ToolChain.h:630
Parameters
- llvm::opt::ArgStringList& CC1Args
¶static void addExternCSystemInclude(
const llvm::opt::ArgList& DriverArgs,
llvm::opt::ArgStringList& CC1Args,
const llvm::Twine& Path)
static void addExternCSystemInclude(
const llvm::opt::ArgList& DriverArgs,
llvm::opt::ArgStringList& CC1Args,
const llvm::Twine& Path)
Declared at: clang/include/clang/Driver/ToolChain.h:208
Parameters
- const llvm::opt::ArgList& DriverArgs
- llvm::opt::ArgStringList& CC1Args
- const llvm::Twine& Path
¶static void addExternCSystemIncludeIfExists(
const llvm::opt::ArgList& DriverArgs,
llvm::opt::ArgStringList& CC1Args,
const llvm::Twine& Path)
static void addExternCSystemIncludeIfExists(
const llvm::opt::ArgList& DriverArgs,
llvm::opt::ArgStringList& CC1Args,
const llvm::Twine& Path)
Declared at: clang/include/clang/Driver/ToolChain.h:212
Parameters
- const llvm::opt::ArgList& DriverArgs
- llvm::opt::ArgStringList& CC1Args
- const llvm::Twine& Path
¶bool addFastMathRuntimeIfAvailable(
const llvm::opt::ArgList& Args,
llvm::opt::ArgStringList& CmdArgs) const
bool addFastMathRuntimeIfAvailable(
const llvm::opt::ArgList& Args,
llvm::opt::ArgStringList& CmdArgs) const
Description
AddFastMathRuntimeIfAvailable - If a runtime library exists that sets global flags for unsafe floating point math, add it and return true. This checks for presence of the -Ofast, -ffast-math or -funsafe-math flags.
Declared at: clang/include/clang/Driver/ToolChain.h:688
Parameters
- const llvm::opt::ArgList& Args
- llvm::opt::ArgStringList& CmdArgs
¶virtual void addProfileRTLibs(
const llvm::opt::ArgList& Args,
llvm::opt::ArgStringList& CmdArgs) const
virtual void addProfileRTLibs(
const llvm::opt::ArgList& Args,
llvm::opt::ArgStringList& CmdArgs) const
Description
addProfileRTLibs - When -fprofile-instr-profile is specified, try to pass a suitable profile runtime library to the linker.
Declared at: clang/include/clang/Driver/ToolChain.h:693
Parameters
- const llvm::opt::ArgList& Args
- llvm::opt::ArgStringList& CmdArgs
¶static void addSystemInclude(
const llvm::opt::ArgList& DriverArgs,
llvm::opt::ArgStringList& CC1Args,
const llvm::Twine& Path)
static void addSystemInclude(
const llvm::opt::ArgList& DriverArgs,
llvm::opt::ArgStringList& CC1Args,
const llvm::Twine& Path)
Description
@ {
Declared at: clang/include/clang/Driver/ToolChain.h:205
Parameters
- const llvm::opt::ArgList& DriverArgs
- llvm::opt::ArgStringList& CC1Args
- const llvm::Twine& Path
¶static void addSystemIncludes(
const llvm::opt::ArgList& DriverArgs,
llvm::opt::ArgStringList& CC1Args,
ArrayRef<llvm::StringRef> Paths)
static void addSystemIncludes(
const llvm::opt::ArgList& DriverArgs,
llvm::opt::ArgStringList& CC1Args,
ArrayRef<llvm::StringRef> Paths)
Declared at: clang/include/clang/Driver/ToolChain.h:215
Parameters
- const llvm::opt::ArgList& DriverArgs
- llvm::opt::ArgStringList& CC1Args
- ArrayRef<llvm::StringRef> Paths
¶virtual void adjustDebugInfoKind(
codegenoptions::DebugInfoKind& DebugInfoKind,
const llvm::opt::ArgList& Args) const
virtual void adjustDebugInfoKind(
codegenoptions::DebugInfoKind& DebugInfoKind,
const llvm::opt::ArgList& Args) const
Description
Adjust debug information kind considering all passed options.
Declared at: clang/include/clang/Driver/ToolChain.h:562
Parameters
- codegenoptions::DebugInfoKind& DebugInfoKind
- const llvm::opt::ArgList& Args
¶virtual clang::driver::Tool* buildAssembler()
const
virtual clang::driver::Tool* buildAssembler()
const
Declared at: clang/include/clang/Driver/ToolChain.h:193
¶virtual std::string buildCompilerRTBasename(
const llvm::opt::ArgList& Args,
llvm::StringRef Component,
clang::driver::ToolChain::FileType Type,
bool AddArch) const
virtual std::string buildCompilerRTBasename(
const llvm::opt::ArgList& Args,
llvm::StringRef Component,
clang::driver::ToolChain::FileType Type,
bool AddArch) const
Declared at: clang/include/clang/Driver/ToolChain.h:198
Parameters
- const llvm::opt::ArgList& Args
- llvm::StringRef Component
- clang::driver::ToolChain::FileType Type
- bool AddArch
¶virtual clang::driver::Tool* buildLinker() const
virtual clang::driver::Tool* buildLinker() const
Declared at: clang/include/clang/Driver/ToolChain.h:194
¶virtual clang::driver::Tool* buildStaticLibTool()
const
virtual clang::driver::Tool* buildStaticLibTool()
const
Declared at: clang/include/clang/Driver/ToolChain.h:195
¶virtual bool canSplitThinLTOUnit() const
virtual bool canSplitThinLTOUnit() const
Description
Returns true when it's possible to split LTO unit to use whole program devirtualization and CFI santiizers.
Declared at: clang/include/clang/Driver/ToolChain.h:731
¶virtual llvm::VersionTuple computeMSVCVersion(
const clang::driver::Driver* D,
const llvm::opt::ArgList& Args) const
virtual llvm::VersionTuple computeMSVCVersion(
const clang::driver::Driver* D,
const llvm::opt::ArgList& Args) const
Description
On Windows, returns the MSVC compatibility version.
Declared at: clang/include/clang/Driver/ToolChain.h:709
Parameters
- const clang::driver::Driver* D
- const llvm::opt::ArgList& Args
¶virtual std::string computeSysRoot() const
virtual std::string computeSysRoot() const
Description
Return the sysroot, possibly searching for a default sysroot using target-specific logic.
Declared at: clang/include/clang/Driver/ToolChain.h:614
¶static std::string concat(
llvm::StringRef Path,
const llvm::Twine& A,
const llvm::Twine& B = "",
const llvm::Twine& C = "",
const llvm::Twine& D = "")
static std::string concat(
llvm::StringRef Path,
const llvm::Twine& A,
const llvm::Twine& B = "",
const llvm::Twine& C = "",
const llvm::Twine& D = "")
Declared at: clang/include/clang/Driver/ToolChain.h:219
Parameters
- llvm::StringRef Path
- const llvm::Twine& A
- const llvm::Twine& B = ""
- const llvm::Twine& C = ""
- const llvm::Twine& D = ""
¶bool defaultToIEEELongDouble() const
bool defaultToIEEELongDouble() const
Description
Check whether use IEEE binary128 as long double format by default.
Declared at: clang/include/clang/Driver/ToolChain.h:432
¶virtual std::string detectLibcxxVersion(
llvm::StringRef IncludePath) const
virtual std::string detectLibcxxVersion(
llvm::StringRef IncludePath) const
Declared at: clang/include/clang/Driver/ToolChain.h:646
Parameters
- llvm::StringRef IncludePath
¶llvm::Triple::ArchType getArch() const
llvm::Triple::ArchType getArch() const
Declared at: clang/include/clang/Driver/ToolChain.h:244
¶llvm::StringRef getArchName() const
llvm::StringRef getArchName() const
Declared at: clang/include/clang/Driver/ToolChain.h:245
¶std::string getArchSpecificLibPath() const
std::string getArchSpecificLibPath() const
Declared at: clang/include/clang/Driver/ToolChain.h:485
¶clang::driver::Tool* getAssemble() const
clang::driver::Tool* getAssemble() const
Declared at: clang/include/clang/Driver/ToolChain.h:159
¶virtual const llvm::Triple* getAuxTriple() const
virtual const llvm::Triple* getAuxTriple() const
Description
Get the toolchain's aux triple, if it has one. Exactly what the aux triple represents depends on the toolchain, but for example when compiling CUDA code for the GPU, the triple might be NVPTX, while the aux triple is the host (CPU) toolchain, e.g. x86-linux-gnu.
Declared at: clang/include/clang/Driver/ToolChain.h:237
¶clang::driver::Tool* getClang() const
clang::driver::Tool* getClang() const
Declared at: clang/include/clang/Driver/ToolChain.h:157
¶clang::driver::Tool* getClangAs() const
clang::driver::Tool* getClangAs() const
Declared at: clang/include/clang/Driver/ToolChain.h:163
¶virtual std::string getCompilerRT(
const llvm::opt::ArgList& Args,
llvm::StringRef Component,
clang::driver::ToolChain::FileType Type =
ToolChain::FT_Static) const
virtual std::string getCompilerRT(
const llvm::opt::ArgList& Args,
llvm::StringRef Component,
clang::driver::ToolChain::FileType Type =
ToolChain::FT_Static) const
Declared at: clang/include/clang/Driver/ToolChain.h:465
Parameters
- const llvm::opt::ArgList& Args
- llvm::StringRef Component
- clang::driver::ToolChain::FileType Type = ToolChain::FT_Static
¶const char* getCompilerRTArgString(
const llvm::opt::ArgList& Args,
llvm::StringRef Component,
clang::driver::ToolChain::FileType Type =
ToolChain::FT_Static) const
const char* getCompilerRTArgString(
const llvm::opt::ArgList& Args,
llvm::StringRef Component,
clang::driver::ToolChain::FileType Type =
ToolChain::FT_Static) const
Declared at: clang/include/clang/Driver/ToolChain.h:470
Parameters
- const llvm::opt::ArgList& Args
- llvm::StringRef Component
- clang::driver::ToolChain::FileType Type = ToolChain::FT_Static
¶std::string getCompilerRTBasename(
const llvm::opt::ArgList& Args,
llvm::StringRef Component,
clang::driver::ToolChain::FileType Type =
ToolChain::FT_Static) const
std::string getCompilerRTBasename(
const llvm::opt::ArgList& Args,
llvm::StringRef Component,
clang::driver::ToolChain::FileType Type =
ToolChain::FT_Static) const
Declared at: clang/include/clang/Driver/ToolChain.h:473
Parameters
- const llvm::opt::ArgList& Args
- llvm::StringRef Component
- clang::driver::ToolChain::FileType Type = ToolChain::FT_Static
¶virtual std::string getCompilerRTPath() const
virtual std::string getCompilerRTPath() const
Declared at: clang/include/clang/Driver/ToolChain.h:463
¶virtual codegenoptions::DebugInfoFormat
getDefaultDebugFormat() const
virtual codegenoptions::DebugInfoFormat
getDefaultDebugFormat() const
Description
Get the default debug info format. Typically, this is DWARF.
Declared at: clang/include/clang/Driver/ToolChain.h:525
¶virtual llvm::DebuggerKind
getDefaultDebuggerTuning() const
virtual llvm::DebuggerKind
getDefaultDebuggerTuning() const
Declared at: clang/include/clang/Driver/ToolChain.h:552
¶virtual llvm::DenormalMode
getDefaultDenormalModeForType(
const llvm::opt::ArgList& DriverArgs,
const clang::driver::JobAction& JA,
const llvm::fltSemantics* FPType =
nullptr) const
virtual llvm::DenormalMode
getDefaultDenormalModeForType(
const llvm::opt::ArgList& DriverArgs,
const clang::driver::JobAction& JA,
const llvm::fltSemantics* FPType =
nullptr) const
Description
Returns the output denormal handling type in the default floating point environment for the given \p FPType if given. Otherwise, the default assumed mode for any floating point type.
Declared at: clang/include/clang/Driver/ToolChain.h:736
Parameters
- const llvm::opt::ArgList& DriverArgs
- const clang::driver::JobAction& JA
- const llvm::fltSemantics* FPType = nullptr
¶virtual const char* getDefaultLinker() const
virtual const char* getDefaultLinker() const
Description
GetDefaultLinker - Get the default linker to use.
Declared at: clang/include/clang/Driver/ToolChain.h:448
¶virtual clang::ObjCRuntime getDefaultObjCRuntime(
bool isNonFragile) const
virtual clang::ObjCRuntime getDefaultObjCRuntime(
bool isNonFragile) const
Description
getDefaultObjCRuntime - Return the default Objective-C runtime for this platform. FIXME: this really belongs on some sort of DeploymentTarget abstraction
Declared at: clang/include/clang/Driver/ToolChain.h:603
Parameters
- bool isNonFragile
¶virtual clang::SanitizerMask
getDefaultSanitizers() const
virtual clang::SanitizerMask
getDefaultSanitizers() const
Description
Return sanitizers which are enabled by default.
Declared at: clang/include/clang/Driver/ToolChain.h:725
¶llvm::StringRef getDefaultUniversalArchName()
const
llvm::StringRef getDefaultUniversalArchName()
const
Description
Provide the default architecture name (as expected by -arch) for this toolchain.
Declared at: clang/include/clang/Driver/ToolChain.h:251
¶const clang::driver::Driver& getDriver() const
const clang::driver::Driver& getDriver() const
Declared at: clang/include/clang/Driver/ToolChain.h:228
¶const llvm::Triple& getEffectiveTriple() const
const llvm::Triple& getEffectiveTriple() const
Description
Get the toolchain's effective clang triple.
Declared at: clang/include/clang/Driver/ToolChain.h:258
¶clang::driver::ToolChain::path_list&
getFilePaths()
clang::driver::ToolChain::path_list&
getFilePaths()
Declared at: clang/include/clang/Driver/ToolChain.h:266
¶const clang::driver::ToolChain::path_list&
getFilePaths() const
const clang::driver::ToolChain::path_list&
getFilePaths() const
Declared at: clang/include/clang/Driver/ToolChain.h:267
¶clang::driver::Tool* getFlang() const
clang::driver::Tool* getFlang() const
Declared at: clang/include/clang/Driver/ToolChain.h:158
¶virtual llvm::SmallVector<BitCodeLibraryInfo, 12>
getHIPDeviceLibs(
const llvm::opt::ArgList& Args) const
virtual llvm::SmallVector<BitCodeLibraryInfo, 12>
getHIPDeviceLibs(
const llvm::opt::ArgList& Args) const
Description
Get paths of HIP device libraries.
Declared at: clang/include/clang/Driver/ToolChain.h:714
Parameters
- const llvm::opt::ArgList& Args
¶clang::driver::Tool* getIfsMerge() const
clang::driver::Tool* getIfsMerge() const
Declared at: clang/include/clang/Driver/ToolChain.h:162
¶virtual std::string getInputFilename(
const clang::driver::InputInfo& Input) const
virtual std::string getInputFilename(
const clang::driver::InputInfo& Input) const
Description
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.
Declared at: clang/include/clang/Driver/ToolChain.h:242
Parameters
- const clang::driver::InputInfo& Input
¶const clang::driver::ToolChain::path_list&
getLibraryPaths() const
const clang::driver::ToolChain::path_list&
getLibraryPaths() const
Declared at: clang/include/clang/Driver/ToolChain.h:264
¶clang::driver::ToolChain::path_list&
getLibraryPaths()
clang::driver::ToolChain::path_list&
getLibraryPaths()
Declared at: clang/include/clang/Driver/ToolChain.h:263
¶clang::driver::Tool* getLink() const
clang::driver::Tool* getLink() const
Declared at: clang/include/clang/Driver/ToolChain.h:160
¶clang::driver::Tool* getLinkerWrapper() const
clang::driver::Tool* getLinkerWrapper() const
Declared at: clang/include/clang/Driver/ToolChain.h:167
¶virtual unsigned int getMaxDwarfVersion() const
virtual unsigned int getMaxDwarfVersion() const
Declared at: clang/include/clang/Driver/ToolChain.h:543
¶virtual std::string getMultiarchTriple(
const clang::driver::Driver& D,
const llvm::Triple& TargetTriple,
llvm::StringRef SysRoot) const
virtual std::string getMultiarchTriple(
const clang::driver::Driver& D,
const llvm::Triple& TargetTriple,
llvm::StringRef SysRoot) const
Declared at: clang/include/clang/Driver/ToolChain.h:578
Parameters
- const clang::driver::Driver& D
- const llvm::Triple& TargetTriple
- llvm::StringRef SysRoot
¶const clang::driver::Multilib& getMultilib() const
const clang::driver::Multilib& getMultilib() const
Declared at: clang/include/clang/Driver/ToolChain.h:274
¶const clang::driver::MultilibSet& getMultilibs()
const
const clang::driver::MultilibSet& getMultilibs()
const
Declared at: clang/include/clang/Driver/ToolChain.h:272
¶llvm::StringRef getOS() const
llvm::StringRef getOS() const
Declared at: clang/include/clang/Driver/ToolChain.h:247
¶virtual llvm::StringRef getOSLibName() const
virtual llvm::StringRef getOSLibName() const
Declared at: clang/include/clang/Driver/ToolChain.h:488
¶clang::driver::Tool* getOffloadBundler() const
clang::driver::Tool* getOffloadBundler() const
Declared at: clang/include/clang/Driver/ToolChain.h:164
¶clang::driver::Tool* getOffloadPackager() const
clang::driver::Tool* getOffloadPackager() const
Declared at: clang/include/clang/Driver/ToolChain.h:166
¶clang::driver::Tool* getOffloadWrapper() const
clang::driver::Tool* getOffloadWrapper() const
Declared at: clang/include/clang/Driver/ToolChain.h:165
¶static llvm::Triple getOpenMPTriple(
llvm::StringRef TripleStr)
static llvm::Triple getOpenMPTriple(
llvm::StringRef TripleStr)
Declared at: clang/include/clang/Driver/ToolChain.h:748
Parameters
- llvm::StringRef TripleStr
¶llvm::StringRef getPlatform() const
llvm::StringRef getPlatform() const
Declared at: clang/include/clang/Driver/ToolChain.h:246
¶const clang::driver::ToolChain::path_list&
getProgramPaths() const
const clang::driver::ToolChain::path_list&
getProgramPaths() const
Declared at: clang/include/clang/Driver/ToolChain.h:270
¶clang::driver::ToolChain::path_list&
getProgramPaths()
clang::driver::ToolChain::path_list&
getProgramPaths()
Declared at: clang/include/clang/Driver/ToolChain.h:269
¶const llvm::opt::Arg* getRTTIArg() const
const llvm::opt::Arg* getRTTIArg() const
Declared at: clang/include/clang/Driver/ToolChain.h:281
¶clang::driver::ToolChain::RTTIMode getRTTIMode()
const
clang::driver::ToolChain::RTTIMode getRTTIMode()
const
Declared at: clang/include/clang/Driver/ToolChain.h:284
¶clang::driver::ToolChain::path_list
getRuntimePaths() const
clang::driver::ToolChain::path_list
getRuntimePaths() const
Declared at: clang/include/clang/Driver/ToolChain.h:478
¶clang::driver::SanitizerArgs getSanitizerArgs(
const llvm::opt::ArgList& JobArgs) const
clang::driver::SanitizerArgs getSanitizerArgs(
const llvm::opt::ArgList& JobArgs) const
Declared at: clang/include/clang/Driver/ToolChain.h:276
Parameters
- const llvm::opt::ArgList& JobArgs
¶clang::driver::Tool* getStaticLibTool() const
clang::driver::Tool* getStaticLibTool() const
Declared at: clang/include/clang/Driver/ToolChain.h:161
¶clang::driver::ToolChain::path_list
getStdlibPaths() const
clang::driver::ToolChain::path_list
getStdlibPaths() const
Declared at: clang/include/clang/Driver/ToolChain.h:481
¶virtual clang::SanitizerMask
getSupportedSanitizers() const
virtual clang::SanitizerMask
getSupportedSanitizers() const
Description
Return sanitizers which are available in this toolchain.
Declared at: clang/include/clang/Driver/ToolChain.h:722
¶static clang::driver::ParsedClangName
getTargetAndModeFromProgramName(
llvm::StringRef ProgName)
static clang::driver::ParsedClangName
getTargetAndModeFromProgramName(
llvm::StringRef ProgName)
Description
Return any implicit target and/or mode flag for an invocation of the compiler driver as `ProgName`. For example, when called with i686-linux-android-g++, the first element of the return value will be set to `"i686-linux-android"` and the second will be set to "--driver-mode=g++"`. It is OK if the target name is not registered. In this case the return value contains false in the field TargetIsValid.
Declared at: clang/include/clang/Driver/ToolChain.h:300
Parameters
- llvm::StringRef ProgName
- The name the Clang driver was invoked with (from, e.g., argv[0]).
Returns
A structure of type ParsedClangName that contains the executable name parts.
¶virtual Optional<llvm::Triple>
getTargetVariantTriple() const
virtual Optional<llvm::Triple>
getTargetVariantTriple() const
Declared at: clang/include/clang/Driver/ToolChain.h:742
¶virtual std::string getThreadModel() const
virtual std::string getThreadModel() const
Description
getThreadModel() - Which thread model does this target use?
Declared at: clang/include/clang/Driver/ToolChain.h:573
¶virtual clang::driver::Tool* getTool(
Action::ActionClass AC) const
virtual clang::driver::Tool* getTool(
Action::ActionClass AC) const
Declared at: clang/include/clang/Driver/ToolChain.h:196
Parameters
- Action::ActionClass AC
¶const llvm::Triple& getTriple() const
const llvm::Triple& getTriple() const
Declared at: clang/include/clang/Driver/ToolChain.h:230
¶std::string getTripleString() const
std::string getTripleString() const
Declared at: clang/include/clang/Driver/ToolChain.h:253
¶llvm::vfs::FileSystem& getVFS() const
llvm::vfs::FileSystem& getVFS() const
Declared at: clang/include/clang/Driver/ToolChain.h:229
¶const clang::driver::XRayArgs& getXRayArgs() const
const clang::driver::XRayArgs& getXRayArgs() const
Declared at: clang/include/clang/Driver/ToolChain.h:278
¶virtual bool hasBlocksRuntime() const
virtual bool hasBlocksRuntime() const
Description
hasBlocksRuntime - Given that the user is compiling with -fblocks, does this tool chain guarantee the existence of a blocks runtime? FIXME: this really belongs on some sort of DeploymentTarget abstraction
Declared at: clang/include/clang/Driver/ToolChain.h:610
¶virtual bool isCrossCompiling() const
virtual bool isCrossCompiling() const
Description
Returns true if the toolchain is targeting a non-native architecture.
Declared at: clang/include/clang/Driver/ToolChain.h:374
¶virtual bool isFastMathRuntimeAvailable(
const llvm::opt::ArgList& Args,
std::string& Path) const
virtual bool isFastMathRuntimeAvailable(
const llvm::opt::ArgList& Args,
std::string& Path) const
Description
If a runtime library exists that sets global flags for unsafe floating point math, return true. This checks for presence of the -Ofast, -ffast-math or -funsafe-math flags.
Declared at: clang/include/clang/Driver/ToolChain.h:681
Parameters
- const llvm::opt::ArgList& Args
- std::string& Path
¶virtual bool isPICDefault() const
virtual bool isPICDefault() const
Description
Test whether this toolchain defaults to PIC.
Declared at: clang/include/clang/Driver/ToolChain.h:507
¶virtual bool isPICDefaultForced() const
virtual bool isPICDefaultForced() const
Description
Tests whether this toolchain forces its default for PIC, PIE or non-PIC. If this returns true, any PIC related flags should be ignored and instead the results of \c isPICDefault() and \c isPIEDefault(const llvm::opt::ArgList &Args ) are used exclusively.
Declared at: clang/include/clang/Driver/ToolChain.h:516
¶virtual bool isPIEDefault(
const llvm::opt::ArgList& Args) const
virtual bool isPIEDefault(
const llvm::opt::ArgList& Args) const
Description
Test whether this toolchain defaults to PIE.
Declared at: clang/include/clang/Driver/ToolChain.h:510
Parameters
- const llvm::opt::ArgList& Args
¶virtual bool isThreadModelSupported(
const llvm::StringRef Model) const
virtual bool isThreadModelSupported(
const llvm::StringRef Model) const
Description
isThreadModelSupported() - Does this target support a thread model?
Declared at: clang/include/clang/Driver/ToolChain.h:576
Parameters
- const llvm::StringRef Model
¶static bool needsGCovInstrumentation(
const llvm::opt::ArgList& Args)
static bool needsGCovInstrumentation(
const llvm::opt::ArgList& Args)
Description
Returns true if gcov instrumentation (-fprofile-arcs or --coverage) is on.
Declared at: clang/include/clang/Driver/ToolChain.h:494
Parameters
- const llvm::opt::ArgList& Args
¶static bool needsProfileRT(
const llvm::opt::ArgList& Args)
static bool needsProfileRT(
const llvm::opt::ArgList& Args)
Description
needsProfileRT - returns true if instrumentation profile is on.
Declared at: clang/include/clang/Driver/ToolChain.h:491
Parameters
- const llvm::opt::ArgList& Args
¶virtual bool parseInlineAsmUsingAsmParser() const
virtual bool parseInlineAsmUsingAsmParser() const
Description
Check if the toolchain should use AsmParser to parse inlineAsm when integrated assembler is not default.
Declared at: clang/include/clang/Driver/ToolChain.h:411
¶virtual void printVerboseInfo(
llvm::raw_ostream& OS) const
virtual void printVerboseInfo(
llvm::raw_ostream& OS) const
Description
Dispatch to the specific toolchain for verbose printing. This is used when handling the verbose option to print detailed, toolchain-specific information useful for understanding the behavior of the driver on a specific platform.
Declared at: clang/include/clang/Driver/ToolChain.h:368
Parameters
¶void setEffectiveTriple(llvm::Triple ET) const
void setEffectiveTriple(llvm::Triple ET) const
Description
Set the toolchain's effective clang triple.
Declared at: clang/include/clang/Driver/ToolChain.h:176
Parameters
- llvm::Triple ET
¶void setTripleEnvironment(
llvm::Triple::EnvironmentType Env)
void setTripleEnvironment(
llvm::Triple::EnvironmentType Env)
Declared at: clang/include/clang/Driver/ToolChain.h:191
Parameters
- llvm::Triple::EnvironmentType Env
¶virtual bool supportsDebugInfoOption(
const llvm::opt::Arg*) const
virtual bool supportsDebugInfoOption(
const llvm::opt::Arg*) const
Description
Does this toolchain supports given debug info option or not.
Declared at: clang/include/clang/Driver/ToolChain.h:557
Parameters
- const llvm::opt::Arg*
¶virtual bool useIntegratedAs() const
virtual bool useIntegratedAs() const
Description
Check if the toolchain should use the integrated assembler.
Declared at: clang/include/clang/Driver/ToolChain.h:404
¶virtual bool useIntegratedBackend() const
virtual bool useIntegratedBackend() const
Description
Check if the toolchain should use the integrated backend.
Declared at: clang/include/clang/Driver/ToolChain.h:407
¶virtual bool useRelaxRelocations() const
virtual bool useRelaxRelocations() const
Description
Check whether to enable x86 relax relocations by default.
Declared at: clang/include/clang/Driver/ToolChain.h:429
¶virtual ~ToolChain()
virtual ~ToolChain()
Description
@ }
Declared at: clang/include/clang/Driver/ToolChain.h:224