Lines Matching refs:TC
224 void tools::AddLinkerInputs(const ToolChain &TC, const InputInfoList &Inputs,
227 const Driver &D = TC.getDriver();
235 if (!TC.isCrossCompiling())
247 if (!TC.HasNativeLLVMSupport() && types::isLLVMIR(II.getType()))
249 D.Diag(diag::err_drv_no_linker_llvm_support) << TC.getTripleString();
262 TC.AddCXXStdlibLibArgs(Args, CmdArgs);
264 TC.AddCCKextLibArgs(Args, CmdArgs);
276 const ToolChain &TC, const llvm::opt::ArgList &Args,
288 TC.getDriver().Diag(diag::err_drv_unsupported_option_argument)
648 void tools::addArchSpecificRPath(const ToolChain &TC, const ArgList &Args,
651 const bool IsVE = TC.getTriple().isVE();
657 std::string CandidateRPath = TC.getArchSpecificLibPath();
658 if (TC.getVFS().exists(CandidateRPath)) {
664 bool tools::addOpenMPRuntime(ArgStringList &CmdArgs, const ToolChain &TC,
671 Driver::OpenMPRuntimeKind RTKind = TC.getDriver().getOpenMPRuntime(Args);
703 addArchSpecificRPath(TC, Args, CmdArgs);
708 static void addSanitizerRuntime(const ToolChain &TC, const ArgList &Args,
714 CmdArgs.push_back(TC.getCompilerRTArgString(
719 addArchSpecificRPath(TC, Args, CmdArgs);
725 static bool addSanitizerDynamicList(const ToolChain &TC, const ArgList &Args,
730 if (TC.getTriple().getOS() == llvm::Triple::Solaris)
735 if (TC.getTriple().getVendor() == llvm::Triple::Myriad)
737 SmallString<128> SanRT(TC.getCompilerRT(Args, Sanitizer));
745 static const char *getAsNeededOption(const ToolChain &TC, bool as_needed) {
749 if (TC.getTriple().isOSSolaris())
755 void tools::linkSanitizerRuntimeDeps(const ToolChain &TC,
759 if (TC.getTriple().isOSFuchsia())
764 CmdArgs.push_back(getAsNeededOption(TC, false));
766 if (TC.getTriple().getOS() != llvm::Triple::RTEMS &&
767 !TC.getTriple().isAndroid()) {
769 if (!TC.getTriple().isOSOpenBSD())
774 if (!TC.getTriple().isOSFreeBSD() &&
775 !TC.getTriple().isOSNetBSD() &&
776 !TC.getTriple().isOSOpenBSD() &&
777 TC.getTriple().getOS() != llvm::Triple::RTEMS)
780 if (TC.getTriple().isOSFreeBSD() ||
781 TC.getTriple().isOSNetBSD())
786 collectSanitizerRuntimes(const ToolChain &TC, const ArgList &Args,
792 const SanitizerArgs &SanArgs = TC.getSanitizerArgs();
797 if (!Args.hasArg(options::OPT_shared) && !TC.getTriple().isAndroid())
802 if (!Args.hasArg(options::OPT_shared) && !TC.getTriple().isAndroid())
920 bool tools::addSanitizerRuntimes(const ToolChain &TC, const ArgList &Args,
924 collectSanitizerRuntimes(TC, Args, SharedRuntimes, StaticRuntimes,
928 const SanitizerArgs &SanArgs = TC.getSanitizerArgs();
933 addSanitizerRuntime(TC, Args, CmdArgs, "fuzzer", false, true);
935 addSanitizerRuntime(TC, Args, CmdArgs, "fuzzer_interceptors", false,
942 TC.AddCXXStdlibLibArgs(Args, CmdArgs);
949 addSanitizerRuntime(TC, Args, CmdArgs, RT, true, false);
951 addSanitizerRuntime(TC, Args, CmdArgs, RT, false, true);
954 addSanitizerRuntime(TC, Args, CmdArgs, RT, false, true);
955 AddExportDynamic |= !addSanitizerDynamicList(TC, Args, CmdArgs, RT);
958 addSanitizerRuntime(TC, Args, CmdArgs, RT, false, false);
959 AddExportDynamic |= !addSanitizerDynamicList(TC, Args, CmdArgs, RT);
976 bool tools::addXRayRuntime(const ToolChain&TC, const ArgList &Args, ArgStringList &CmdArgs) {
980 if (TC.getXRayArgs().needsXRayRt()) {
982 CmdArgs.push_back(TC.getCompilerRTArgString(Args, "xray"));
983 for (const auto &Mode : TC.getXRayArgs().modeList())
984 CmdArgs.push_back(TC.getCompilerRTArgString(Args, Mode));
992 void tools::linkXRayRuntimeDeps(const ToolChain &TC, ArgStringList &CmdArgs) {
993 CmdArgs.push_back(getAsNeededOption(TC, false));
995 if (!TC.getTriple().isOSOpenBSD())
999 if (!TC.getTriple().isOSFreeBSD() &&
1000 !TC.getTriple().isOSNetBSD() &&
1001 !TC.getTriple().isOSOpenBSD())
1044 void tools::SplitDebugInfo(const ToolChain &TC, Compilation &C, const Tool &T,
1059 Args.MakeArgString(TC.GetProgramPath(CLANG_DEFAULT_OBJCOPY));
1339 unsigned tools::ParseFunctionAlignment(const ToolChain &TC,
1352 TC.getDriver().Diag(diag::err_drv_invalid_int_value)
1357 unsigned tools::ParseDebugDefaultVersion(const ToolChain &TC,
1367 TC.getDriver().Diag(diag::err_drv_invalid_int_value)
1391 static LibGccType getLibGccType(const ToolChain &TC, const Driver &D,
1399 if (TC.getTriple().isAndroid())
1403 if (D.CCCIsCXX() && !TC.getTriple().isOSCygMing())
1421 static void AddUnwindLibrary(const ToolChain &TC, const Driver &D,
1423 ToolChain::UnwindLibType UNW = TC.GetUnwindLibType(Args);
1425 if ((TC.getTriple().isAndroid() && UNW == ToolChain::UNW_Libgcc) ||
1426 TC.getTriple().isOSIAMCU() || TC.getTriple().isOSBinFormatWasm() ||
1430 LibGccType LGT = getLibGccType(TC, D, Args);
1432 !TC.getTriple().isAndroid() && !TC.getTriple().isOSCygMing();
1434 CmdArgs.push_back(getAsNeededOption(TC, true));
1449 else if (TC.getTriple().isOSCygMing()) {
1462 CmdArgs.push_back(getAsNeededOption(TC, false));
1465 static void AddLibgcc(const ToolChain &TC, const Driver &D,
1467 LibGccType LGT = getLibGccType(TC, D, Args);
1470 AddUnwindLibrary(TC, D, CmdArgs, Args);
1475 void tools::AddRunTimeLibs(const ToolChain &TC, const Driver &D,
1478 ToolChain::RuntimeLibType RLT = TC.GetRuntimeLibType(Args);
1482 CmdArgs.push_back(TC.getCompilerRTArgString(Args, "builtins"));
1483 AddUnwindLibrary(TC, D, CmdArgs, Args);
1487 if (TC.getTriple().isKnownWindowsMSVCEnvironment()) {
1491 TC.getDriver().Diag(diag::err_drv_unsupported_rtlib_for_platform)
1495 AddLibgcc(TC, D, CmdArgs, Args);
1502 if (TC.getTriple().isAndroid() && !Args.hasArg(options::OPT_static) &&