Lines Matching defs:ToolChain
1 //===- ToolChain.cpp - Collections of tools for one platform --------------===//
9 #include "clang/Driver/ToolChain.h"
64 static ToolChain::RTTIMode CalculateRTTIMode(const ArgList &Args,
70 return ToolChain::RM_Enabled;
72 return ToolChain::RM_Disabled;
77 return NoRTTI ? ToolChain::RM_Disabled : ToolChain::RM_Enabled;
80 static ToolChain::ExceptionsMode CalculateExceptionsMode(const ArgList &Args) {
83 return ToolChain::EM_Enabled;
85 return ToolChain::EM_Disabled;
88 ToolChain::ToolChain(const Driver &D, const llvm::Triple &T,
107 ToolChain::executeToolChainProgram(StringRef Executable,
133 void ToolChain::setTripleEnvironment(llvm::Triple::EnvironmentType Env) {
139 ToolChain::~ToolChain() = default;
141 llvm::vfs::FileSystem &ToolChain::getVFS() const {
145 bool ToolChain::useIntegratedAs() const {
151 bool ToolChain::useIntegratedBackend() const {
179 bool ToolChain::useRelaxRelocations() const {
183 bool ToolChain::defaultToIEEELongDouble() const {
262 ToolChain::getMultilibFlags(const llvm::opt::ArgList &Args) const {
287 if (getRTTIMode() == ToolChain::RTTIMode::RM_Disabled)
292 if (getExceptionsMode() == ToolChain::ExceptionsMode::EM_Disabled)
304 ToolChain::getSanitizerArgs(const llvm::opt::ArgList &JobArgs) const {
310 const XRayArgs& ToolChain::getXRayArgs() const {
402 ToolChain::getTargetAndModeFromProgramName(StringRef PN) {
426 StringRef ToolChain::getDefaultUniversalArchName() const {
451 std::string ToolChain::getInputFilename(const InputInfo &Input) const {
455 ToolChain::UnwindTableLevel
456 ToolChain::getDefaultUnwindTableLevel(const ArgList &Args) const {
460 Tool *ToolChain::getClang() const {
466 Tool *ToolChain::getFlang() const {
472 Tool *ToolChain::buildAssembler() const {
476 Tool *ToolChain::buildLinker() const {
480 Tool *ToolChain::buildStaticLibTool() const {
484 Tool *ToolChain::getAssemble() const {
490 Tool *ToolChain::getClangAs() const {
496 Tool *ToolChain::getLink() const {
502 Tool *ToolChain::getStaticLibTool() const {
508 Tool *ToolChain::getIfsMerge() const {
514 Tool *ToolChain::getOffloadBundler() const {
520 Tool *ToolChain::getOffloadPackager() const {
526 Tool *ToolChain::getLinkerWrapper() const {
532 Tool *ToolChain::getTool(Action::ActionClass AC) const {
578 static StringRef getArchNameForCompilerRTLib(const ToolChain &TC,
601 StringRef ToolChain::getOSLibName() const {
621 std::string ToolChain::getCompilerRTPath() const {
636 std::string ToolChain::getCompilerRTBasename(const ArgList &Args,
643 std::string ToolChain::buildCompilerRTBasename(const llvm::opt::ArgList &Args,
652 IsITANMSVCWindows || Type == ToolChain::FT_Object ? "" : "lib";
655 case ToolChain::FT_Object:
658 case ToolChain::FT_Static:
661 case ToolChain::FT_Shared:
677 std::string ToolChain::getCompilerRT(const ArgList &Args, StringRef Component,
708 const char *ToolChain::getCompilerRTArgString(const llvm::opt::ArgList &Args,
718 ToolChain::getFallbackAndroidTargetPath(StringRef BaseDir) const {
759 ToolChain::getTargetSubDirPath(StringRef BaseDir) const {
800 std::optional<std::string> ToolChain::getRuntimePath() const {
812 std::optional<std::string> ToolChain::getStdlibPath() const {
818 std::optional<std::string> ToolChain::getStdlibIncludePath() const {
824 ToolChain::path_list ToolChain::getArchSpecificLibPaths() const {
840 bool ToolChain::needsProfileRT(const ArgList &Args) {
854 bool ToolChain::needsGCovInstrumentation(const llvm::opt::ArgList &Args) {
860 Tool *ToolChain::SelectTool(const JobAction &JA) const {
870 std::string ToolChain::GetFilePath(const char *Name) const {
874 std::string ToolChain::GetProgramPath(const char *Name) const {
878 std::string ToolChain::GetLinkerPath(bool *LinkerIsLLD) const {
950 std::string ToolChain::GetStaticLibToolPath() const {
957 types::ID ToolChain::LookupTypeForExtension(StringRef Ext) const {
969 bool ToolChain::HasNativeLLVMSupport() const {
973 bool ToolChain::isCrossCompiling() const {
989 ObjCRuntime ToolChain::getDefaultObjCRuntime(bool isNonFragile) const {
995 ToolChain::GetExceptionModel(const llvm::opt::ArgList &Args) const {
999 bool ToolChain::isThreadModelSupported(const StringRef Model) const {
1012 std::string ToolChain::ComputeLLVMTriple(const ArgList &Args,
1061 std::string ToolChain::ComputeEffectiveClangTriple(const ArgList &Args,
1066 std::string ToolChain::computeSysRoot() const {
1070 void ToolChain::AddClangSystemIncludeArgs(const ArgList &DriverArgs,
1075 void ToolChain::addClangTargetOptions(
1079 void ToolChain::addClangCC1ASTargetOptions(const ArgList &Args,
1082 void ToolChain::addClangWarningOptions(ArgStringList &CC1Args) const {}
1084 void ToolChain::addProfileRTLibs(const llvm::opt::ArgList &Args,
1092 ToolChain::RuntimeLibType ToolChain::GetRuntimeLibType(
1102 runtimeLibType = ToolChain::RLT_CompilerRT;
1104 runtimeLibType = ToolChain::RLT_Libgcc;
1118 ToolChain::UnwindLibType ToolChain::GetUnwindLibType(
1127 unwindLibType = ToolChain::UNW_None;
1129 ToolChain::RuntimeLibType RtLibType = GetRuntimeLibType(Args);
1130 if (RtLibType == ToolChain::RLT_CompilerRT) {
1132 unwindLibType = ToolChain::UNW_CompilerRT;
1134 unwindLibType = ToolChain::UNW_None;
1135 } else if (RtLibType == ToolChain::RLT_Libgcc)
1136 unwindLibType = ToolChain::UNW_Libgcc;
1140 unwindLibType = ToolChain::UNW_CompilerRT;
1142 unwindLibType = ToolChain::UNW_Libgcc;
1154 ToolChain::CXXStdlibType ToolChain::GetCXXStdlibType(const ArgList &Args) const{
1163 cxxStdlibType = ToolChain::CST_Libcxx;
1165 cxxStdlibType = ToolChain::CST_Libstdcxx;
1180 /*static*/ void ToolChain::addSystemInclude(const ArgList &DriverArgs,
1195 /*static*/ void ToolChain::addExternCSystemInclude(const ArgList &DriverArgs,
1202 void ToolChain::addExternCSystemIncludeIfExists(const ArgList &DriverArgs,
1210 /*static*/ void ToolChain::addSystemIncludes(const ArgList &DriverArgs,
1219 /*static*/ std::string ToolChain::concat(StringRef Path, const Twine &A,
1227 std::string ToolChain::detectLibcxxVersion(StringRef IncludePath) const {
1250 void ToolChain::AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs,
1264 void ToolChain::AddClangCXXStdlibIsystemArgs(
1282 bool ToolChain::ShouldLinkCXXStdlib(const llvm::opt::ArgList &Args) const {
1288 void ToolChain::AddCXXStdlibLibArgs(const ArgList &Args,
1295 case ToolChain::CST_Libcxx:
1301 case ToolChain::CST_Libstdcxx:
1307 void ToolChain::AddFilePathLibArgs(const ArgList &Args,
1314 void ToolChain::AddCCKextLibArgs(const ArgList &Args,
1319 bool ToolChain::isFastMathRuntimeAvailable(const ArgList &Args,
1355 bool ToolChain::addFastMathRuntimeIfAvailable(const ArgList &Args,
1367 ToolChain::getSystemGPUArchs(const llvm::opt::ArgList &Args) const {
1371 SanitizerMask ToolChain::getSupportedSanitizers() const {
1396 void ToolChain::AddCudaIncludeArgs(const ArgList &DriverArgs,
1399 void ToolChain::AddHIPIncludeArgs(const ArgList &DriverArgs,
1402 llvm::SmallVector<ToolChain::BitCodeLibraryInfo, 12>
1403 ToolChain::getDeviceLibs(const ArgList &DriverArgs) const {
1407 void ToolChain::AddIAMCUIncludeArgs(const ArgList &DriverArgs,
1424 ToolChain::computeMSVCVersion(const Driver *D,
1464 llvm::opt::DerivedArgList *ToolChain::TranslateOpenMPTargetArgs(
1539 void ToolChain::TranslateXarchArgs(
1581 llvm::opt::DerivedArgList *ToolChain::TranslateXarchArgs(