Lines Matching refs:Opts
777 static void GenerateAnalyzerArgs(AnalyzerOptions &Opts, in GenerateAnalyzerArgs() argument
780 const AnalyzerOptions *AnalyzerOpts = &Opts; in GenerateAnalyzerArgs()
793 if (Opts.AnalysisStoreOpt != RegionStoreModel) { in GenerateAnalyzerArgs()
794 switch (Opts.AnalysisStoreOpt) { in GenerateAnalyzerArgs()
805 if (Opts.AnalysisConstraintsOpt != RangeConstraintsModel) { in GenerateAnalyzerArgs()
806 switch (Opts.AnalysisConstraintsOpt) { in GenerateAnalyzerArgs()
817 if (Opts.AnalysisDiagOpt != PD_HTML) { in GenerateAnalyzerArgs()
818 switch (Opts.AnalysisDiagOpt) { in GenerateAnalyzerArgs()
829 if (Opts.AnalysisPurgeOpt != PurgeStmt) { in GenerateAnalyzerArgs()
830 switch (Opts.AnalysisPurgeOpt) { in GenerateAnalyzerArgs()
841 if (Opts.InliningMode != NoRedundancy) { in GenerateAnalyzerArgs()
842 switch (Opts.InliningMode) { in GenerateAnalyzerArgs()
853 for (const auto &CP : Opts.CheckersAndPackages) { in GenerateAnalyzerArgs()
862 for (const auto &C : Opts.Config) { in GenerateAnalyzerArgs()
875 static bool ParseAnalyzerArgs(AnalyzerOptions &Opts, ArgList &Args, in ParseAnalyzerArgs() argument
879 AnalyzerOptions *AnalyzerOpts = &Opts; in ParseAnalyzerArgs()
903 Opts.AnalysisStoreOpt = Value; in ParseAnalyzerArgs()
918 Opts.AnalysisConstraintsOpt = Value; in ParseAnalyzerArgs()
933 Opts.AnalysisDiagOpt = Value; in ParseAnalyzerArgs()
948 Opts.AnalysisPurgeOpt = Value; in ParseAnalyzerArgs()
963 Opts.InliningMode = Value; in ParseAnalyzerArgs()
967 Opts.CheckersAndPackages.clear(); in ParseAnalyzerArgs()
978 Opts.CheckersAndPackages.emplace_back(std::string(CheckerOrPackage), in ParseAnalyzerArgs()
1007 if (!key.contains(":") && Opts.isUnknownAnalyzerConfig(key)) { in ParseAnalyzerArgs()
1008 if (Opts.ShouldEmitErrorsOnInvalidConfigValue) in ParseAnalyzerArgs()
1014 Opts.Config[key] = std::string(val); in ParseAnalyzerArgs()
1018 if (Opts.ShouldEmitErrorsOnInvalidConfigValue) in ParseAnalyzerArgs()
1019 parseAnalyzerConfigs(Opts, &Diags); in ParseAnalyzerArgs()
1021 parseAnalyzerConfigs(Opts, nullptr); in ParseAnalyzerArgs()
1023 llvm::raw_string_ostream os(Opts.FullCompilerInvocation); in ParseAnalyzerArgs()
1286 static void setPGOUseInstrumentor(CodeGenOptions &Opts, in setPGOUseInstrumentor() argument
1292 Opts.setProfileUse(CodeGenOptions::ProfileClangInstr); in setPGOUseInstrumentor()
1299 Opts.setProfileUse(CodeGenOptions::ProfileCSIRInstr); in setPGOUseInstrumentor()
1301 Opts.setProfileUse(CodeGenOptions::ProfileIRInstr); in setPGOUseInstrumentor()
1303 Opts.setProfileUse(CodeGenOptions::ProfileClangInstr); in setPGOUseInstrumentor()
1307 const CodeGenOptions &Opts, SmallVectorImpl<const char *> &Args, in GenerateCodeGenArgs() argument
1310 const CodeGenOptions &CodeGenOpts = Opts; in GenerateCodeGenArgs()
1312 if (Opts.OptimizationLevel == 0) in GenerateCodeGenArgs()
1315 GenerateArg(Args, OPT_O, Twine(Opts.OptimizationLevel), SA); in GenerateCodeGenArgs()
1328 if (Opts.OptimizationLevel > 0) { in GenerateCodeGenArgs()
1329 if (Opts.Inlining == CodeGenOptions::NormalInlining) in GenerateCodeGenArgs()
1331 else if (Opts.Inlining == CodeGenOptions::OnlyHintInlining) in GenerateCodeGenArgs()
1333 else if (Opts.Inlining == CodeGenOptions::OnlyAlwaysInlining) in GenerateCodeGenArgs()
1337 if (Opts.DirectAccessExternalData && LangOpts->PICLevel != 0) in GenerateCodeGenArgs()
1339 else if (!Opts.DirectAccessExternalData && LangOpts->PICLevel == 0) in GenerateCodeGenArgs()
1343 switch (Opts.DebugInfo) { in GenerateCodeGenArgs()
1372 for (const auto &Prefix : Opts.DebugPrefixMap) in GenerateCodeGenArgs()
1376 for (const auto &Prefix : Opts.CoveragePrefixMap) in GenerateCodeGenArgs()
1380 if (Opts.NewStructPathTBAA) in GenerateCodeGenArgs()
1383 if (Opts.OptimizeSize == 1) in GenerateCodeGenArgs()
1385 else if (Opts.OptimizeSize == 2) in GenerateCodeGenArgs()
1393 if (Opts.UnrollLoops && Opts.OptimizationLevel <= 1) in GenerateCodeGenArgs()
1395 else if (!Opts.UnrollLoops && Opts.OptimizationLevel > 1) in GenerateCodeGenArgs()
1398 if (!Opts.BinutilsVersion.empty()) in GenerateCodeGenArgs()
1399 GenerateArg(Args, OPT_fbinutils_version_EQ, Opts.BinutilsVersion, SA); in GenerateCodeGenArgs()
1401 if (Opts.DebugNameTable == in GenerateCodeGenArgs()
1404 else if (Opts.DebugNameTable == in GenerateCodeGenArgs()
1412 if (Opts.TimePasses) { in GenerateCodeGenArgs()
1413 if (Opts.TimePassesPerRun) in GenerateCodeGenArgs()
1419 if (Opts.PrepareForLTO && !Opts.PrepareForThinLTO) in GenerateCodeGenArgs()
1422 if (Opts.PrepareForThinLTO) in GenerateCodeGenArgs()
1425 if (!Opts.ThinLTOIndexFile.empty()) in GenerateCodeGenArgs()
1426 GenerateArg(Args, OPT_fthinlto_index_EQ, Opts.ThinLTOIndexFile, SA); in GenerateCodeGenArgs()
1428 if (Opts.SaveTempsFilePrefix == OutputFile) in GenerateCodeGenArgs()
1432 if (!Opts.MemoryProfileOutput.empty()) { in GenerateCodeGenArgs()
1433 if (Opts.MemoryProfileOutput == MemProfileBasename) { in GenerateCodeGenArgs()
1437 Opts.MemoryProfileOutput.size() - MemProfileBasename.size(); in GenerateCodeGenArgs()
1439 Opts.MemoryProfileOutput.substr(0, ArgLength), SA); in GenerateCodeGenArgs()
1443 if (memcmp(Opts.CoverageVersion, "408*", 4) != 0) in GenerateCodeGenArgs()
1445 StringRef(Opts.CoverageVersion, 4), SA); in GenerateCodeGenArgs()
1451 if (Opts.XRayInstrumentationBundle.Mask != XRayInstrKind::All) { in GenerateCodeGenArgs()
1453 serializeXRayInstrumentationBundle(Opts.XRayInstrumentationBundle); in GenerateCodeGenArgs()
1458 if (Opts.CFProtectionReturn && Opts.CFProtectionBranch) in GenerateCodeGenArgs()
1460 else if (Opts.CFProtectionReturn) in GenerateCodeGenArgs()
1462 else if (Opts.CFProtectionBranch) in GenerateCodeGenArgs()
1465 for (const auto &F : Opts.LinkBitcodeFiles) { in GenerateCodeGenArgs()
1476 if (Opts.ExplicitEmulatedTLS) { in GenerateCodeGenArgs()
1478 Args, Opts.EmulatedTLS ? OPT_femulated_tls : OPT_fno_emulated_tls, SA); in GenerateCodeGenArgs()
1481 if (Opts.FPDenormalMode != llvm::DenormalMode::getIEEE()) in GenerateCodeGenArgs()
1482 GenerateArg(Args, OPT_fdenormal_fp_math_EQ, Opts.FPDenormalMode.str(), SA); in GenerateCodeGenArgs()
1484 if (Opts.FP32DenormalMode != llvm::DenormalMode::getIEEE()) in GenerateCodeGenArgs()
1485 GenerateArg(Args, OPT_fdenormal_fp_math_f32_EQ, Opts.FP32DenormalMode.str(), in GenerateCodeGenArgs()
1488 if (Opts.StructReturnConvention == CodeGenOptions::SRCK_OnStack) { in GenerateCodeGenArgs()
1492 } else if (Opts.StructReturnConvention == CodeGenOptions::SRCK_InRegs) { in GenerateCodeGenArgs()
1498 if (Opts.EnableAIXExtendedAltivecABI) in GenerateCodeGenArgs()
1501 if (!Opts.OptRecordPasses.empty()) in GenerateCodeGenArgs()
1502 GenerateArg(Args, OPT_opt_record_passes, Opts.OptRecordPasses, SA); in GenerateCodeGenArgs()
1504 if (!Opts.OptRecordFormat.empty()) in GenerateCodeGenArgs()
1505 GenerateArg(Args, OPT_opt_record_format, Opts.OptRecordFormat, SA); in GenerateCodeGenArgs()
1508 Opts.OptimizationRemark); in GenerateCodeGenArgs()
1511 Opts.OptimizationRemarkMissed); in GenerateCodeGenArgs()
1514 Opts.OptimizationRemarkAnalysis); in GenerateCodeGenArgs()
1517 Opts.DiagnosticsHotnessThreshold in GenerateCodeGenArgs()
1518 ? Twine(*Opts.DiagnosticsHotnessThreshold) in GenerateCodeGenArgs()
1522 for (StringRef Sanitizer : serializeSanitizerKinds(Opts.SanitizeRecover)) in GenerateCodeGenArgs()
1525 for (StringRef Sanitizer : serializeSanitizerKinds(Opts.SanitizeTrap)) in GenerateCodeGenArgs()
1528 if (!Opts.EmitVersionIdentMetadata) in GenerateCodeGenArgs()
1531 switch (Opts.FiniteLoops) { in GenerateCodeGenArgs()
1543 bool CompilerInvocation::ParseCodeGenArgs(CodeGenOptions &Opts, ArgList &Args, in ParseCodeGenArgs() argument
1561 Opts.OptimizationLevel = OptimizationLevel; in ParseCodeGenArgs()
1565 CodeGenOptions &CodeGenOpts = Opts; in ParseCodeGenArgs()
1583 Opts.setInlining((Opts.OptimizationLevel == 0) in ParseCodeGenArgs()
1591 if (Opts.OptimizationLevel > 0) { in ParseCodeGenArgs()
1594 Opts.setInlining(CodeGenOptions::NormalInlining); in ParseCodeGenArgs()
1596 Opts.setInlining(CodeGenOptions::OnlyHintInlining); in ParseCodeGenArgs()
1598 Opts.setInlining(CodeGenOptions::OnlyAlwaysInlining); in ParseCodeGenArgs()
1604 Opts.DirectAccessExternalData = in ParseCodeGenArgs()
1623 Opts.setDebugInfo(static_cast<codegenoptions::DebugInfoKind>(Val)); in ParseCodeGenArgs()
1631 Opts.getDebugInfo() == codegenoptions::LimitedDebugInfo) in ParseCodeGenArgs()
1632 Opts.setDebugInfo(codegenoptions::DebugInfoConstructor); in ParseCodeGenArgs()
1634 Opts.getDebugInfo() == codegenoptions::DebugInfoConstructor) in ParseCodeGenArgs()
1635 Opts.setDebugInfo(codegenoptions::LimitedDebugInfo); in ParseCodeGenArgs()
1640 Opts.DebugPrefixMap.insert( in ParseCodeGenArgs()
1646 Opts.CoveragePrefixMap.insert( in ParseCodeGenArgs()
1655 if (Opts.OptimizationLevel > 0 && Opts.hasReducedDebugInfo() && in ParseCodeGenArgs()
1657 Opts.EmitCallSiteInfo = true; in ParseCodeGenArgs()
1659 if (!Opts.EnableDIPreservationVerify && Opts.DIBugsReportFilePath.size()) { in ParseCodeGenArgs()
1661 << Opts.DIBugsReportFilePath; in ParseCodeGenArgs()
1662 Opts.DIBugsReportFilePath = ""; in ParseCodeGenArgs()
1665 Opts.NewStructPathTBAA = !Args.hasArg(OPT_no_struct_path_tbaa) && in ParseCodeGenArgs()
1667 Opts.OptimizeSize = getOptimizationLevelSize(Args); in ParseCodeGenArgs()
1668 Opts.SimplifyLibCalls = !LangOpts->NoBuiltin; in ParseCodeGenArgs()
1669 if (Opts.SimplifyLibCalls) in ParseCodeGenArgs()
1670 Opts.NoBuiltinFuncs = LangOpts->NoBuiltinFuncs; in ParseCodeGenArgs()
1671 Opts.UnrollLoops = in ParseCodeGenArgs()
1673 (Opts.OptimizationLevel > 1)); in ParseCodeGenArgs()
1674 Opts.BinutilsVersion = in ParseCodeGenArgs()
1677 Opts.DebugNameTable = static_cast<unsigned>( in ParseCodeGenArgs()
1684 if (!Opts.ProfileInstrumentUsePath.empty()) in ParseCodeGenArgs()
1685 setPGOUseInstrumentor(Opts, Opts.ProfileInstrumentUsePath); in ParseCodeGenArgs()
1688 Opts.TimePasses = true; in ParseCodeGenArgs()
1692 if (Opts.LegacyPassManager) in ParseCodeGenArgs()
1698 Opts.TimePassesPerRun = false; in ParseCodeGenArgs()
1700 Opts.TimePassesPerRun = true; in ParseCodeGenArgs()
1707 Opts.PrepareForLTO = Args.hasArg(OPT_flto, OPT_flto_EQ); in ParseCodeGenArgs()
1708 Opts.PrepareForThinLTO = false; in ParseCodeGenArgs()
1712 Opts.PrepareForThinLTO = true; in ParseCodeGenArgs()
1720 Opts.ThinLTOIndexFile = in ParseCodeGenArgs()
1724 Opts.SaveTempsFilePrefix = in ParseCodeGenArgs()
1735 Opts.MemoryProfileOutput = std::string(Path); in ParseCodeGenArgs()
1737 Opts.MemoryProfileOutput = MemProfileBasename; in ParseCodeGenArgs()
1739 memcpy(Opts.CoverageVersion, "408*", 4); in ParseCodeGenArgs()
1740 if (Opts.EmitGcovArcs || Opts.EmitGcovNotes) { in ParseCodeGenArgs()
1748 memcpy(Opts.CoverageVersion, CoverageVersion.data(), 4); in ParseCodeGenArgs()
1767 Opts.CmdArgs.insert(Opts.CmdArgs.end(), ArgStr.begin(), ArgStr.end()); in ParseCodeGenArgs()
1769 Opts.CmdArgs.push_back('\0'); in ParseCodeGenArgs()
1776 Opts.XRayInstrumentationBundle.Mask = XRayInstrKind::All; in ParseCodeGenArgs()
1780 Diags, Opts.XRayInstrumentationBundle); in ParseCodeGenArgs()
1785 Opts.CFProtectionReturn = 1; in ParseCodeGenArgs()
1786 Opts.CFProtectionBranch = 1; in ParseCodeGenArgs()
1788 Opts.CFProtectionReturn = 1; in ParseCodeGenArgs()
1790 Opts.CFProtectionBranch = 1; in ParseCodeGenArgs()
1806 Opts.LinkBitcodeFiles.push_back(F); in ParseCodeGenArgs()
1811 Opts.ExplicitEmulatedTLS = true; in ParseCodeGenArgs()
1824 Opts.FPDenormalMode = llvm::parseDenormalFPAttribute(Val); in ParseCodeGenArgs()
1825 if (!Opts.FPDenormalMode.isValid()) in ParseCodeGenArgs()
1831 Opts.FP32DenormalMode = llvm::parseDenormalFPAttribute(Val); in ParseCodeGenArgs()
1832 if (!Opts.FP32DenormalMode.isValid()) in ParseCodeGenArgs()
1850 Opts.setStructReturnConvention(CodeGenOptions::SRCK_OnStack); in ParseCodeGenArgs()
1854 Opts.setStructReturnConvention(CodeGenOptions::SRCK_InRegs); in ParseCodeGenArgs()
1865 Opts.EnableAIXExtendedAltivecABI = O.matches(OPT_mabi_EQ_vec_extabi); in ParseCodeGenArgs()
1870 if (!Opts.OptRecordFile.empty()) in ParseCodeGenArgs()
1874 Opts.OptRecordPasses = A->getValue(); in ParseCodeGenArgs()
1879 Opts.OptRecordFormat = A->getValue(); in ParseCodeGenArgs()
1883 Opts.OptimizationRemark = in ParseCodeGenArgs()
1886 Opts.OptimizationRemarkMissed = in ParseCodeGenArgs()
1889 Opts.OptimizationRemarkAnalysis = ParseOptimizationRemark( in ParseCodeGenArgs()
1892 NeedLocTracking |= Opts.OptimizationRemark.hasValidPattern() || in ParseCodeGenArgs()
1893 Opts.OptimizationRemarkMissed.hasValidPattern() || in ParseCodeGenArgs()
1894 Opts.OptimizationRemarkAnalysis.hasValidPattern(); in ParseCodeGenArgs()
1896 bool UsingSampleProfile = !Opts.SampleProfileFile.empty(); in ParseCodeGenArgs()
1898 (Opts.getProfileUse() != CodeGenOptions::ProfileNone); in ParseCodeGenArgs()
1900 if (Opts.DiagnosticsWithHotness && !UsingProfile && in ParseCodeGenArgs()
1916 Opts.DiagnosticsHotnessThreshold = *ResultOrErr; in ParseCodeGenArgs()
1917 if ((!Opts.DiagnosticsHotnessThreshold.hasValue() || in ParseCodeGenArgs()
1918 Opts.DiagnosticsHotnessThreshold.getValue() > 0) && in ParseCodeGenArgs()
1931 if (!Opts.StackUsageOutput.empty()) in ParseCodeGenArgs()
1936 if (NeedLocTracking && Opts.getDebugInfo() == codegenoptions::NoDebugInfo) in ParseCodeGenArgs()
1937 Opts.setDebugInfo(codegenoptions::LocTrackingOnly); in ParseCodeGenArgs()
1943 Opts.SanitizeRecover); in ParseCodeGenArgs()
1946 Opts.SanitizeTrap); in ParseCodeGenArgs()
1948 Opts.EmitVersionIdentMetadata = Args.hasFlag(OPT_Qy, OPT_Qn, true); in ParseCodeGenArgs()
1951 Opts.FiniteLoops = CodeGenOptions::FiniteLoopsKind::Always; in ParseCodeGenArgs()
1953 Opts.FiniteLoops = CodeGenOptions::FiniteLoopsKind::Never; in ParseCodeGenArgs()
1955 Opts.EmitIEEENaNCompliantInsts = in ParseCodeGenArgs()
1957 if (!Opts.EmitIEEENaNCompliantInsts && !LangOptsRef.NoHonorNaNs) in ParseCodeGenArgs()
1964 GenerateDependencyOutputArgs(const DependencyOutputOptions &Opts, in GenerateDependencyOutputArgs() argument
1967 const DependencyOutputOptions &DependencyOutputOpts = Opts; in GenerateDependencyOutputArgs()
1979 if (Opts.ShowIncludesDest != ShowIncludesDestination::None) in GenerateDependencyOutputArgs()
1982 for (const auto &Dep : Opts.ExtraDeps) { in GenerateDependencyOutputArgs()
2002 static bool ParseDependencyOutputArgs(DependencyOutputOptions &Opts, in ParseDependencyOutputArgs() argument
2008 DependencyOutputOptions &DependencyOutputOpts = Opts; in ParseDependencyOutputArgs()
2025 Opts.ShowIncludesDest = ShowIncludesDestination::Stderr; in ParseDependencyOutputArgs()
2027 Opts.ShowIncludesDest = ShowIncludesDestination::Stdout; in ParseDependencyOutputArgs()
2029 Opts.ShowIncludesDest = ShowIncludesDestination::None; in ParseDependencyOutputArgs()
2039 Opts.ExtraDeps.emplace_back(std::string(Val), EDK_SanitizeIgnorelist); in ParseDependencyOutputArgs()
2041 if (Opts.IncludeSystemHeaders) { in ParseDependencyOutputArgs()
2045 Opts.ExtraDeps.emplace_back(std::string(Val), EDK_SanitizeIgnorelist); in ParseDependencyOutputArgs()
2052 Opts.ExtraDeps.emplace_back(Filename, EDK_ProfileList); in ParseDependencyOutputArgs()
2056 Opts.ExtraDeps.emplace_back(A->getValue(), EDK_DepFileEntry); in ParseDependencyOutputArgs()
2062 Opts.ExtraDeps.emplace_back(std::string(Val), EDK_ModuleFile); in ParseDependencyOutputArgs()
2119 static void GenerateFileSystemArgs(const FileSystemOptions &Opts, in GenerateFileSystemArgs() argument
2122 const FileSystemOptions &FileSystemOpts = Opts; in GenerateFileSystemArgs()
2136 static bool ParseFileSystemArgs(FileSystemOptions &Opts, const ArgList &Args, in ParseFileSystemArgs() argument
2140 FileSystemOptions &FileSystemOpts = Opts; in ParseFileSystemArgs()
2156 static void GenerateMigratorArgs(const MigratorOptions &Opts, in GenerateMigratorArgs() argument
2159 const MigratorOptions &MigratorOpts = Opts; in GenerateMigratorArgs()
2172 static bool ParseMigratorArgs(MigratorOptions &Opts, const ArgList &Args, in ParseMigratorArgs() argument
2176 MigratorOptions &MigratorOpts = Opts; in ParseMigratorArgs()
2193 const DiagnosticOptions &Opts, SmallVectorImpl<const char *> &Args, in GenerateDiagnosticArgs() argument
2195 const DiagnosticOptions *DiagnosticOpts = &Opts; in GenerateDiagnosticArgs()
2207 if (!Opts.DiagnosticSerializationFile.empty()) in GenerateDiagnosticArgs()
2209 Opts.DiagnosticSerializationFile, SA); in GenerateDiagnosticArgs()
2211 if (Opts.ShowColors) in GenerateDiagnosticArgs()
2214 if (Opts.VerifyDiagnostics && in GenerateDiagnosticArgs()
2215 llvm::is_contained(Opts.VerifyPrefixes, "expected")) in GenerateDiagnosticArgs()
2218 for (const auto &Prefix : Opts.VerifyPrefixes) in GenerateDiagnosticArgs()
2222 DiagnosticLevelMask VIU = Opts.getVerifyIgnoreUnexpected(); in GenerateDiagnosticArgs()
2238 for (const auto &Warning : Opts.Warnings) { in GenerateDiagnosticArgs()
2245 for (const auto &Remark : Opts.Remarks) { in GenerateDiagnosticArgs()
2258 bool clang::ParseDiagnosticArgs(DiagnosticOptions &Opts, ArgList &Args, in ParseDiagnosticArgs() argument
2272 DiagnosticOptions *DiagnosticOpts = &Opts; in ParseDiagnosticArgs()
2285 llvm::sys::Process::UseANSIEscapeCodes(Opts.UseANSIEscapeCodes); in ParseDiagnosticArgs()
2289 Opts.DiagnosticSerializationFile = A->getValue(); in ParseDiagnosticArgs()
2290 Opts.ShowColors = parseShowColorsArgs(Args, DefaultDiagColor); in ParseDiagnosticArgs()
2292 Opts.VerifyDiagnostics = Args.hasArg(OPT_verify) || Args.hasArg(OPT_verify_EQ); in ParseDiagnosticArgs()
2293 Opts.VerifyPrefixes = Args.getAllArgValues(OPT_verify_EQ); in ParseDiagnosticArgs()
2295 Opts.VerifyPrefixes.push_back("expected"); in ParseDiagnosticArgs()
2298 if (!checkVerifyPrefixes(Opts.VerifyPrefixes, *Diags)) in ParseDiagnosticArgs()
2299 Opts.VerifyDiagnostics = false; in ParseDiagnosticArgs()
2301 llvm::sort(Opts.VerifyPrefixes); in ParseDiagnosticArgs()
2308 Opts.setVerifyIgnoreUnexpected(DiagMask); in ParseDiagnosticArgs()
2309 if (Opts.TabStop == 0 || Opts.TabStop > DiagnosticOptions::MaxTabStop) { in ParseDiagnosticArgs()
2310 Opts.TabStop = DiagnosticOptions::DefaultTabStop; in ParseDiagnosticArgs()
2312 << Opts.TabStop << DiagnosticOptions::DefaultTabStop; in ParseDiagnosticArgs()
2315 addDiagnosticArgs(Args, OPT_W_Group, OPT_W_value_Group, Opts.Warnings); in ParseDiagnosticArgs()
2316 addDiagnosticArgs(Args, OPT_R_Group, OPT_R_value_Group, Opts.Remarks); in ParseDiagnosticArgs()
2421 static void GenerateFrontendArgs(const FrontendOptions &Opts, in GenerateFrontendArgs() argument
2425 const FrontendOptions &FrontendOpts = Opts; in GenerateFrontendArgs()
2438 getProgramActionOpt(Opts.ProgramAction); in GenerateFrontendArgs()
2447 assert(Opts.ProgramAction == frontend::PluginAction && in GenerateFrontendArgs()
2450 GenerateArg(Args, OPT_plugin, Opts.ActionName, SA); in GenerateFrontendArgs()
2455 if (Opts.ProgramAction == frontend::ASTDump) { in GenerateFrontendArgs()
2460 if (Opts.ASTDumpFormat != ADOF_Default) { in GenerateFrontendArgs()
2462 switch (Opts.ASTDumpFormat) { in GenerateFrontendArgs()
2470 if (Opts.ASTDumpAll) in GenerateFrontendArgs()
2472 if (Opts.ASTDumpDecls) in GenerateFrontendArgs()
2475 if (Opts.ASTDumpAll) in GenerateFrontendArgs()
2477 if (Opts.ASTDumpDecls) in GenerateFrontendArgs()
2483 if (Opts.ProgramAction == frontend::FixIt && !Opts.FixItSuffix.empty()) { in GenerateFrontendArgs()
2485 GenerateArg(Args, OPT_fixit_EQ, Opts.FixItSuffix, SA); in GenerateFrontendArgs()
2491 for (const auto &PluginArgs : Opts.PluginArgs) { in GenerateFrontendArgs()
2499 for (const auto &Ext : Opts.ModuleFileExtensions) in GenerateFrontendArgs()
2503 if (!Opts.CodeCompletionAt.FileName.empty()) in GenerateFrontendArgs()
2504 GenerateArg(Args, OPT_code_completion_at, Opts.CodeCompletionAt.ToString(), in GenerateFrontendArgs()
2507 for (const auto &Plugin : Opts.Plugins) in GenerateFrontendArgs()
2512 for (const auto &ModuleFile : Opts.ModuleFiles) in GenerateFrontendArgs()
2515 if (Opts.AuxTargetCPU.hasValue()) in GenerateFrontendArgs()
2516 GenerateArg(Args, OPT_aux_target_cpu, *Opts.AuxTargetCPU, SA); in GenerateFrontendArgs()
2518 if (Opts.AuxTargetFeatures.hasValue()) in GenerateFrontendArgs()
2519 for (const auto &Feature : *Opts.AuxTargetFeatures) in GenerateFrontendArgs()
2523 StringRef Preprocessed = Opts.DashX.isPreprocessed() ? "-cpp-output" : ""; in GenerateFrontendArgs()
2525 Opts.DashX.getFormat() == InputKind::ModuleMap ? "-module-map" : ""; in GenerateFrontendArgs()
2529 switch (Opts.DashX.getLanguage()) { in GenerateFrontendArgs()
2561 assert(Opts.DashX.getFormat() == InputKind::Precompiled && in GenerateFrontendArgs()
2574 for (const auto &Input : Opts.Inputs) in GenerateFrontendArgs()
2578 static bool ParseFrontendArgs(FrontendOptions &Opts, ArgList &Args, in ParseFrontendArgs() argument
2582 FrontendOptions &FrontendOpts = Opts; in ParseFrontendArgs()
2595 Opts.ProgramAction = frontend::ParseSyntaxOnly; in ParseFrontendArgs()
2609 Opts.ASTDumpFormat = static_cast<ASTDumpOutputFormat>(Val); in ParseFrontendArgs()
2613 Opts.ASTDumpFormat = ADOF_Default; in ParseFrontendArgs()
2618 Opts.FixItSuffix = A->getValue(); in ParseFrontendArgs()
2647 Opts.ProgramAction = *ProgramAction; in ParseFrontendArgs()
2651 Opts.Plugins.emplace_back(A->getValue(0)); in ParseFrontendArgs()
2652 Opts.ProgramAction = frontend::PluginAction; in ParseFrontendArgs()
2653 Opts.ActionName = A->getValue(); in ParseFrontendArgs()
2656 Opts.PluginArgs[AA->getValue(0)].emplace_back(AA->getValue(1)); in ParseFrontendArgs()
2673 Opts.ModuleFileExtensions.push_back( in ParseFrontendArgs()
2679 Opts.CodeCompletionAt = in ParseFrontendArgs()
2681 if (Opts.CodeCompletionAt.FileName.empty()) in ParseFrontendArgs()
2686 Opts.Plugins = Args.getAllArgValues(OPT_load); in ParseFrontendArgs()
2687 Opts.ASTDumpDecls = Args.hasArg(OPT_ast_dump, OPT_ast_dump_EQ); in ParseFrontendArgs()
2688 Opts.ASTDumpAll = Args.hasArg(OPT_ast_dump_all, OPT_ast_dump_all_EQ); in ParseFrontendArgs()
2693 Opts.ModuleFiles.push_back(std::string(Val)); in ParseFrontendArgs()
2696 if (Opts.ProgramAction != frontend::GenerateModule && Opts.IsSystemModule) in ParseFrontendArgs()
2701 Opts.AuxTargetCPU = std::string(Args.getLastArgValue(OPT_aux_target_cpu)); in ParseFrontendArgs()
2703 Opts.AuxTargetFeatures = Args.getAllArgValues(OPT_aux_target_feature); in ParseFrontendArgs()
2705 if (Opts.ARCMTAction != FrontendOptions::ARCMT_None && in ParseFrontendArgs()
2706 Opts.ObjCMTAction != FrontendOptions::ObjCMT_None) { in ParseFrontendArgs()
2766 Opts.Inputs.clear(); in ParseFrontendArgs()
2785 if (Opts.ProgramAction == frontend::GenerateModule && in ParseFrontendArgs()
2788 IsSystem = Opts.IsSystemModule; in ParseFrontendArgs()
2791 Opts.Inputs.emplace_back(std::move(Inputs[i]), IK, IsSystem); in ParseFrontendArgs()
2794 Opts.DashX = DashX; in ParseFrontendArgs()
2806 static void GenerateHeaderSearchArgs(HeaderSearchOptions &Opts, in GenerateHeaderSearchArgs() argument
2809 const HeaderSearchOptions *HeaderSearchOpts = &Opts; in GenerateHeaderSearchArgs()
2821 if (Opts.UseLibcxx) in GenerateHeaderSearchArgs()
2824 if (!Opts.ModuleCachePath.empty()) in GenerateHeaderSearchArgs()
2825 GenerateArg(Args, OPT_fmodules_cache_path, Opts.ModuleCachePath, SA); in GenerateHeaderSearchArgs()
2827 for (const auto &File : Opts.PrebuiltModuleFiles) in GenerateHeaderSearchArgs()
2830 for (const auto &Path : Opts.PrebuiltModulePaths) in GenerateHeaderSearchArgs()
2833 for (const auto &Macro : Opts.ModulesIgnoreMacros) in GenerateHeaderSearchArgs()
2845 auto It = Opts.UserEntries.begin(); in GenerateHeaderSearchArgs()
2846 auto End = Opts.UserEntries.end(); in GenerateHeaderSearchArgs()
2922 for (const auto &P : Opts.SystemHeaderPrefixes) { in GenerateHeaderSearchArgs()
2928 for (const std::string &F : Opts.VFSOverlayFiles) in GenerateHeaderSearchArgs()
2932 static bool ParseHeaderSearchArgs(HeaderSearchOptions &Opts, ArgList &Args, in ParseHeaderSearchArgs() argument
2937 HeaderSearchOptions *HeaderSearchOpts = &Opts; in ParseHeaderSearchArgs()
2951 Opts.UseLibcxx = (strcmp(A->getValue(), "libc++") == 0); in ParseHeaderSearchArgs()
2962 Opts.ModuleCachePath = std::string(P.str()); in ParseHeaderSearchArgs()
2969 Opts.PrebuiltModuleFiles.insert( in ParseHeaderSearchArgs()
2974 Opts.AddPrebuiltModulePath(A->getValue()); in ParseHeaderSearchArgs()
2978 Opts.ModulesIgnoreMacros.insert( in ParseHeaderSearchArgs()
3001 llvm::sys::path::append(Buffer, Opts.Sysroot, in ParseHeaderSearchArgs()
3006 Opts.AddPath(Path, Group, IsFramework, in ParseHeaderSearchArgs()
3018 Opts.AddPath(Prefix.str() + A->getValue(), frontend::After, false, true); in ParseHeaderSearchArgs()
3020 Opts.AddPath(Prefix.str() + A->getValue(), frontend::Angled, false, true); in ParseHeaderSearchArgs()
3024 Opts.AddPath(A->getValue(), frontend::After, false, true); in ParseHeaderSearchArgs()
3026 Opts.AddPath(A->getValue(), frontend::Quoted, false, true); in ParseHeaderSearchArgs()
3028 Opts.AddPath(A->getValue(), frontend::System, false, in ParseHeaderSearchArgs()
3031 Opts.AddPath(A->getValue(), frontend::System, true, true); in ParseHeaderSearchArgs()
3033 Opts.AddPath(A->getValue(), frontend::System, /*IsFramework=*/true, in ParseHeaderSearchArgs()
3038 Opts.AddPath(A->getValue(), frontend::CSystem, false, true); in ParseHeaderSearchArgs()
3040 Opts.AddPath(A->getValue(), frontend::CXXSystem, false, true); in ParseHeaderSearchArgs()
3042 Opts.AddPath(A->getValue(), frontend::ObjCSystem, false,true); in ParseHeaderSearchArgs()
3044 Opts.AddPath(A->getValue(), frontend::ObjCXXSystem, false, true); in ParseHeaderSearchArgs()
3052 Opts.AddPath(A->getValue(), Group, false, true); in ParseHeaderSearchArgs()
3058 Opts.AddSystemHeaderPrefix( in ParseHeaderSearchArgs()
3062 Opts.AddVFSOverlayFile(A->getValue()); in ParseHeaderSearchArgs()
3067 void CompilerInvocation::setLangDefaults(LangOptions &Opts, InputKind IK, in setLangDefaults() argument
3079 Opts.AsmPreprocessor = 1; in setLangDefaults()
3081 Opts.ObjC = 1; in setLangDefaults()
3136 Opts.LangStd = LangStd; in setLangDefaults()
3137 Opts.LineComment = Std.hasLineComments(); in setLangDefaults()
3138 Opts.C99 = Std.isC99(); in setLangDefaults()
3139 Opts.C11 = Std.isC11(); in setLangDefaults()
3140 Opts.C17 = Std.isC17(); in setLangDefaults()
3141 Opts.C2x = Std.isC2x(); in setLangDefaults()
3142 Opts.CPlusPlus = Std.isCPlusPlus(); in setLangDefaults()
3143 Opts.CPlusPlus11 = Std.isCPlusPlus11(); in setLangDefaults()
3144 Opts.CPlusPlus14 = Std.isCPlusPlus14(); in setLangDefaults()
3145 Opts.CPlusPlus17 = Std.isCPlusPlus17(); in setLangDefaults()
3146 Opts.CPlusPlus20 = Std.isCPlusPlus20(); in setLangDefaults()
3147 Opts.CPlusPlus2b = Std.isCPlusPlus2b(); in setLangDefaults()
3148 Opts.GNUMode = Std.isGNUMode(); in setLangDefaults()
3149 Opts.GNUCVersion = 0; in setLangDefaults()
3150 Opts.HexFloats = Std.hasHexFloats(); in setLangDefaults()
3151 Opts.ImplicitInt = Std.hasImplicitInt(); in setLangDefaults()
3153 Opts.CPlusPlusModules = Opts.CPlusPlus20; in setLangDefaults()
3156 Opts.OpenCL = Std.isOpenCL(); in setLangDefaults()
3158 Opts.OpenCLVersion = 100; in setLangDefaults()
3160 Opts.OpenCLVersion = 110; in setLangDefaults()
3162 Opts.OpenCLVersion = 120; in setLangDefaults()
3164 Opts.OpenCLVersion = 200; in setLangDefaults()
3166 Opts.OpenCLVersion = 300; in setLangDefaults()
3168 Opts.OpenCLCPlusPlusVersion = 100; in setLangDefaults()
3171 if (Opts.OpenCL) { in setLangDefaults()
3172 Opts.AltiVec = 0; in setLangDefaults()
3173 Opts.ZVector = 0; in setLangDefaults()
3174 Opts.setDefaultFPContractMode(LangOptions::FPM_On); in setLangDefaults()
3175 Opts.OpenCLCPlusPlus = Opts.CPlusPlus; in setLangDefaults()
3176 Opts.OpenCLPipes = Opts.OpenCLCPlusPlus || Opts.OpenCLVersion == 200; in setLangDefaults()
3177 Opts.OpenCLGenericAddressSpace = in setLangDefaults()
3178 Opts.OpenCLCPlusPlus || Opts.OpenCLVersion == 200; in setLangDefaults()
3181 if (Opts.IncludeDefaultHeader) { in setLangDefaults()
3182 if (Opts.DeclareOpenCLBuiltins) { in setLangDefaults()
3191 Opts.HIP = IK.getLanguage() == Language::HIP; in setLangDefaults()
3192 Opts.CUDA = IK.getLanguage() == Language::CUDA || Opts.HIP; in setLangDefaults()
3193 if (Opts.HIP) { in setLangDefaults()
3202 Opts.setDefaultFPContractMode(LangOptions::FPM_FastHonorPragmas); in setLangDefaults()
3203 } else if (Opts.CUDA) { in setLangDefaults()
3205 Opts.setDefaultFPContractMode(LangOptions::FPM_Fast); in setLangDefaults()
3208 Opts.RenderScript = IK.getLanguage() == Language::RenderScript; in setLangDefaults()
3211 Opts.Bool = Opts.OpenCL || Opts.CPlusPlus; in setLangDefaults()
3214 Opts.Half = Opts.OpenCL; in setLangDefaults()
3292 void CompilerInvocation::GenerateLangArgs(const LangOptions &Opts, in GenerateLangArgs() argument
3298 if (Opts.ObjCAutoRefCount) in GenerateLangArgs()
3300 if (Opts.PICLevel != 0) in GenerateLangArgs()
3301 GenerateArg(Args, OPT_pic_level, Twine(Opts.PICLevel), SA); in GenerateLangArgs()
3302 if (Opts.PIE) in GenerateLangArgs()
3304 for (StringRef Sanitizer : serializeSanitizerKinds(Opts.Sanitize)) in GenerateLangArgs()
3311 switch (Opts.LangStd) { in GenerateLangArgs()
3325 auto LangStandard = LangStandard::getLangStandardForKind(Opts.LangStd); in GenerateLangArgs()
3328 if (Opts.IncludeDefaultHeader) in GenerateLangArgs()
3330 if (Opts.DeclareOpenCLBuiltins) in GenerateLangArgs()
3333 const LangOptions *LangOpts = &Opts; in GenerateLangArgs()
3348 if (Opts.ObjC) { in GenerateLangArgs()
3349 GenerateArg(Args, OPT_fobjc_runtime_EQ, Opts.ObjCRuntime.getAsString(), SA); in GenerateLangArgs()
3351 if (Opts.GC == LangOptions::GCOnly) in GenerateLangArgs()
3353 else if (Opts.GC == LangOptions::HybridGC) in GenerateLangArgs()
3355 else if (Opts.ObjCAutoRefCount == 1) in GenerateLangArgs()
3358 if (Opts.ObjCWeakRuntime) in GenerateLangArgs()
3361 if (Opts.ObjCWeak) in GenerateLangArgs()
3364 if (Opts.ObjCSubscriptingLegacyRuntime) in GenerateLangArgs()
3368 if (Opts.GNUCVersion != 0) { in GenerateLangArgs()
3369 unsigned Major = Opts.GNUCVersion / 100 / 100; in GenerateLangArgs()
3370 unsigned Minor = (Opts.GNUCVersion / 100) % 100; in GenerateLangArgs()
3371 unsigned Patch = Opts.GNUCVersion % 100; in GenerateLangArgs()
3376 if (Opts.IgnoreXCOFFVisibility) in GenerateLangArgs()
3379 if (Opts.SignedOverflowBehavior == LangOptions::SOB_Trapping) { in GenerateLangArgs()
3381 GenerateArg(Args, OPT_ftrapv_handler, Opts.OverflowHandler, SA); in GenerateLangArgs()
3382 } else if (Opts.SignedOverflowBehavior == LangOptions::SOB_Defined) { in GenerateLangArgs()
3386 if (Opts.MSCompatibilityVersion != 0) { in GenerateLangArgs()
3387 unsigned Major = Opts.MSCompatibilityVersion / 10000000; in GenerateLangArgs()
3388 unsigned Minor = (Opts.MSCompatibilityVersion / 100000) % 100; in GenerateLangArgs()
3389 unsigned Subminor = Opts.MSCompatibilityVersion % 100000; in GenerateLangArgs()
3394 if ((!Opts.GNUMode && !Opts.MSVCCompat && !Opts.CPlusPlus17) || T.isOSzOS()) { in GenerateLangArgs()
3395 if (!Opts.Trigraphs) in GenerateLangArgs()
3398 if (Opts.Trigraphs) in GenerateLangArgs()
3402 if (Opts.Blocks && !(Opts.OpenCL && Opts.OpenCLVersion == 200)) in GenerateLangArgs()
3405 if (Opts.ConvergentFunctions && in GenerateLangArgs()
3406 !(Opts.OpenCL || (Opts.CUDA && Opts.CUDAIsDevice) || Opts.SYCLIsDevice)) in GenerateLangArgs()
3409 if (Opts.NoBuiltin && !Opts.Freestanding) in GenerateLangArgs()
3412 if (!Opts.NoBuiltin) in GenerateLangArgs()
3413 for (const auto &Func : Opts.NoBuiltinFuncs) in GenerateLangArgs()
3416 if (Opts.LongDoubleSize == 128) in GenerateLangArgs()
3418 else if (Opts.LongDoubleSize == 64) in GenerateLangArgs()
3425 if (Opts.OpenMP && !Opts.OpenMPSimd) { in GenerateLangArgs()
3428 if (Opts.OpenMP != 50) in GenerateLangArgs()
3429 GenerateArg(Args, OPT_fopenmp_version_EQ, Twine(Opts.OpenMP), SA); in GenerateLangArgs()
3431 if (!Opts.OpenMPUseTLS) in GenerateLangArgs()
3434 if (Opts.OpenMPIsDevice) in GenerateLangArgs()
3437 if (Opts.OpenMPIRBuilder) in GenerateLangArgs()
3441 if (Opts.OpenMPSimd) { in GenerateLangArgs()
3444 if (Opts.OpenMP != 50) in GenerateLangArgs()
3445 GenerateArg(Args, OPT_fopenmp_version_EQ, Twine(Opts.OpenMP), SA); in GenerateLangArgs()
3448 if (Opts.OpenMPCUDANumSMs != 0) in GenerateLangArgs()
3450 Twine(Opts.OpenMPCUDANumSMs), SA); in GenerateLangArgs()
3452 if (Opts.OpenMPCUDABlocksPerSM != 0) in GenerateLangArgs()
3454 Twine(Opts.OpenMPCUDABlocksPerSM), SA); in GenerateLangArgs()
3456 if (Opts.OpenMPCUDAReductionBufNum != 1024) in GenerateLangArgs()
3458 Twine(Opts.OpenMPCUDAReductionBufNum), SA); in GenerateLangArgs()
3460 if (!Opts.OMPTargetTriples.empty()) { in GenerateLangArgs()
3464 Opts.OMPTargetTriples, OS, in GenerateLangArgs()
3469 if (!Opts.OMPHostIRFile.empty()) in GenerateLangArgs()
3470 GenerateArg(Args, OPT_fopenmp_host_ir_file_path, Opts.OMPHostIRFile, SA); in GenerateLangArgs()
3472 if (Opts.OpenMPCUDAMode) in GenerateLangArgs()
3475 if (Opts.OpenMPCUDAForceFullRuntime) in GenerateLangArgs()
3481 if (Opts.DefaultFPContractMode == LangOptions::FPM_Fast) in GenerateLangArgs()
3483 else if (Opts.DefaultFPContractMode == LangOptions::FPM_On) in GenerateLangArgs()
3485 else if (Opts.DefaultFPContractMode == LangOptions::FPM_Off) in GenerateLangArgs()
3487 else if (Opts.DefaultFPContractMode == LangOptions::FPM_FastHonorPragmas) in GenerateLangArgs()
3490 for (StringRef Sanitizer : serializeSanitizerKinds(Opts.Sanitize)) in GenerateLangArgs()
3494 for (const std::string &F : Opts.NoSanitizeFiles) in GenerateLangArgs()
3497 if (Opts.getClangABICompat() == LangOptions::ClangABI::Ver3_8) in GenerateLangArgs()
3499 else if (Opts.getClangABICompat() == LangOptions::ClangABI::Ver4) in GenerateLangArgs()
3501 else if (Opts.getClangABICompat() == LangOptions::ClangABI::Ver6) in GenerateLangArgs()
3503 else if (Opts.getClangABICompat() == LangOptions::ClangABI::Ver7) in GenerateLangArgs()
3505 else if (Opts.getClangABICompat() == LangOptions::ClangABI::Ver9) in GenerateLangArgs()
3507 else if (Opts.getClangABICompat() == LangOptions::ClangABI::Ver11) in GenerateLangArgs()
3509 else if (Opts.getClangABICompat() == LangOptions::ClangABI::Ver12) in GenerateLangArgs()
3512 if (Opts.getSignReturnAddressScope() == in GenerateLangArgs()
3515 else if (Opts.getSignReturnAddressScope() == in GenerateLangArgs()
3519 if (Opts.getSignReturnAddressKey() == in GenerateLangArgs()
3523 if (Opts.CXXABI) in GenerateLangArgs()
3524 GenerateArg(Args, OPT_fcxx_abi_EQ, TargetCXXABI::getSpelling(*Opts.CXXABI), in GenerateLangArgs()
3527 if (Opts.RelativeCXXABIVTables) in GenerateLangArgs()
3532 for (const auto &MP : Opts.MacroPrefixMap) in GenerateLangArgs()
3536 bool CompilerInvocation::ParseLangArgs(LangOptions &Opts, ArgList &Args, in ParseLangArgs() argument
3548 Opts.ObjCAutoRefCount = 1; in ParseLangArgs()
3551 Opts.PICLevel = getLastArgIntValue(Args, OPT_pic_level, 0, Diags); in ParseLangArgs()
3552 Opts.PIE = Args.hasArg(OPT_pic_is_pie); in ParseLangArgs()
3554 Diags, Opts.Sanitize); in ParseLangArgs()
3626 Opts.IncludeDefaultHeader = Args.hasArg(OPT_finclude_default_header); in ParseLangArgs()
3627 Opts.DeclareOpenCLBuiltins = Args.hasArg(OPT_fdeclare_opencl_builtins); in ParseLangArgs()
3629 CompilerInvocation::setLangDefaults(Opts, IK, T, Includes, LangStd); in ParseLangArgs()
3633 LangOptions *LangOpts = &Opts; in ParseLangArgs()
3649 Opts.CFProtectionBranch = 1; in ParseLangArgs()
3660 Opts.setSYCLVersion(LangOptions::SYCL_Default); in ParseLangArgs()
3663 if (Opts.ObjC) { in ParseLangArgs()
3666 if (Opts.ObjCRuntime.tryParse(value)) in ParseLangArgs()
3671 Opts.setGC(LangOptions::GCOnly); in ParseLangArgs()
3673 Opts.setGC(LangOptions::HybridGC); in ParseLangArgs()
3675 Opts.ObjCAutoRefCount = 1; in ParseLangArgs()
3676 if (!Opts.ObjCRuntime.allowsARC()) in ParseLangArgs()
3685 Opts.ObjCWeakRuntime = 1; in ParseLangArgs()
3687 Opts.ObjCWeakRuntime = Opts.ObjCRuntime.allowsWeak(); in ParseLangArgs()
3693 assert(!Opts.ObjCWeak); in ParseLangArgs()
3694 } else if (Opts.getGC() != LangOptions::NonGC) { in ParseLangArgs()
3696 } else if (!Opts.ObjCWeakRuntime) { in ParseLangArgs()
3699 Opts.ObjCWeak = 1; in ParseLangArgs()
3701 } else if (Opts.ObjCAutoRefCount) { in ParseLangArgs()
3702 Opts.ObjCWeak = Opts.ObjCWeakRuntime; in ParseLangArgs()
3706 Opts.ObjCSubscriptingLegacyRuntime = in ParseLangArgs()
3707 (Opts.ObjCRuntime.getKind() == ObjCRuntime::FragileMacOSX); in ParseLangArgs()
3722 Opts.GNUCVersion = Major * 100 * 100 + Minor * 100 + Patch; in ParseLangArgs()
3747 Opts.IgnoreXCOFFVisibility = 1; in ParseLangArgs()
3750 Opts.setSignedOverflowBehavior(LangOptions::SOB_Trapping); in ParseLangArgs()
3752 Opts.OverflowHandler = in ParseLangArgs()
3756 Opts.setSignedOverflowBehavior(LangOptions::SOB_Defined); in ParseLangArgs()
3758 Opts.MSCompatibilityVersion = 0; in ParseLangArgs()
3764 Opts.MSCompatibilityVersion = VT.getMajor() * 10000000 + in ParseLangArgs()
3773 Opts.Trigraphs = in ParseLangArgs()
3774 (!Opts.GNUMode && !Opts.MSVCCompat && !Opts.CPlusPlus17) || T.isOSzOS(); in ParseLangArgs()
3775 Opts.Trigraphs = in ParseLangArgs()
3776 Args.hasFlag(OPT_ftrigraphs, OPT_fno_trigraphs, Opts.Trigraphs); in ParseLangArgs()
3778 Opts.Blocks = Args.hasArg(OPT_fblocks) || (Opts.OpenCL in ParseLangArgs()
3779 && Opts.OpenCLVersion == 200); in ParseLangArgs()
3781 Opts.ConvergentFunctions = Opts.OpenCL || (Opts.CUDA && Opts.CUDAIsDevice) || in ParseLangArgs()
3782 Opts.SYCLIsDevice || in ParseLangArgs()
3785 Opts.NoBuiltin = Args.hasArg(OPT_fno_builtin) || Opts.Freestanding; in ParseLangArgs()
3786 if (!Opts.NoBuiltin) in ParseLangArgs()
3787 getAllNoBuiltinFuncValues(Args, Opts.NoBuiltinFuncs); in ParseLangArgs()
3788 Opts.LongDoubleSize = Args.hasArg(OPT_mlong_double_128) in ParseLangArgs()
3791 if (Opts.FastRelaxedMath) in ParseLangArgs()
3792 Opts.setDefaultFPContractMode(LangOptions::FPM_Fast); in ParseLangArgs()
3793 llvm::sort(Opts.ModuleFeatures); in ParseLangArgs()
3797 if (Opts.getDefaultCallingConv() != LangOptions::DCC_None) in ParseLangArgs()
3805 Opts.setDefaultCallingConv(LangOptions::DCC_StdCall); in ParseLangArgs()
3810 Opts.OpenMP = Args.hasArg(OPT_fopenmp) ? 50 : 0; in ParseLangArgs()
3815 Opts.OpenMPSimd = !Opts.OpenMP && IsSimdSpecified; in ParseLangArgs()
3816 Opts.OpenMPUseTLS = in ParseLangArgs()
3817 Opts.OpenMP && !Args.hasArg(options::OPT_fnoopenmp_use_tls); in ParseLangArgs()
3818 Opts.OpenMPIsDevice = in ParseLangArgs()
3819 Opts.OpenMP && Args.hasArg(options::OPT_fopenmp_is_device); in ParseLangArgs()
3820 Opts.OpenMPIRBuilder = in ParseLangArgs()
3821 Opts.OpenMP && Args.hasArg(options::OPT_fopenmp_enable_irbuilder); in ParseLangArgs()
3823 Opts.OpenMPIsDevice || Args.hasArg(options::OPT_fopenmp_targets_EQ); in ParseLangArgs()
3825 Opts.ConvergentFunctions = Opts.ConvergentFunctions || Opts.OpenMPIsDevice; in ParseLangArgs()
3827 if (Opts.OpenMP || Opts.OpenMPSimd) { in ParseLangArgs()
3830 (IsSimdSpecified || IsTargetSpecified) ? 50 : Opts.OpenMP, Diags)) in ParseLangArgs()
3831 Opts.OpenMP = Version; in ParseLangArgs()
3834 if (!Opts.OpenMPIsDevice) { in ParseLangArgs()
3849 if ((Opts.OpenMPIsDevice && (T.isNVPTX() || T.isAMDGCN())) || in ParseLangArgs()
3850 Opts.OpenCLCPlusPlus) { in ParseLangArgs()
3851 Opts.Exceptions = 0; in ParseLangArgs()
3852 Opts.CXXExceptions = 0; in ParseLangArgs()
3854 if (Opts.OpenMPIsDevice && T.isNVPTX()) { in ParseLangArgs()
3855 Opts.OpenMPCUDANumSMs = in ParseLangArgs()
3857 Opts.OpenMPCUDANumSMs, Diags); in ParseLangArgs()
3858 Opts.OpenMPCUDABlocksPerSM = in ParseLangArgs()
3860 Opts.OpenMPCUDABlocksPerSM, Diags); in ParseLangArgs()
3861 Opts.OpenMPCUDAReductionBufNum = getLastArgIntValue( in ParseLangArgs()
3863 Opts.OpenMPCUDAReductionBufNum, Diags); in ParseLangArgs()
3893 Opts.OMPTargetTriples.push_back(TT); in ParseLangArgs()
3900 Opts.OMPHostIRFile = A->getValue(); in ParseLangArgs()
3901 if (!llvm::sys::fs::exists(Opts.OMPHostIRFile)) in ParseLangArgs()
3903 << Opts.OMPHostIRFile; in ParseLangArgs()
3907 Opts.OpenMPCUDAMode = Opts.OpenMPIsDevice && (T.isNVPTX() || T.isAMDGCN()) && in ParseLangArgs()
3911 Opts.OpenMPCUDAForceFullRuntime = in ParseLangArgs()
3912 Opts.OpenMPIsDevice && (T.isNVPTX() || T.isAMDGCN()) && in ParseLangArgs()
3918 Opts.Optimize = Opt != 0; in ParseLangArgs()
3919 Opts.OptimizeSize = OptSize != 0; in ParseLangArgs()
3924 Opts.NoInlineDefine = !Opts.Optimize; in ParseLangArgs()
3929 Opts.NoInlineDefine = true; in ParseLangArgs()
3934 Opts.setDefaultFPContractMode(LangOptions::FPM_Fast); in ParseLangArgs()
3936 Opts.setDefaultFPContractMode(LangOptions::FPM_On); in ParseLangArgs()
3938 Opts.setDefaultFPContractMode(LangOptions::FPM_Off); in ParseLangArgs()
3940 Opts.setDefaultFPContractMode(LangOptions::FPM_FastHonorPragmas); in ParseLangArgs()
3947 Diags, Opts.Sanitize); in ParseLangArgs()
3948 Opts.NoSanitizeFiles = Args.getAllArgValues(OPT_fsanitize_ignorelist_EQ); in ParseLangArgs()
3951 Opts.NoSanitizeFiles.insert(Opts.NoSanitizeFiles.end(), in ParseLangArgs()
3956 Opts.setClangABICompat(LangOptions::ClangABI::Latest); in ParseLangArgs()
3973 Opts.setClangABICompat(LangOptions::ClangABI::Ver3_8); in ParseLangArgs()
3975 Opts.setClangABICompat(LangOptions::ClangABI::Ver4); in ParseLangArgs()
3977 Opts.setClangABICompat(LangOptions::ClangABI::Ver6); in ParseLangArgs()
3979 Opts.setClangABICompat(LangOptions::ClangABI::Ver7); in ParseLangArgs()
3981 Opts.setClangABICompat(LangOptions::ClangABI::Ver9); in ParseLangArgs()
3983 Opts.setClangABICompat(LangOptions::ClangABI::Ver11); in ParseLangArgs()
3985 Opts.setClangABICompat(LangOptions::ClangABI::Ver12); in ParseLangArgs()
3996 Opts.setSignReturnAddressScope( in ParseLangArgs()
3999 Opts.setSignReturnAddressScope( in ParseLangArgs()
4002 Opts.setSignReturnAddressScope( in ParseLangArgs()
4012 Opts.setSignReturnAddressKey( in ParseLangArgs()
4015 Opts.setSignReturnAddressKey( in ParseLangArgs()
4034 Opts.CXXABI = Kind; in ParseLangArgs()
4038 Opts.RelativeCXXABIVTables = in ParseLangArgs()
4045 Opts.MacroPrefixMap.insert( in ParseLangArgs()
4096 static void GeneratePreprocessorArgs(PreprocessorOptions &Opts, in GeneratePreprocessorArgs() argument
4102 PreprocessorOptions *PreprocessorOpts = &Opts; in GeneratePreprocessorArgs()
4115 if (Opts.PCHWithHdrStop && !Opts.PCHWithHdrStopCreate) in GeneratePreprocessorArgs()
4118 for (const auto &D : Opts.DeserializedPCHDeclsToErrorOn) in GeneratePreprocessorArgs()
4121 if (Opts.PrecompiledPreambleBytes != std::make_pair(0u, false)) in GeneratePreprocessorArgs()
4123 Twine(Opts.PrecompiledPreambleBytes.first) + "," + in GeneratePreprocessorArgs()
4124 (Opts.PrecompiledPreambleBytes.second ? "1" : "0"), in GeneratePreprocessorArgs()
4127 for (const auto &M : Opts.Macros) { in GeneratePreprocessorArgs()
4143 for (const auto &I : Opts.Includes) { in GeneratePreprocessorArgs()
4154 for (const auto &CI : Opts.ChainedIncludes) in GeneratePreprocessorArgs()
4157 for (const auto &RF : Opts.RemappedFiles) in GeneratePreprocessorArgs()
4164 static bool ParsePreprocessorArgs(PreprocessorOptions &Opts, ArgList &Args, in ParsePreprocessorArgs() argument
4170 PreprocessorOptions *PreprocessorOpts = &Opts; in ParsePreprocessorArgs()
4183 Opts.PCHWithHdrStop = Args.hasArg(OPT_pch_through_hdrstop_create) || in ParsePreprocessorArgs()
4187 Opts.DeserializedPCHDeclsToErrorOn.insert(A->getValue()); in ParsePreprocessorArgs()
4200 Opts.PrecompiledPreambleBytes.first = Bytes; in ParsePreprocessorArgs()
4201 Opts.PrecompiledPreambleBytes.second = (EndOfLine != 0); in ParsePreprocessorArgs()
4209 Opts.addMacroDef("__CET__=1"); in ParsePreprocessorArgs()
4211 Opts.addMacroDef("__CET__=2"); in ParsePreprocessorArgs()
4213 Opts.addMacroDef("__CET__=3"); in ParsePreprocessorArgs()
4219 Opts.addMacroDef(A->getValue()); in ParsePreprocessorArgs()
4221 Opts.addMacroUndef(A->getValue()); in ParsePreprocessorArgs()
4226 Opts.Includes.emplace_back(A->getValue()); in ParsePreprocessorArgs()
4229 Opts.ChainedIncludes.emplace_back(A->getValue()); in ParsePreprocessorArgs()
4239 Opts.addRemappedFile(Split.first, Split.second); in ParsePreprocessorArgs()
4246 Opts.LexEditorPlaceholders = false; in ParsePreprocessorArgs()
4252 const PreprocessorOutputOptions &Opts, SmallVectorImpl<const char *> &Args, in GeneratePreprocessorOutputArgs() argument
4254 const PreprocessorOutputOptions &PreprocessorOutputOpts = Opts; in GeneratePreprocessorOutputArgs()
4267 bool Generate_dM = isStrictlyPreprocessorAction(Action) && !Opts.ShowCPP; in GeneratePreprocessorOutputArgs()
4270 if (!Generate_dM && Opts.ShowMacros) in GeneratePreprocessorOutputArgs()
4274 static bool ParsePreprocessorOutputArgs(PreprocessorOutputOptions &Opts, in ParsePreprocessorOutputArgs() argument
4279 PreprocessorOutputOptions &PreprocessorOutputOpts = Opts; in ParsePreprocessorOutputArgs()
4292 Opts.ShowCPP = isStrictlyPreprocessorAction(Action) && !Args.hasArg(OPT_dM); in ParsePreprocessorOutputArgs()
4293 Opts.ShowMacros = Args.hasArg(OPT_dM) || Args.hasArg(OPT_dD); in ParsePreprocessorOutputArgs()
4298 static void GenerateTargetArgs(const TargetOptions &Opts, in GenerateTargetArgs() argument
4301 const TargetOptions *TargetOpts = &Opts; in GenerateTargetArgs()
4313 if (!Opts.SDKVersion.empty()) in GenerateTargetArgs()
4314 GenerateArg(Args, OPT_target_sdk_version_EQ, Opts.SDKVersion.getAsString(), in GenerateTargetArgs()
4318 static bool ParseTargetArgs(TargetOptions &Opts, ArgList &Args, in ParseTargetArgs() argument
4322 TargetOptions *TargetOpts = &Opts; in ParseTargetArgs()
4341 Opts.SDKVersion = Version; in ParseTargetArgs()
4353 const OptTable &Opts = getDriverOptTable(); in CreateFromArgsImpl() local
4356 InputArgList Args = Opts.ParseArgs(CommandLineArgs, MissingArgIndex, in CreateFromArgsImpl()
4369 if (Opts.findNearest(ArgString, Nearest, IncludedFlagsBitmask) > 1) in CreateFromArgsImpl()