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) constDescription
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) constDescription
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) constDescription
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) constDescription
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) constDescription
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) constDescription
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) constDescription
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) constDescription
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) constDescription
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) constDescription
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() constDescription
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) constDescription
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) constDescription
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) constDeclared 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() constDeclared at: clang/include/clang/Driver/ToolChain.h:455
¶virtual unsigned int GetDefaultDwarfVersion()
const
virtual unsigned int GetDefaultDwarfVersion()
constDeclared at: clang/include/clang/Driver/ToolChain.h:538
¶virtual clang::driver::ToolChain::RuntimeLibType
GetDefaultRuntimeLibType() const
virtual clang::driver::ToolChain::RuntimeLibType
GetDefaultRuntimeLibType() constDescription
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) constDescription
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() constDeclared at: clang/include/clang/Driver/ToolChain.h:549
¶virtual LangOptions::TrivialAutoVarInitKind
GetDefaultTrivialAutoVarInit() const
virtual LangOptions::TrivialAutoVarInitKind
GetDefaultTrivialAutoVarInit() constDescription
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() constDeclared 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) constDescription
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) constDeclared at: clang/include/clang/Driver/ToolChain.h:349
Parameters
- const char* Name
¶virtual std::string GetGlobalDebugPathRemapping()
const
virtual std::string GetGlobalDebugPathRemapping()
constDescription
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) constDescription
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) constDeclared 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) constDeclared at: clang/include/clang/Driver/ToolChain.h:635
Parameters
- const llvm::opt::ArgList& Args
¶std::string GetStaticLibToolPath() const
std::string GetStaticLibToolPath() constDescription
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) constDeclared at: clang/include/clang/Driver/ToolChain.h:643
Parameters
- const llvm::opt::ArgList& Args
¶virtual bool HasNativeLLVMSupport() const
virtual bool HasNativeLLVMSupport() constDescription
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) constDescription
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() constDescription
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() constDescription
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() constDescription
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() constDescription
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() constDescription
IsIntegratedBackendSupported - Does this tool chain support -fintegrated-objemitter.
Declared at: clang/include/clang/Driver/ToolChain.h:397
¶virtual bool IsMathErrnoDefault() const
virtual bool IsMathErrnoDefault() constDescription
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()
constDescription
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() constDescription
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) constDescription
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) constDescription
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) constDescription
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) constDescription
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() constDescription
SupportsEmbeddedBitcode - Does this tool chain support embedded bitcode.
Declared at: clang/include/clang/Driver/ToolChain.h:570
¶virtual bool SupportsProfiling() const
virtual bool SupportsProfiling() constDescription
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) constDescription
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) constDescription
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) constDescription
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) constDescription
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() constDescription
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() constDescription
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) constDescription
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) constDescription
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) constDescription
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) constDescription
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) constDescription
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()
constDeclared 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) constDeclared 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() constDeclared at: clang/include/clang/Driver/ToolChain.h:194
¶virtual clang::driver::Tool* buildStaticLibTool()
const
virtual clang::driver::Tool* buildStaticLibTool()
constDeclared at: clang/include/clang/Driver/ToolChain.h:195
¶virtual bool canSplitThinLTOUnit() const
virtual bool canSplitThinLTOUnit() constDescription
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) constDescription
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() constDescription
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() constDescription
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) constDeclared at: clang/include/clang/Driver/ToolChain.h:646
Parameters
- llvm::StringRef IncludePath
¶llvm::Triple::ArchType getArch() const
llvm::Triple::ArchType getArch() constDeclared at: clang/include/clang/Driver/ToolChain.h:244
¶llvm::StringRef getArchName() const
llvm::StringRef getArchName() constDeclared at: clang/include/clang/Driver/ToolChain.h:245
¶std::string getArchSpecificLibPath() const
std::string getArchSpecificLibPath() constDeclared at: clang/include/clang/Driver/ToolChain.h:485
¶clang::driver::Tool* getAssemble() const
clang::driver::Tool* getAssemble() constDeclared at: clang/include/clang/Driver/ToolChain.h:159
¶virtual const llvm::Triple* getAuxTriple() const
virtual const llvm::Triple* getAuxTriple() constDescription
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() constDeclared at: clang/include/clang/Driver/ToolChain.h:157
¶clang::driver::Tool* getClangAs() const
clang::driver::Tool* getClangAs() constDeclared 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) constDeclared 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) constDeclared 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) constDeclared 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() constDeclared at: clang/include/clang/Driver/ToolChain.h:463
¶virtual codegenoptions::DebugInfoFormat
getDefaultDebugFormat() const
virtual codegenoptions::DebugInfoFormat
getDefaultDebugFormat() constDescription
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() constDeclared 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) constDescription
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() constDescription
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) constDescription
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() constDescription
Return sanitizers which are enabled by default.
Declared at: clang/include/clang/Driver/ToolChain.h:725
¶llvm::StringRef getDefaultUniversalArchName()
const
llvm::StringRef getDefaultUniversalArchName()
constDescription
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() constDeclared at: clang/include/clang/Driver/ToolChain.h:228
¶const llvm::Triple& getEffectiveTriple() const
const llvm::Triple& getEffectiveTriple() constDescription
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() constDeclared at: clang/include/clang/Driver/ToolChain.h:267
¶clang::driver::Tool* getFlang() const
clang::driver::Tool* getFlang() constDeclared 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) constDescription
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() constDeclared 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) constDescription
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() constDeclared 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() constDeclared at: clang/include/clang/Driver/ToolChain.h:160
¶clang::driver::Tool* getLinkerWrapper() const
clang::driver::Tool* getLinkerWrapper() constDeclared at: clang/include/clang/Driver/ToolChain.h:167
¶virtual unsigned int getMaxDwarfVersion() const
virtual unsigned int getMaxDwarfVersion() constDeclared 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) constDeclared 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() constDeclared at: clang/include/clang/Driver/ToolChain.h:274
¶const clang::driver::MultilibSet& getMultilibs()
const
const clang::driver::MultilibSet& getMultilibs()
constDeclared at: clang/include/clang/Driver/ToolChain.h:272
¶llvm::StringRef getOS() const
llvm::StringRef getOS() constDeclared at: clang/include/clang/Driver/ToolChain.h:247
¶virtual llvm::StringRef getOSLibName() const
virtual llvm::StringRef getOSLibName() constDeclared at: clang/include/clang/Driver/ToolChain.h:488
¶clang::driver::Tool* getOffloadBundler() const
clang::driver::Tool* getOffloadBundler() constDeclared at: clang/include/clang/Driver/ToolChain.h:164
¶clang::driver::Tool* getOffloadPackager() const
clang::driver::Tool* getOffloadPackager() constDeclared at: clang/include/clang/Driver/ToolChain.h:166
¶clang::driver::Tool* getOffloadWrapper() const
clang::driver::Tool* getOffloadWrapper() constDeclared 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() constDeclared at: clang/include/clang/Driver/ToolChain.h:246
¶const clang::driver::ToolChain::path_list&
getProgramPaths() const
const clang::driver::ToolChain::path_list&
getProgramPaths() constDeclared 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() constDeclared at: clang/include/clang/Driver/ToolChain.h:281
¶clang::driver::ToolChain::RTTIMode getRTTIMode()
const
clang::driver::ToolChain::RTTIMode getRTTIMode()
constDeclared at: clang/include/clang/Driver/ToolChain.h:284
¶clang::driver::ToolChain::path_list
getRuntimePaths() const
clang::driver::ToolChain::path_list
getRuntimePaths() constDeclared 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) constDeclared at: clang/include/clang/Driver/ToolChain.h:276
Parameters
- const llvm::opt::ArgList& JobArgs
¶clang::driver::Tool* getStaticLibTool() const
clang::driver::Tool* getStaticLibTool() constDeclared at: clang/include/clang/Driver/ToolChain.h:161
¶clang::driver::ToolChain::path_list
getStdlibPaths() const
clang::driver::ToolChain::path_list
getStdlibPaths() constDeclared at: clang/include/clang/Driver/ToolChain.h:481
¶virtual clang::SanitizerMask
getSupportedSanitizers() const
virtual clang::SanitizerMask
getSupportedSanitizers() constDescription
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() constDeclared at: clang/include/clang/Driver/ToolChain.h:742
¶virtual std::string getThreadModel() const
virtual std::string getThreadModel() constDescription
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) constDeclared at: clang/include/clang/Driver/ToolChain.h:196
Parameters
- Action::ActionClass AC
¶const llvm::Triple& getTriple() const
const llvm::Triple& getTriple() constDeclared at: clang/include/clang/Driver/ToolChain.h:230
¶std::string getTripleString() const
std::string getTripleString() constDeclared at: clang/include/clang/Driver/ToolChain.h:253
¶llvm::vfs::FileSystem& getVFS() const
llvm::vfs::FileSystem& getVFS() constDeclared at: clang/include/clang/Driver/ToolChain.h:229
¶const clang::driver::XRayArgs& getXRayArgs() const
const clang::driver::XRayArgs& getXRayArgs() constDeclared at: clang/include/clang/Driver/ToolChain.h:278
¶virtual bool hasBlocksRuntime() const
virtual bool hasBlocksRuntime() constDescription
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() constDescription
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) constDescription
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() constDescription
Test whether this toolchain defaults to PIC.
Declared at: clang/include/clang/Driver/ToolChain.h:507
¶virtual bool isPICDefaultForced() const
virtual bool isPICDefaultForced() constDescription
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) constDescription
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) constDescription
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() constDescription
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) constDescription
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) constDescription
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*) constDescription
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() constDescription
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() constDescription
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() constDescription
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