Lines Matching defs:TC

444 void tools::AddLinkerInputs(const ToolChain &TC, const InputInfoList &Inputs,
447 const Driver &D = TC.getDriver();
455 if (!TC.isCrossCompiling())
467 if (!TC.HasNativeLLVMSupport() && types::isLLVMIR(II.getType()))
469 D.Diag(diag::err_drv_no_linker_llvm_support) << TC.getTripleString();
486 TC.AddCXXStdlibLibArgs(Args, CmdArgs);
488 TC.AddCCKextLibArgs(Args, CmdArgs);
495 const ToolChain &TC, const llvm::opt::ArgList &Args,
507 TC.getDriver().Diag(diag::err_drv_unsupported_option_argument)
781 bool tools::isTLSDESCEnabled(const ToolChain &TC,
783 const llvm::Triple &Triple = TC.getEffectiveTriple();
800 TC.getDriver().Diag(diag::err_drv_unsupported_opt_for_target)
803 TC.getDriver().Diag(diag::err_drv_unsupported_option_argument_for_target)
1170 if (llvm::any_of(ToolChains, [](const ToolChain *TC) {
1171 return TC->getTriple().isAMDGPU();
1176 if (llvm::any_of(ToolChains, [](const ToolChain *TC) {
1177 return TC->getTriple().isNVPTX();
1184 void tools::addOpenMPRuntimeLibraryPath(const ToolChain &TC,
1190 llvm::sys::path::parent_path(TC.getDriver().Dir);
1195 void tools::addArchSpecificRPath(const ToolChain &TC, const ArgList &Args,
1201 SmallVector<std::string> CandidateRPaths(TC.getArchSpecificLibPaths());
1202 if (const auto CandidateRPath = TC.getStdlibPath())
1206 if (TC.getVFS().exists(CandidateRPath)) {
1214 const ToolChain &TC, const ArgList &Args,
1221 Driver::OpenMPRuntimeKind RTKind = TC.getDriver().getOpenMPRuntime(Args);
1259 addArchSpecificRPath(TC, Args, CmdArgs);
1260 addOpenMPRuntimeLibraryPath(TC, Args, CmdArgs);
1266 void tools::addFortranRuntimeLibs(const ToolChain &TC, const ArgList &Args,
1272 if (!TC.getTriple().isKnownWindowsMSVCEnvironment()) {
1273 StringRef F128LibName = TC.getDriver().getFlangF128MathLibrary();
1276 bool AsNeeded = !TC.getTriple().isOSAIX();
1279 addAsNeededOption(TC, Args, CmdArgs, /*as_needed=*/true);
1282 addAsNeededOption(TC, Args, CmdArgs, /*as_needed=*/false);
1289 void tools::addFortranRuntimeLibraryPath(const ToolChain &TC,
1297 llvm::sys::path::parent_path(TC.getDriver().Dir);
1299 if (TC.getTriple().isKnownWindowsMSVCEnvironment())
1305 static void addSanitizerRuntime(const ToolChain &TC, const ArgList &Args,
1311 CmdArgs.push_back(TC.getCompilerRTArgString(
1316 addArchSpecificRPath(TC, Args, CmdArgs);
1322 static bool addSanitizerDynamicList(const ToolChain &TC, const ArgList &Args,
1325 bool LinkerIsGnuLd = solaris::isLinkerGnuLd(TC, Args);
1329 if (TC.getTriple().isOSSolaris() && !LinkerIsGnuLd)
1331 SmallString<128> SanRT(TC.getCompilerRT(Args, Sanitizer));
1339 void tools::addAsNeededOption(const ToolChain &TC,
1343 assert(!TC.getTriple().isOSAIX() &&
1345 bool LinkerIsGnuLd = solaris::isLinkerGnuLd(TC, Args);
1352 if (TC.getTriple().isOSSolaris() && !LinkerIsGnuLd) {
1360 void tools::linkSanitizerRuntimeDeps(const ToolChain &TC,
1365 addAsNeededOption(TC, Args, CmdArgs, false);
1367 if (TC.getTriple().getOS() != llvm::Triple::RTEMS &&
1368 !TC.getTriple().isAndroid() && !TC.getTriple().isOHOSFamily()) {
1370 if (!TC.getTriple().isOSOpenBSD())
1375 if (!TC.getTriple().isOSFreeBSD() && !TC.getTriple().isOSNetBSD() &&
1376 !TC.getTriple().isOSOpenBSD() &&
1377 TC.getTriple().getOS() != llvm::Triple::RTEMS)
1380 if (TC.getTriple().isOSFreeBSD() ||
1381 TC.getTriple().isOSNetBSD() ||
1382 TC.getTriple().isOSOpenBSD())
1387 if (TC.getTriple().isOSLinux() && !TC.getTriple().isAndroid() &&
1388 !TC.getTriple().isMusl())
1393 collectSanitizerRuntimes(const ToolChain &TC, const ArgList &Args,
1399 const SanitizerArgs &SanArgs = TC.getSanitizerArgs(Args);
1404 if (!Args.hasArg(options::OPT_shared) && !TC.getTriple().isAndroid())
1409 if (!Args.hasArg(options::OPT_shared) && !TC.getTriple().isAndroid())
1526 bool tools::addSanitizerRuntimes(const ToolChain &TC, const ArgList &Args,
1528 const SanitizerArgs &SanArgs = TC.getSanitizerArgs(Args);
1532 collectSanitizerRuntimes(TC, Args, SharedRuntimes, StaticRuntimes,
1547 addSanitizerRuntime(TC, Args, CmdArgs, "fuzzer", false, true);
1549 addSanitizerRuntime(TC, Args, CmdArgs, "fuzzer_interceptors", false,
1556 TC.AddCXXStdlibLibArgs(Args, CmdArgs);
1563 addSanitizerRuntime(TC, Args, CmdArgs, RT, true, false);
1565 addSanitizerRuntime(TC, Args, CmdArgs, RT, false, true);
1568 addSanitizerRuntime(TC, Args, CmdArgs, RT, false, true);
1569 AddExportDynamic |= !addSanitizerDynamicList(TC, Args, CmdArgs, RT);
1572 addSanitizerRuntime(TC, Args, CmdArgs, RT, false, false);
1573 AddExportDynamic |= !addSanitizerDynamicList(TC, Args, CmdArgs, RT);
1584 if (!TC.getTriple().isAndroid()) {
1585 TC.getDriver().Diag(diag::err_drv_unsupported_opt_for_target)
1586 << "-fsanitize=memtag*" << TC.getTriple().str();
1599 bool tools::addXRayRuntime(const ToolChain&TC, const ArgList &Args, ArgStringList &CmdArgs) {
1603 if (TC.getXRayArgs().needsXRayRt()) {
1605 CmdArgs.push_back(TC.getCompilerRTArgString(Args, "xray"));
1606 for (const auto &Mode : TC.getXRayArgs().modeList())
1607 CmdArgs.push_back(TC.getCompilerRTArgString(Args, Mode));
1615 void tools::linkXRayRuntimeDeps(const ToolChain &TC,
1618 addAsNeededOption(TC, Args, CmdArgs, false);
1620 if (!TC.getTriple().isOSOpenBSD())
1624 if (!TC.getTriple().isOSFreeBSD() &&
1625 !TC.getTriple().isOSNetBSD() &&
1626 !TC.getTriple().isOSOpenBSD())
1670 void tools::SplitDebugInfo(const ToolChain &TC, Compilation &C, const Tool &T,
1685 Args.MakeArgString(TC.GetProgramPath(CLANG_DEFAULT_OBJCOPY));
1994 unsigned tools::ParseFunctionAlignment(const ToolChain &TC,
2007 TC.getDriver().Diag(diag::err_drv_invalid_int_value)
2054 static unsigned ParseDebugDefaultVersion(const ToolChain &TC,
2064 TC.getDriver().Diag(diag::err_drv_invalid_int_value)
2084 unsigned tools::getDwarfVersion(const ToolChain &TC,
2086 unsigned DwarfVersion = ParseDebugDefaultVersion(TC, Args);
2090 if (DwarfVersion == 5 && TC.getTriple().isOSAIX())
2091 TC.getDriver().Diag(diag::err_drv_unsupported_opt_for_target)
2092 << GDwarfN->getSpelling() << TC.getTriple().str();
2095 DwarfVersion = TC.GetDefaultDwarfVersion();
2120 static LibGccType getLibGccType(const ToolChain &TC, const Driver &D,
2125 TC.getTriple().isAndroid())
2145 static void AddUnwindLibrary(const ToolChain &TC, const Driver &D,
2147 ToolChain::UnwindLibType UNW = TC.GetUnwindLibType(Args);
2149 if (TC.getTriple().isOHOSFamily() && UNW == ToolChain::UNW_CompilerRT) {
2155 if ((TC.getTriple().isAndroid() && UNW == ToolChain::UNW_Libgcc) ||
2156 TC.getTriple().isOSIAMCU() || TC.getTriple().isOSBinFormatWasm() ||
2157 TC.getTriple().isWindowsMSVCEnvironment() || UNW == ToolChain::UNW_None)
2160 LibGccType LGT = getLibGccType(TC, D, Args);
2163 !TC.getTriple().isAndroid() &&
2164 !TC.getTriple().isOSCygMing() && !TC.getTriple().isOSAIX();
2166 addAsNeededOption(TC, Args, CmdArgs, true);
2179 if (TC.getTriple().isOSAIX()) {
2187 if (TC.getTriple().isOSCygMing())
2200 addAsNeededOption(TC, Args, CmdArgs, false);
2203 static void AddLibgcc(const ToolChain &TC, const Driver &D,
2205 LibGccType LGT = getLibGccType(TC, D, Args);
2209 AddUnwindLibrary(TC, D, CmdArgs, Args);
2215 void tools::AddRunTimeLibs(const ToolChain &TC, const Driver &D,
2218 ToolChain::RuntimeLibType RLT = TC.GetRuntimeLibType(Args);
2222 CmdArgs.push_back(TC.getCompilerRTArgString(Args, "builtins"));
2223 AddUnwindLibrary(TC, D, CmdArgs, Args);
2227 if (TC.getTriple().isKnownWindowsMSVCEnvironment()) {
2232 TC.getDriver().Diag(diag::err_drv_unsupported_rtlib_for_platform)
2236 AddLibgcc(TC, D, CmdArgs, Args);
2243 if (TC.getTriple().isAndroid() && !Args.hasArg(options::OPT_static) &&
2791 void tools::addHIPRuntimeLibArgs(const ToolChain &TC, Compilation &C,
2797 TC.AddHIPRuntimeLibArgs(Args, CmdArgs);
2806 void tools::addOutlineAtomicsArgs(const Driver &D, const ToolChain &TC,
2825 } else if (Triple.isAArch64() && TC.IsAArch64OutlineAtomicsDefault(Args)) {