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 if (Opts.DebugInfo == codegenoptions::DebugInfoConstructor) in GenerateCodeGenArgs()
1375 for (const auto &Prefix : Opts.DebugPrefixMap) in GenerateCodeGenArgs()
1379 for (const auto &Prefix : Opts.CoveragePrefixMap) in GenerateCodeGenArgs()
1383 if (Opts.NewStructPathTBAA) in GenerateCodeGenArgs()
1386 if (Opts.OptimizeSize == 1) in GenerateCodeGenArgs()
1388 else if (Opts.OptimizeSize == 2) in GenerateCodeGenArgs()
1396 if (Opts.UnrollLoops && Opts.OptimizationLevel <= 1) in GenerateCodeGenArgs()
1398 else if (!Opts.UnrollLoops && Opts.OptimizationLevel > 1) in GenerateCodeGenArgs()
1401 if (!Opts.BinutilsVersion.empty()) in GenerateCodeGenArgs()
1402 GenerateArg(Args, OPT_fbinutils_version_EQ, Opts.BinutilsVersion, SA); in GenerateCodeGenArgs()
1404 if (Opts.DebugNameTable == in GenerateCodeGenArgs()
1407 else if (Opts.DebugNameTable == in GenerateCodeGenArgs()
1415 if (Opts.TimePasses) { in GenerateCodeGenArgs()
1416 if (Opts.TimePassesPerRun) in GenerateCodeGenArgs()
1422 if (Opts.PrepareForLTO && !Opts.PrepareForThinLTO) in GenerateCodeGenArgs()
1425 if (Opts.PrepareForThinLTO) in GenerateCodeGenArgs()
1428 if (!Opts.ThinLTOIndexFile.empty()) in GenerateCodeGenArgs()
1429 GenerateArg(Args, OPT_fthinlto_index_EQ, Opts.ThinLTOIndexFile, SA); in GenerateCodeGenArgs()
1431 if (Opts.SaveTempsFilePrefix == OutputFile) in GenerateCodeGenArgs()
1435 if (!Opts.MemoryProfileOutput.empty()) { in GenerateCodeGenArgs()
1436 if (Opts.MemoryProfileOutput == MemProfileBasename) { in GenerateCodeGenArgs()
1440 Opts.MemoryProfileOutput.size() - MemProfileBasename.size(); in GenerateCodeGenArgs()
1442 Opts.MemoryProfileOutput.substr(0, ArgLength), SA); in GenerateCodeGenArgs()
1446 if (memcmp(Opts.CoverageVersion, "408*", 4) != 0) in GenerateCodeGenArgs()
1448 StringRef(Opts.CoverageVersion, 4), SA); in GenerateCodeGenArgs()
1454 if (Opts.XRayInstrumentationBundle.Mask != XRayInstrKind::All) { in GenerateCodeGenArgs()
1456 serializeXRayInstrumentationBundle(Opts.XRayInstrumentationBundle); in GenerateCodeGenArgs()
1461 if (Opts.CFProtectionReturn && Opts.CFProtectionBranch) in GenerateCodeGenArgs()
1463 else if (Opts.CFProtectionReturn) in GenerateCodeGenArgs()
1465 else if (Opts.CFProtectionBranch) in GenerateCodeGenArgs()
1468 for (const auto &F : Opts.LinkBitcodeFiles) { in GenerateCodeGenArgs()
1479 if (Opts.ExplicitEmulatedTLS) { in GenerateCodeGenArgs()
1481 Args, Opts.EmulatedTLS ? OPT_femulated_tls : OPT_fno_emulated_tls, SA); in GenerateCodeGenArgs()
1484 if (Opts.FPDenormalMode != llvm::DenormalMode::getIEEE()) in GenerateCodeGenArgs()
1485 GenerateArg(Args, OPT_fdenormal_fp_math_EQ, Opts.FPDenormalMode.str(), SA); in GenerateCodeGenArgs()
1487 if (Opts.FP32DenormalMode != llvm::DenormalMode::getIEEE()) in GenerateCodeGenArgs()
1488 GenerateArg(Args, OPT_fdenormal_fp_math_f32_EQ, Opts.FP32DenormalMode.str(), in GenerateCodeGenArgs()
1491 if (Opts.StructReturnConvention == CodeGenOptions::SRCK_OnStack) { in GenerateCodeGenArgs()
1495 } else if (Opts.StructReturnConvention == CodeGenOptions::SRCK_InRegs) { in GenerateCodeGenArgs()
1501 if (Opts.EnableAIXExtendedAltivecABI) in GenerateCodeGenArgs()
1504 if (!Opts.OptRecordPasses.empty()) in GenerateCodeGenArgs()
1505 GenerateArg(Args, OPT_opt_record_passes, Opts.OptRecordPasses, SA); in GenerateCodeGenArgs()
1507 if (!Opts.OptRecordFormat.empty()) in GenerateCodeGenArgs()
1508 GenerateArg(Args, OPT_opt_record_format, Opts.OptRecordFormat, SA); in GenerateCodeGenArgs()
1511 Opts.OptimizationRemark); in GenerateCodeGenArgs()
1514 Opts.OptimizationRemarkMissed); in GenerateCodeGenArgs()
1517 Opts.OptimizationRemarkAnalysis); in GenerateCodeGenArgs()
1520 Opts.DiagnosticsHotnessThreshold in GenerateCodeGenArgs()
1521 ? Twine(*Opts.DiagnosticsHotnessThreshold) in GenerateCodeGenArgs()
1525 for (StringRef Sanitizer : serializeSanitizerKinds(Opts.SanitizeRecover)) in GenerateCodeGenArgs()
1528 for (StringRef Sanitizer : serializeSanitizerKinds(Opts.SanitizeTrap)) in GenerateCodeGenArgs()
1531 if (!Opts.EmitVersionIdentMetadata) in GenerateCodeGenArgs()
1534 switch (Opts.FiniteLoops) { in GenerateCodeGenArgs()
1546 bool CompilerInvocation::ParseCodeGenArgs(CodeGenOptions &Opts, ArgList &Args, in ParseCodeGenArgs() argument
1564 Opts.OptimizationLevel = OptimizationLevel; in ParseCodeGenArgs()
1568 CodeGenOptions &CodeGenOpts = Opts; in ParseCodeGenArgs()
1586 Opts.setInlining((Opts.OptimizationLevel == 0) in ParseCodeGenArgs()
1594 if (Opts.OptimizationLevel > 0) { in ParseCodeGenArgs()
1597 Opts.setInlining(CodeGenOptions::NormalInlining); in ParseCodeGenArgs()
1599 Opts.setInlining(CodeGenOptions::OnlyHintInlining); in ParseCodeGenArgs()
1601 Opts.setInlining(CodeGenOptions::OnlyAlwaysInlining); in ParseCodeGenArgs()
1607 Opts.DirectAccessExternalData = in ParseCodeGenArgs()
1626 Opts.setDebugInfo(static_cast<codegenoptions::DebugInfoKind>(Val)); in ParseCodeGenArgs()
1632 if (Opts.getDebugInfo() == codegenoptions::LimitedDebugInfo) in ParseCodeGenArgs()
1633 Opts.setDebugInfo(codegenoptions::DebugInfoConstructor); in ParseCodeGenArgs()
1637 Opts.DebugPrefixMap.insert( in ParseCodeGenArgs()
1643 Opts.CoveragePrefixMap.insert( in ParseCodeGenArgs()
1652 if (Opts.OptimizationLevel > 0 && Opts.hasReducedDebugInfo() && in ParseCodeGenArgs()
1654 Opts.EmitCallSiteInfo = true; in ParseCodeGenArgs()
1656 if (!Opts.EnableDIPreservationVerify && Opts.DIBugsReportFilePath.size()) { in ParseCodeGenArgs()
1658 << Opts.DIBugsReportFilePath; in ParseCodeGenArgs()
1659 Opts.DIBugsReportFilePath = ""; in ParseCodeGenArgs()
1662 Opts.NewStructPathTBAA = !Args.hasArg(OPT_no_struct_path_tbaa) && in ParseCodeGenArgs()
1664 Opts.OptimizeSize = getOptimizationLevelSize(Args); in ParseCodeGenArgs()
1665 Opts.SimplifyLibCalls = !LangOpts->NoBuiltin; in ParseCodeGenArgs()
1666 if (Opts.SimplifyLibCalls) in ParseCodeGenArgs()
1667 Opts.NoBuiltinFuncs = LangOpts->NoBuiltinFuncs; in ParseCodeGenArgs()
1668 Opts.UnrollLoops = in ParseCodeGenArgs()
1670 (Opts.OptimizationLevel > 1)); in ParseCodeGenArgs()
1671 Opts.BinutilsVersion = in ParseCodeGenArgs()
1674 Opts.DebugNameTable = static_cast<unsigned>( in ParseCodeGenArgs()
1681 if (!Opts.ProfileInstrumentUsePath.empty()) in ParseCodeGenArgs()
1682 setPGOUseInstrumentor(Opts, Opts.ProfileInstrumentUsePath); in ParseCodeGenArgs()
1685 Opts.TimePasses = true; in ParseCodeGenArgs()
1689 if (Opts.LegacyPassManager) in ParseCodeGenArgs()
1695 Opts.TimePassesPerRun = false; in ParseCodeGenArgs()
1697 Opts.TimePassesPerRun = true; in ParseCodeGenArgs()
1704 Opts.PrepareForLTO = Args.hasArg(OPT_flto, OPT_flto_EQ); in ParseCodeGenArgs()
1705 Opts.PrepareForThinLTO = false; in ParseCodeGenArgs()
1709 Opts.PrepareForThinLTO = true; in ParseCodeGenArgs()
1717 Opts.ThinLTOIndexFile = in ParseCodeGenArgs()
1721 Opts.SaveTempsFilePrefix = in ParseCodeGenArgs()
1732 Opts.MemoryProfileOutput = std::string(Path); in ParseCodeGenArgs()
1734 Opts.MemoryProfileOutput = MemProfileBasename; in ParseCodeGenArgs()
1736 memcpy(Opts.CoverageVersion, "408*", 4); in ParseCodeGenArgs()
1737 if (Opts.EmitGcovArcs || Opts.EmitGcovNotes) { in ParseCodeGenArgs()
1745 memcpy(Opts.CoverageVersion, CoverageVersion.data(), 4); in ParseCodeGenArgs()
1764 Opts.CmdArgs.insert(Opts.CmdArgs.end(), ArgStr.begin(), ArgStr.end()); in ParseCodeGenArgs()
1766 Opts.CmdArgs.push_back('\0'); in ParseCodeGenArgs()
1773 Opts.XRayInstrumentationBundle.Mask = XRayInstrKind::All; in ParseCodeGenArgs()
1777 Diags, Opts.XRayInstrumentationBundle); in ParseCodeGenArgs()
1782 Opts.CFProtectionReturn = 1; in ParseCodeGenArgs()
1783 Opts.CFProtectionBranch = 1; in ParseCodeGenArgs()
1785 Opts.CFProtectionReturn = 1; in ParseCodeGenArgs()
1787 Opts.CFProtectionBranch = 1; in ParseCodeGenArgs()
1803 Opts.LinkBitcodeFiles.push_back(F); in ParseCodeGenArgs()
1808 Opts.ExplicitEmulatedTLS = true; in ParseCodeGenArgs()
1821 Opts.FPDenormalMode = llvm::parseDenormalFPAttribute(Val); in ParseCodeGenArgs()
1822 if (!Opts.FPDenormalMode.isValid()) in ParseCodeGenArgs()
1828 Opts.FP32DenormalMode = llvm::parseDenormalFPAttribute(Val); in ParseCodeGenArgs()
1829 if (!Opts.FP32DenormalMode.isValid()) in ParseCodeGenArgs()
1847 Opts.setStructReturnConvention(CodeGenOptions::SRCK_OnStack); in ParseCodeGenArgs()
1851 Opts.setStructReturnConvention(CodeGenOptions::SRCK_InRegs); in ParseCodeGenArgs()
1867 Opts.EnableAIXExtendedAltivecABI = 1; in ParseCodeGenArgs()
1873 if (!Opts.OptRecordFile.empty()) in ParseCodeGenArgs()
1877 Opts.OptRecordPasses = A->getValue(); in ParseCodeGenArgs()
1882 Opts.OptRecordFormat = A->getValue(); in ParseCodeGenArgs()
1886 Opts.OptimizationRemark = in ParseCodeGenArgs()
1889 Opts.OptimizationRemarkMissed = in ParseCodeGenArgs()
1892 Opts.OptimizationRemarkAnalysis = ParseOptimizationRemark( in ParseCodeGenArgs()
1895 NeedLocTracking |= Opts.OptimizationRemark.hasValidPattern() || in ParseCodeGenArgs()
1896 Opts.OptimizationRemarkMissed.hasValidPattern() || in ParseCodeGenArgs()
1897 Opts.OptimizationRemarkAnalysis.hasValidPattern(); in ParseCodeGenArgs()
1899 bool UsingSampleProfile = !Opts.SampleProfileFile.empty(); in ParseCodeGenArgs()
1901 (Opts.getProfileUse() != CodeGenOptions::ProfileNone); in ParseCodeGenArgs()
1903 if (Opts.DiagnosticsWithHotness && !UsingProfile && in ParseCodeGenArgs()
1919 Opts.DiagnosticsHotnessThreshold = *ResultOrErr; in ParseCodeGenArgs()
1920 if ((!Opts.DiagnosticsHotnessThreshold.hasValue() || in ParseCodeGenArgs()
1921 Opts.DiagnosticsHotnessThreshold.getValue() > 0) && in ParseCodeGenArgs()
1934 if (!Opts.StackUsageOutput.empty()) in ParseCodeGenArgs()
1939 if (NeedLocTracking && Opts.getDebugInfo() == codegenoptions::NoDebugInfo) in ParseCodeGenArgs()
1940 Opts.setDebugInfo(codegenoptions::LocTrackingOnly); in ParseCodeGenArgs()
1946 Opts.SanitizeRecover); in ParseCodeGenArgs()
1949 Opts.SanitizeTrap); in ParseCodeGenArgs()
1951 Opts.EmitVersionIdentMetadata = Args.hasFlag(OPT_Qy, OPT_Qn, true); in ParseCodeGenArgs()
1954 Opts.FiniteLoops = CodeGenOptions::FiniteLoopsKind::Always; in ParseCodeGenArgs()
1956 Opts.FiniteLoops = CodeGenOptions::FiniteLoopsKind::Never; in ParseCodeGenArgs()
1958 Opts.EmitIEEENaNCompliantInsts = in ParseCodeGenArgs()
1960 if (!Opts.EmitIEEENaNCompliantInsts && !LangOptsRef.NoHonorNaNs) in ParseCodeGenArgs()
1967 GenerateDependencyOutputArgs(const DependencyOutputOptions &Opts, in GenerateDependencyOutputArgs() argument
1970 const DependencyOutputOptions &DependencyOutputOpts = Opts; in GenerateDependencyOutputArgs()
1982 if (Opts.ShowIncludesDest != ShowIncludesDestination::None) in GenerateDependencyOutputArgs()
1985 for (const auto &Dep : Opts.ExtraDeps) { in GenerateDependencyOutputArgs()
2005 static bool ParseDependencyOutputArgs(DependencyOutputOptions &Opts, in ParseDependencyOutputArgs() argument
2011 DependencyOutputOptions &DependencyOutputOpts = Opts; in ParseDependencyOutputArgs()
2028 Opts.ShowIncludesDest = ShowIncludesDestination::Stderr; in ParseDependencyOutputArgs()
2030 Opts.ShowIncludesDest = ShowIncludesDestination::Stdout; in ParseDependencyOutputArgs()
2032 Opts.ShowIncludesDest = ShowIncludesDestination::None; in ParseDependencyOutputArgs()
2042 Opts.ExtraDeps.emplace_back(std::string(Val), EDK_SanitizeIgnorelist); in ParseDependencyOutputArgs()
2044 if (Opts.IncludeSystemHeaders) { in ParseDependencyOutputArgs()
2048 Opts.ExtraDeps.emplace_back(std::string(Val), EDK_SanitizeIgnorelist); in ParseDependencyOutputArgs()
2055 Opts.ExtraDeps.emplace_back(Filename, EDK_ProfileList); in ParseDependencyOutputArgs()
2059 Opts.ExtraDeps.emplace_back(A->getValue(), EDK_DepFileEntry); in ParseDependencyOutputArgs()
2065 Opts.ExtraDeps.emplace_back(std::string(Val), EDK_ModuleFile); in ParseDependencyOutputArgs()
2122 static void GenerateFileSystemArgs(const FileSystemOptions &Opts, in GenerateFileSystemArgs() argument
2125 const FileSystemOptions &FileSystemOpts = Opts; in GenerateFileSystemArgs()
2139 static bool ParseFileSystemArgs(FileSystemOptions &Opts, const ArgList &Args, in ParseFileSystemArgs() argument
2143 FileSystemOptions &FileSystemOpts = Opts; in ParseFileSystemArgs()
2159 static void GenerateMigratorArgs(const MigratorOptions &Opts, in GenerateMigratorArgs() argument
2162 const MigratorOptions &MigratorOpts = Opts; in GenerateMigratorArgs()
2175 static bool ParseMigratorArgs(MigratorOptions &Opts, const ArgList &Args, in ParseMigratorArgs() argument
2179 MigratorOptions &MigratorOpts = Opts; in ParseMigratorArgs()
2196 const DiagnosticOptions &Opts, SmallVectorImpl<const char *> &Args, in GenerateDiagnosticArgs() argument
2198 const DiagnosticOptions *DiagnosticOpts = &Opts; in GenerateDiagnosticArgs()
2210 if (!Opts.DiagnosticSerializationFile.empty()) in GenerateDiagnosticArgs()
2212 Opts.DiagnosticSerializationFile, SA); in GenerateDiagnosticArgs()
2214 if (Opts.ShowColors) in GenerateDiagnosticArgs()
2217 if (Opts.VerifyDiagnostics && in GenerateDiagnosticArgs()
2218 llvm::is_contained(Opts.VerifyPrefixes, "expected")) in GenerateDiagnosticArgs()
2221 for (const auto &Prefix : Opts.VerifyPrefixes) in GenerateDiagnosticArgs()
2225 DiagnosticLevelMask VIU = Opts.getVerifyIgnoreUnexpected(); in GenerateDiagnosticArgs()
2241 for (const auto &Warning : Opts.Warnings) { in GenerateDiagnosticArgs()
2248 for (const auto &Remark : Opts.Remarks) { in GenerateDiagnosticArgs()
2261 bool clang::ParseDiagnosticArgs(DiagnosticOptions &Opts, ArgList &Args, in ParseDiagnosticArgs() argument
2275 DiagnosticOptions *DiagnosticOpts = &Opts; in ParseDiagnosticArgs()
2288 llvm::sys::Process::UseANSIEscapeCodes(Opts.UseANSIEscapeCodes); in ParseDiagnosticArgs()
2292 Opts.DiagnosticSerializationFile = A->getValue(); in ParseDiagnosticArgs()
2293 Opts.ShowColors = parseShowColorsArgs(Args, DefaultDiagColor); in ParseDiagnosticArgs()
2295 Opts.VerifyDiagnostics = Args.hasArg(OPT_verify) || Args.hasArg(OPT_verify_EQ); in ParseDiagnosticArgs()
2296 Opts.VerifyPrefixes = Args.getAllArgValues(OPT_verify_EQ); in ParseDiagnosticArgs()
2298 Opts.VerifyPrefixes.push_back("expected"); in ParseDiagnosticArgs()
2301 if (!checkVerifyPrefixes(Opts.VerifyPrefixes, *Diags)) in ParseDiagnosticArgs()
2302 Opts.VerifyDiagnostics = false; in ParseDiagnosticArgs()
2304 llvm::sort(Opts.VerifyPrefixes); in ParseDiagnosticArgs()
2311 Opts.setVerifyIgnoreUnexpected(DiagMask); in ParseDiagnosticArgs()
2312 if (Opts.TabStop == 0 || Opts.TabStop > DiagnosticOptions::MaxTabStop) { in ParseDiagnosticArgs()
2313 Opts.TabStop = DiagnosticOptions::DefaultTabStop; in ParseDiagnosticArgs()
2315 << Opts.TabStop << DiagnosticOptions::DefaultTabStop; in ParseDiagnosticArgs()
2318 addDiagnosticArgs(Args, OPT_W_Group, OPT_W_value_Group, Opts.Warnings); in ParseDiagnosticArgs()
2319 addDiagnosticArgs(Args, OPT_R_Group, OPT_R_value_Group, Opts.Remarks); in ParseDiagnosticArgs()
2424 static void GenerateFrontendArgs(const FrontendOptions &Opts, in GenerateFrontendArgs() argument
2428 const FrontendOptions &FrontendOpts = Opts; in GenerateFrontendArgs()
2441 getProgramActionOpt(Opts.ProgramAction); in GenerateFrontendArgs()
2450 assert(Opts.ProgramAction == frontend::PluginAction && in GenerateFrontendArgs()
2453 GenerateArg(Args, OPT_plugin, Opts.ActionName, SA); in GenerateFrontendArgs()
2458 if (Opts.ProgramAction == frontend::ASTDump) { in GenerateFrontendArgs()
2463 if (Opts.ASTDumpFormat != ADOF_Default) { in GenerateFrontendArgs()
2465 switch (Opts.ASTDumpFormat) { in GenerateFrontendArgs()
2473 if (Opts.ASTDumpAll) in GenerateFrontendArgs()
2475 if (Opts.ASTDumpDecls) in GenerateFrontendArgs()
2478 if (Opts.ASTDumpAll) in GenerateFrontendArgs()
2480 if (Opts.ASTDumpDecls) in GenerateFrontendArgs()
2486 if (Opts.ProgramAction == frontend::FixIt && !Opts.FixItSuffix.empty()) { in GenerateFrontendArgs()
2488 GenerateArg(Args, OPT_fixit_EQ, Opts.FixItSuffix, SA); in GenerateFrontendArgs()
2494 for (const auto &PluginArgs : Opts.PluginArgs) { in GenerateFrontendArgs()
2502 for (const auto &Ext : Opts.ModuleFileExtensions) in GenerateFrontendArgs()
2506 if (!Opts.CodeCompletionAt.FileName.empty()) in GenerateFrontendArgs()
2507 GenerateArg(Args, OPT_code_completion_at, Opts.CodeCompletionAt.ToString(), in GenerateFrontendArgs()
2510 for (const auto &Plugin : Opts.Plugins) in GenerateFrontendArgs()
2515 for (const auto &ModuleFile : Opts.ModuleFiles) in GenerateFrontendArgs()
2518 if (Opts.AuxTargetCPU.hasValue()) in GenerateFrontendArgs()
2519 GenerateArg(Args, OPT_aux_target_cpu, *Opts.AuxTargetCPU, SA); in GenerateFrontendArgs()
2521 if (Opts.AuxTargetFeatures.hasValue()) in GenerateFrontendArgs()
2522 for (const auto &Feature : *Opts.AuxTargetFeatures) in GenerateFrontendArgs()
2526 StringRef Preprocessed = Opts.DashX.isPreprocessed() ? "-cpp-output" : ""; in GenerateFrontendArgs()
2528 Opts.DashX.getFormat() == InputKind::ModuleMap ? "-module-map" : ""; in GenerateFrontendArgs()
2532 switch (Opts.DashX.getLanguage()) { in GenerateFrontendArgs()
2564 assert(Opts.DashX.getFormat() == InputKind::Precompiled && in GenerateFrontendArgs()
2577 for (const auto &Input : Opts.Inputs) in GenerateFrontendArgs()
2581 static bool ParseFrontendArgs(FrontendOptions &Opts, ArgList &Args, in ParseFrontendArgs() argument
2585 FrontendOptions &FrontendOpts = Opts; in ParseFrontendArgs()
2598 Opts.ProgramAction = frontend::ParseSyntaxOnly; in ParseFrontendArgs()
2612 Opts.ASTDumpFormat = static_cast<ASTDumpOutputFormat>(Val); in ParseFrontendArgs()
2616 Opts.ASTDumpFormat = ADOF_Default; in ParseFrontendArgs()
2621 Opts.FixItSuffix = A->getValue(); in ParseFrontendArgs()
2650 Opts.ProgramAction = *ProgramAction; in ParseFrontendArgs()
2654 Opts.Plugins.emplace_back(A->getValue(0)); in ParseFrontendArgs()
2655 Opts.ProgramAction = frontend::PluginAction; in ParseFrontendArgs()
2656 Opts.ActionName = A->getValue(); in ParseFrontendArgs()
2659 Opts.PluginArgs[AA->getValue(0)].emplace_back(AA->getValue(1)); in ParseFrontendArgs()
2676 Opts.ModuleFileExtensions.push_back( in ParseFrontendArgs()
2682 Opts.CodeCompletionAt = in ParseFrontendArgs()
2684 if (Opts.CodeCompletionAt.FileName.empty()) in ParseFrontendArgs()
2689 Opts.Plugins = Args.getAllArgValues(OPT_load); in ParseFrontendArgs()
2690 Opts.ASTDumpDecls = Args.hasArg(OPT_ast_dump, OPT_ast_dump_EQ); in ParseFrontendArgs()
2691 Opts.ASTDumpAll = Args.hasArg(OPT_ast_dump_all, OPT_ast_dump_all_EQ); in ParseFrontendArgs()
2696 Opts.ModuleFiles.push_back(std::string(Val)); in ParseFrontendArgs()
2699 if (Opts.ProgramAction != frontend::GenerateModule && Opts.IsSystemModule) in ParseFrontendArgs()
2704 Opts.AuxTargetCPU = std::string(Args.getLastArgValue(OPT_aux_target_cpu)); in ParseFrontendArgs()
2706 Opts.AuxTargetFeatures = Args.getAllArgValues(OPT_aux_target_feature); in ParseFrontendArgs()
2708 if (Opts.ARCMTAction != FrontendOptions::ARCMT_None && in ParseFrontendArgs()
2709 Opts.ObjCMTAction != FrontendOptions::ObjCMT_None) { in ParseFrontendArgs()
2769 Opts.Inputs.clear(); in ParseFrontendArgs()
2788 if (Opts.ProgramAction == frontend::GenerateModule && in ParseFrontendArgs()
2791 IsSystem = Opts.IsSystemModule; in ParseFrontendArgs()
2794 Opts.Inputs.emplace_back(std::move(Inputs[i]), IK, IsSystem); in ParseFrontendArgs()
2797 Opts.DashX = DashX; in ParseFrontendArgs()
2809 static void GenerateHeaderSearchArgs(HeaderSearchOptions &Opts, in GenerateHeaderSearchArgs() argument
2812 const HeaderSearchOptions *HeaderSearchOpts = &Opts; in GenerateHeaderSearchArgs()
2824 if (Opts.UseLibcxx) in GenerateHeaderSearchArgs()
2827 if (!Opts.ModuleCachePath.empty()) in GenerateHeaderSearchArgs()
2828 GenerateArg(Args, OPT_fmodules_cache_path, Opts.ModuleCachePath, SA); in GenerateHeaderSearchArgs()
2830 for (const auto &File : Opts.PrebuiltModuleFiles) in GenerateHeaderSearchArgs()
2833 for (const auto &Path : Opts.PrebuiltModulePaths) in GenerateHeaderSearchArgs()
2836 for (const auto &Macro : Opts.ModulesIgnoreMacros) in GenerateHeaderSearchArgs()
2848 auto It = Opts.UserEntries.begin(); in GenerateHeaderSearchArgs()
2849 auto End = Opts.UserEntries.end(); in GenerateHeaderSearchArgs()
2925 for (const auto &P : Opts.SystemHeaderPrefixes) { in GenerateHeaderSearchArgs()
2931 for (const std::string &F : Opts.VFSOverlayFiles) in GenerateHeaderSearchArgs()
2935 static bool ParseHeaderSearchArgs(HeaderSearchOptions &Opts, ArgList &Args, in ParseHeaderSearchArgs() argument
2940 HeaderSearchOptions *HeaderSearchOpts = &Opts; in ParseHeaderSearchArgs()
2954 Opts.UseLibcxx = (strcmp(A->getValue(), "libc++") == 0); in ParseHeaderSearchArgs()
2965 Opts.ModuleCachePath = std::string(P.str()); in ParseHeaderSearchArgs()
2972 Opts.PrebuiltModuleFiles.insert( in ParseHeaderSearchArgs()
2977 Opts.AddPrebuiltModulePath(A->getValue()); in ParseHeaderSearchArgs()
2981 Opts.ModulesIgnoreMacros.insert( in ParseHeaderSearchArgs()
3004 llvm::sys::path::append(Buffer, Opts.Sysroot, in ParseHeaderSearchArgs()
3009 Opts.AddPath(Path, Group, IsFramework, in ParseHeaderSearchArgs()
3021 Opts.AddPath(Prefix.str() + A->getValue(), frontend::After, false, true); in ParseHeaderSearchArgs()
3023 Opts.AddPath(Prefix.str() + A->getValue(), frontend::Angled, false, true); in ParseHeaderSearchArgs()
3027 Opts.AddPath(A->getValue(), frontend::After, false, true); in ParseHeaderSearchArgs()
3029 Opts.AddPath(A->getValue(), frontend::Quoted, false, true); in ParseHeaderSearchArgs()
3031 Opts.AddPath(A->getValue(), frontend::System, false, in ParseHeaderSearchArgs()
3034 Opts.AddPath(A->getValue(), frontend::System, true, true); in ParseHeaderSearchArgs()
3036 Opts.AddPath(A->getValue(), frontend::System, /*IsFramework=*/true, in ParseHeaderSearchArgs()
3041 Opts.AddPath(A->getValue(), frontend::CSystem, false, true); in ParseHeaderSearchArgs()
3043 Opts.AddPath(A->getValue(), frontend::CXXSystem, false, true); in ParseHeaderSearchArgs()
3045 Opts.AddPath(A->getValue(), frontend::ObjCSystem, false,true); in ParseHeaderSearchArgs()
3047 Opts.AddPath(A->getValue(), frontend::ObjCXXSystem, false, true); in ParseHeaderSearchArgs()
3055 Opts.AddPath(A->getValue(), Group, false, true); in ParseHeaderSearchArgs()
3061 Opts.AddSystemHeaderPrefix( in ParseHeaderSearchArgs()
3065 Opts.AddVFSOverlayFile(A->getValue()); in ParseHeaderSearchArgs()
3070 void CompilerInvocation::setLangDefaults(LangOptions &Opts, InputKind IK, in setLangDefaults() argument
3082 Opts.AsmPreprocessor = 1; in setLangDefaults()
3084 Opts.ObjC = 1; in setLangDefaults()
3139 Opts.LangStd = LangStd; in setLangDefaults()
3140 Opts.LineComment = Std.hasLineComments(); in setLangDefaults()
3141 Opts.C99 = Std.isC99(); in setLangDefaults()
3142 Opts.C11 = Std.isC11(); in setLangDefaults()
3143 Opts.C17 = Std.isC17(); in setLangDefaults()
3144 Opts.C2x = Std.isC2x(); in setLangDefaults()
3145 Opts.CPlusPlus = Std.isCPlusPlus(); in setLangDefaults()
3146 Opts.CPlusPlus11 = Std.isCPlusPlus11(); in setLangDefaults()
3147 Opts.CPlusPlus14 = Std.isCPlusPlus14(); in setLangDefaults()
3148 Opts.CPlusPlus17 = Std.isCPlusPlus17(); in setLangDefaults()
3149 Opts.CPlusPlus20 = Std.isCPlusPlus20(); in setLangDefaults()
3150 Opts.CPlusPlus2b = Std.isCPlusPlus2b(); in setLangDefaults()
3151 Opts.GNUMode = Std.isGNUMode(); in setLangDefaults()
3152 Opts.GNUCVersion = 0; in setLangDefaults()
3153 Opts.HexFloats = Std.hasHexFloats(); in setLangDefaults()
3154 Opts.ImplicitInt = Std.hasImplicitInt(); in setLangDefaults()
3156 Opts.CPlusPlusModules = Opts.CPlusPlus20; in setLangDefaults()
3159 Opts.OpenCL = Std.isOpenCL(); in setLangDefaults()
3161 Opts.OpenCLVersion = 100; in setLangDefaults()
3163 Opts.OpenCLVersion = 110; in setLangDefaults()
3165 Opts.OpenCLVersion = 120; in setLangDefaults()
3167 Opts.OpenCLVersion = 200; in setLangDefaults()
3169 Opts.OpenCLVersion = 300; in setLangDefaults()
3171 Opts.OpenCLCPlusPlusVersion = 100; in setLangDefaults()
3174 if (Opts.OpenCL) { in setLangDefaults()
3175 Opts.AltiVec = 0; in setLangDefaults()
3176 Opts.ZVector = 0; in setLangDefaults()
3177 Opts.setDefaultFPContractMode(LangOptions::FPM_On); in setLangDefaults()
3178 Opts.OpenCLCPlusPlus = Opts.CPlusPlus; in setLangDefaults()
3179 Opts.OpenCLPipe = Opts.OpenCLCPlusPlus || Opts.OpenCLVersion == 200; in setLangDefaults()
3180 Opts.OpenCLGenericAddressSpace = in setLangDefaults()
3181 Opts.OpenCLCPlusPlus || Opts.OpenCLVersion == 200; in setLangDefaults()
3184 if (Opts.IncludeDefaultHeader) { in setLangDefaults()
3185 if (Opts.DeclareOpenCLBuiltins) { in setLangDefaults()
3194 Opts.HIP = IK.getLanguage() == Language::HIP; in setLangDefaults()
3195 Opts.CUDA = IK.getLanguage() == Language::CUDA || Opts.HIP; in setLangDefaults()
3196 if (Opts.HIP) { in setLangDefaults()
3205 Opts.setDefaultFPContractMode(LangOptions::FPM_FastHonorPragmas); in setLangDefaults()
3206 } else if (Opts.CUDA) { in setLangDefaults()
3208 Opts.setDefaultFPContractMode(LangOptions::FPM_Fast); in setLangDefaults()
3211 Opts.RenderScript = IK.getLanguage() == Language::RenderScript; in setLangDefaults()
3214 Opts.Bool = Opts.OpenCL || Opts.CPlusPlus; in setLangDefaults()
3217 Opts.Half = Opts.OpenCL; in setLangDefaults()
3295 void CompilerInvocation::GenerateLangArgs(const LangOptions &Opts, in GenerateLangArgs() argument
3301 if (Opts.ObjCAutoRefCount) in GenerateLangArgs()
3303 if (Opts.PICLevel != 0) in GenerateLangArgs()
3304 GenerateArg(Args, OPT_pic_level, Twine(Opts.PICLevel), SA); in GenerateLangArgs()
3305 if (Opts.PIE) in GenerateLangArgs()
3307 for (StringRef Sanitizer : serializeSanitizerKinds(Opts.Sanitize)) in GenerateLangArgs()
3314 switch (Opts.LangStd) { in GenerateLangArgs()
3328 auto LangStandard = LangStandard::getLangStandardForKind(Opts.LangStd); in GenerateLangArgs()
3331 if (Opts.IncludeDefaultHeader) in GenerateLangArgs()
3333 if (Opts.DeclareOpenCLBuiltins) in GenerateLangArgs()
3336 const LangOptions *LangOpts = &Opts; in GenerateLangArgs()
3351 if (Opts.ObjC) { in GenerateLangArgs()
3352 GenerateArg(Args, OPT_fobjc_runtime_EQ, Opts.ObjCRuntime.getAsString(), SA); in GenerateLangArgs()
3354 if (Opts.GC == LangOptions::GCOnly) in GenerateLangArgs()
3356 else if (Opts.GC == LangOptions::HybridGC) in GenerateLangArgs()
3358 else if (Opts.ObjCAutoRefCount == 1) in GenerateLangArgs()
3361 if (Opts.ObjCWeakRuntime) in GenerateLangArgs()
3364 if (Opts.ObjCWeak) in GenerateLangArgs()
3367 if (Opts.ObjCSubscriptingLegacyRuntime) in GenerateLangArgs()
3371 if (Opts.GNUCVersion != 0) { in GenerateLangArgs()
3372 unsigned Major = Opts.GNUCVersion / 100 / 100; in GenerateLangArgs()
3373 unsigned Minor = (Opts.GNUCVersion / 100) % 100; in GenerateLangArgs()
3374 unsigned Patch = Opts.GNUCVersion % 100; in GenerateLangArgs()
3379 if (Opts.IgnoreXCOFFVisibility) in GenerateLangArgs()
3382 if (Opts.SignedOverflowBehavior == LangOptions::SOB_Trapping) { in GenerateLangArgs()
3384 GenerateArg(Args, OPT_ftrapv_handler, Opts.OverflowHandler, SA); in GenerateLangArgs()
3385 } else if (Opts.SignedOverflowBehavior == LangOptions::SOB_Defined) { in GenerateLangArgs()
3389 if (Opts.MSCompatibilityVersion != 0) { in GenerateLangArgs()
3390 unsigned Major = Opts.MSCompatibilityVersion / 10000000; in GenerateLangArgs()
3391 unsigned Minor = (Opts.MSCompatibilityVersion / 100000) % 100; in GenerateLangArgs()
3392 unsigned Subminor = Opts.MSCompatibilityVersion % 100000; in GenerateLangArgs()
3397 if ((!Opts.GNUMode && !Opts.MSVCCompat && !Opts.CPlusPlus17) || T.isOSzOS()) { in GenerateLangArgs()
3398 if (!Opts.Trigraphs) in GenerateLangArgs()
3401 if (Opts.Trigraphs) in GenerateLangArgs()
3405 if (Opts.Blocks && !(Opts.OpenCL && Opts.OpenCLVersion == 200)) in GenerateLangArgs()
3408 if (Opts.ConvergentFunctions && in GenerateLangArgs()
3409 !(Opts.OpenCL || (Opts.CUDA && Opts.CUDAIsDevice) || Opts.SYCLIsDevice)) in GenerateLangArgs()
3412 if (Opts.NoBuiltin && !Opts.Freestanding) in GenerateLangArgs()
3415 if (!Opts.NoBuiltin) in GenerateLangArgs()
3416 for (const auto &Func : Opts.NoBuiltinFuncs) in GenerateLangArgs()
3419 if (Opts.LongDoubleSize == 128) in GenerateLangArgs()
3421 else if (Opts.LongDoubleSize == 64) in GenerateLangArgs()
3428 if (Opts.OpenMP && !Opts.OpenMPSimd) { in GenerateLangArgs()
3431 if (Opts.OpenMP != 50) in GenerateLangArgs()
3432 GenerateArg(Args, OPT_fopenmp_version_EQ, Twine(Opts.OpenMP), SA); in GenerateLangArgs()
3434 if (!Opts.OpenMPUseTLS) in GenerateLangArgs()
3437 if (Opts.OpenMPIsDevice) in GenerateLangArgs()
3440 if (Opts.OpenMPIRBuilder) in GenerateLangArgs()
3444 if (Opts.OpenMPSimd) { in GenerateLangArgs()
3447 if (Opts.OpenMP != 50) in GenerateLangArgs()
3448 GenerateArg(Args, OPT_fopenmp_version_EQ, Twine(Opts.OpenMP), SA); in GenerateLangArgs()
3451 if (Opts.OpenMPCUDANumSMs != 0) in GenerateLangArgs()
3453 Twine(Opts.OpenMPCUDANumSMs), SA); in GenerateLangArgs()
3455 if (Opts.OpenMPCUDABlocksPerSM != 0) in GenerateLangArgs()
3457 Twine(Opts.OpenMPCUDABlocksPerSM), SA); in GenerateLangArgs()
3459 if (Opts.OpenMPCUDAReductionBufNum != 1024) in GenerateLangArgs()
3461 Twine(Opts.OpenMPCUDAReductionBufNum), SA); in GenerateLangArgs()
3463 if (!Opts.OMPTargetTriples.empty()) { in GenerateLangArgs()
3467 Opts.OMPTargetTriples, OS, in GenerateLangArgs()
3472 if (!Opts.OMPHostIRFile.empty()) in GenerateLangArgs()
3473 GenerateArg(Args, OPT_fopenmp_host_ir_file_path, Opts.OMPHostIRFile, SA); in GenerateLangArgs()
3475 if (Opts.OpenMPCUDAMode) in GenerateLangArgs()
3478 if (Opts.OpenMPCUDATargetParallel) in GenerateLangArgs()
3481 if (Opts.OpenMPCUDAForceFullRuntime) in GenerateLangArgs()
3487 if (Opts.DefaultFPContractMode == LangOptions::FPM_Fast) in GenerateLangArgs()
3489 else if (Opts.DefaultFPContractMode == LangOptions::FPM_On) in GenerateLangArgs()
3491 else if (Opts.DefaultFPContractMode == LangOptions::FPM_Off) in GenerateLangArgs()
3493 else if (Opts.DefaultFPContractMode == LangOptions::FPM_FastHonorPragmas) in GenerateLangArgs()
3496 for (StringRef Sanitizer : serializeSanitizerKinds(Opts.Sanitize)) in GenerateLangArgs()
3500 for (const std::string &F : Opts.NoSanitizeFiles) in GenerateLangArgs()
3503 if (Opts.getClangABICompat() == LangOptions::ClangABI::Ver3_8) in GenerateLangArgs()
3505 else if (Opts.getClangABICompat() == LangOptions::ClangABI::Ver4) in GenerateLangArgs()
3507 else if (Opts.getClangABICompat() == LangOptions::ClangABI::Ver6) in GenerateLangArgs()
3509 else if (Opts.getClangABICompat() == LangOptions::ClangABI::Ver7) in GenerateLangArgs()
3511 else if (Opts.getClangABICompat() == LangOptions::ClangABI::Ver9) in GenerateLangArgs()
3513 else if (Opts.getClangABICompat() == LangOptions::ClangABI::Ver11) in GenerateLangArgs()
3515 else if (Opts.getClangABICompat() == LangOptions::ClangABI::Ver12) in GenerateLangArgs()
3518 if (Opts.getSignReturnAddressScope() == in GenerateLangArgs()
3521 else if (Opts.getSignReturnAddressScope() == in GenerateLangArgs()
3525 if (Opts.getSignReturnAddressKey() == in GenerateLangArgs()
3529 if (Opts.CXXABI) in GenerateLangArgs()
3530 GenerateArg(Args, OPT_fcxx_abi_EQ, TargetCXXABI::getSpelling(*Opts.CXXABI), in GenerateLangArgs()
3534 bool CompilerInvocation::ParseLangArgs(LangOptions &Opts, ArgList &Args, in ParseLangArgs() argument
3546 Opts.ObjCAutoRefCount = 1; in ParseLangArgs()
3549 Opts.PICLevel = getLastArgIntValue(Args, OPT_pic_level, 0, Diags); in ParseLangArgs()
3550 Opts.PIE = Args.hasArg(OPT_pic_is_pie); in ParseLangArgs()
3552 Diags, Opts.Sanitize); in ParseLangArgs()
3624 Opts.IncludeDefaultHeader = Args.hasArg(OPT_finclude_default_header); in ParseLangArgs()
3625 Opts.DeclareOpenCLBuiltins = Args.hasArg(OPT_fdeclare_opencl_builtins); in ParseLangArgs()
3627 CompilerInvocation::setLangDefaults(Opts, IK, T, Includes, LangStd); in ParseLangArgs()
3631 LangOptions *LangOpts = &Opts; in ParseLangArgs()
3647 Opts.CFProtectionBranch = 1; in ParseLangArgs()
3658 Opts.setSYCLVersion(LangOptions::SYCL_Default); in ParseLangArgs()
3661 if (Opts.ObjC) { in ParseLangArgs()
3664 if (Opts.ObjCRuntime.tryParse(value)) in ParseLangArgs()
3669 Opts.setGC(LangOptions::GCOnly); in ParseLangArgs()
3671 Opts.setGC(LangOptions::HybridGC); in ParseLangArgs()
3673 Opts.ObjCAutoRefCount = 1; in ParseLangArgs()
3674 if (!Opts.ObjCRuntime.allowsARC()) in ParseLangArgs()
3683 Opts.ObjCWeakRuntime = 1; in ParseLangArgs()
3685 Opts.ObjCWeakRuntime = Opts.ObjCRuntime.allowsWeak(); in ParseLangArgs()
3691 assert(!Opts.ObjCWeak); in ParseLangArgs()
3692 } else if (Opts.getGC() != LangOptions::NonGC) { in ParseLangArgs()
3694 } else if (!Opts.ObjCWeakRuntime) { in ParseLangArgs()
3697 Opts.ObjCWeak = 1; in ParseLangArgs()
3699 } else if (Opts.ObjCAutoRefCount) { in ParseLangArgs()
3700 Opts.ObjCWeak = Opts.ObjCWeakRuntime; in ParseLangArgs()
3704 Opts.ObjCSubscriptingLegacyRuntime = in ParseLangArgs()
3705 (Opts.ObjCRuntime.getKind() == ObjCRuntime::FragileMacOSX); in ParseLangArgs()
3720 Opts.GNUCVersion = Major * 100 * 100 + Minor * 100 + Patch; in ParseLangArgs()
3745 Opts.IgnoreXCOFFVisibility = 1; in ParseLangArgs()
3748 Opts.setSignedOverflowBehavior(LangOptions::SOB_Trapping); in ParseLangArgs()
3750 Opts.OverflowHandler = in ParseLangArgs()
3754 Opts.setSignedOverflowBehavior(LangOptions::SOB_Defined); in ParseLangArgs()
3756 Opts.MSCompatibilityVersion = 0; in ParseLangArgs()
3762 Opts.MSCompatibilityVersion = VT.getMajor() * 10000000 + in ParseLangArgs()
3771 Opts.Trigraphs = in ParseLangArgs()
3772 (!Opts.GNUMode && !Opts.MSVCCompat && !Opts.CPlusPlus17) || T.isOSzOS(); in ParseLangArgs()
3773 Opts.Trigraphs = in ParseLangArgs()
3774 Args.hasFlag(OPT_ftrigraphs, OPT_fno_trigraphs, Opts.Trigraphs); in ParseLangArgs()
3776 Opts.Blocks = Args.hasArg(OPT_fblocks) || (Opts.OpenCL in ParseLangArgs()
3777 && Opts.OpenCLVersion == 200); in ParseLangArgs()
3779 Opts.ConvergentFunctions = Opts.OpenCL || (Opts.CUDA && Opts.CUDAIsDevice) || in ParseLangArgs()
3780 Opts.SYCLIsDevice || in ParseLangArgs()
3783 Opts.NoBuiltin = Args.hasArg(OPT_fno_builtin) || Opts.Freestanding; in ParseLangArgs()
3784 if (!Opts.NoBuiltin) in ParseLangArgs()
3785 getAllNoBuiltinFuncValues(Args, Opts.NoBuiltinFuncs); in ParseLangArgs()
3786 Opts.LongDoubleSize = Args.hasArg(OPT_mlong_double_128) in ParseLangArgs()
3789 if (Opts.FastRelaxedMath) in ParseLangArgs()
3790 Opts.setDefaultFPContractMode(LangOptions::FPM_Fast); in ParseLangArgs()
3791 llvm::sort(Opts.ModuleFeatures); in ParseLangArgs()
3795 if (Opts.getDefaultCallingConv() != LangOptions::DCC_None) in ParseLangArgs()
3803 Opts.setDefaultCallingConv(LangOptions::DCC_StdCall); in ParseLangArgs()
3808 Opts.OpenMP = Args.hasArg(OPT_fopenmp) ? 50 : 0; in ParseLangArgs()
3813 Opts.OpenMPSimd = !Opts.OpenMP && IsSimdSpecified; in ParseLangArgs()
3814 Opts.OpenMPUseTLS = in ParseLangArgs()
3815 Opts.OpenMP && !Args.hasArg(options::OPT_fnoopenmp_use_tls); in ParseLangArgs()
3816 Opts.OpenMPIsDevice = in ParseLangArgs()
3817 Opts.OpenMP && Args.hasArg(options::OPT_fopenmp_is_device); in ParseLangArgs()
3818 Opts.OpenMPIRBuilder = in ParseLangArgs()
3819 Opts.OpenMP && Args.hasArg(options::OPT_fopenmp_enable_irbuilder); in ParseLangArgs()
3821 Opts.OpenMPIsDevice || Args.hasArg(options::OPT_fopenmp_targets_EQ); in ParseLangArgs()
3823 Opts.ConvergentFunctions = Opts.ConvergentFunctions || Opts.OpenMPIsDevice; in ParseLangArgs()
3825 if (Opts.OpenMP || Opts.OpenMPSimd) { in ParseLangArgs()
3828 (IsSimdSpecified || IsTargetSpecified) ? 50 : Opts.OpenMP, Diags)) in ParseLangArgs()
3829 Opts.OpenMP = Version; in ParseLangArgs()
3832 if (!Opts.OpenMPIsDevice) { in ParseLangArgs()
3847 if ((Opts.OpenMPIsDevice && (T.isNVPTX() || T.isAMDGCN())) || in ParseLangArgs()
3848 Opts.OpenCLCPlusPlus) { in ParseLangArgs()
3849 Opts.Exceptions = 0; in ParseLangArgs()
3850 Opts.CXXExceptions = 0; in ParseLangArgs()
3852 if (Opts.OpenMPIsDevice && T.isNVPTX()) { in ParseLangArgs()
3853 Opts.OpenMPCUDANumSMs = in ParseLangArgs()
3855 Opts.OpenMPCUDANumSMs, Diags); in ParseLangArgs()
3856 Opts.OpenMPCUDABlocksPerSM = in ParseLangArgs()
3858 Opts.OpenMPCUDABlocksPerSM, Diags); in ParseLangArgs()
3859 Opts.OpenMPCUDAReductionBufNum = getLastArgIntValue( in ParseLangArgs()
3861 Opts.OpenMPCUDAReductionBufNum, Diags); in ParseLangArgs()
3891 Opts.OMPTargetTriples.push_back(TT); in ParseLangArgs()
3898 Opts.OMPHostIRFile = A->getValue(); in ParseLangArgs()
3899 if (!llvm::sys::fs::exists(Opts.OMPHostIRFile)) in ParseLangArgs()
3901 << Opts.OMPHostIRFile; in ParseLangArgs()
3905 Opts.OpenMPCUDAMode = Opts.OpenMPIsDevice && (T.isNVPTX() || T.isAMDGCN()) && in ParseLangArgs()
3910 Opts.OpenMPCUDATargetParallel = in ParseLangArgs()
3911 Opts.OpenMPIsDevice && (T.isNVPTX() || T.isAMDGCN()) && in ParseLangArgs()
3915 Opts.OpenMPCUDAForceFullRuntime = in ParseLangArgs()
3916 Opts.OpenMPIsDevice && (T.isNVPTX() || T.isAMDGCN()) && in ParseLangArgs()
3922 Opts.Optimize = Opt != 0; in ParseLangArgs()
3923 Opts.OptimizeSize = OptSize != 0; in ParseLangArgs()
3928 Opts.NoInlineDefine = !Opts.Optimize; in ParseLangArgs()
3933 Opts.NoInlineDefine = true; in ParseLangArgs()
3938 Opts.setDefaultFPContractMode(LangOptions::FPM_Fast); in ParseLangArgs()
3940 Opts.setDefaultFPContractMode(LangOptions::FPM_On); in ParseLangArgs()
3942 Opts.setDefaultFPContractMode(LangOptions::FPM_Off); in ParseLangArgs()
3944 Opts.setDefaultFPContractMode(LangOptions::FPM_FastHonorPragmas); in ParseLangArgs()
3951 Diags, Opts.Sanitize); in ParseLangArgs()
3952 Opts.NoSanitizeFiles = Args.getAllArgValues(OPT_fsanitize_ignorelist_EQ); in ParseLangArgs()
3955 Opts.NoSanitizeFiles.insert(Opts.NoSanitizeFiles.end(), in ParseLangArgs()
3960 Opts.setClangABICompat(LangOptions::ClangABI::Latest); in ParseLangArgs()
3977 Opts.setClangABICompat(LangOptions::ClangABI::Ver3_8); in ParseLangArgs()
3979 Opts.setClangABICompat(LangOptions::ClangABI::Ver4); in ParseLangArgs()
3981 Opts.setClangABICompat(LangOptions::ClangABI::Ver6); in ParseLangArgs()
3983 Opts.setClangABICompat(LangOptions::ClangABI::Ver7); in ParseLangArgs()
3985 Opts.setClangABICompat(LangOptions::ClangABI::Ver9); in ParseLangArgs()
3987 Opts.setClangABICompat(LangOptions::ClangABI::Ver11); in ParseLangArgs()
3989 Opts.setClangABICompat(LangOptions::ClangABI::Ver12); in ParseLangArgs()
4000 Opts.setSignReturnAddressScope( in ParseLangArgs()
4003 Opts.setSignReturnAddressScope( in ParseLangArgs()
4006 Opts.setSignReturnAddressScope( in ParseLangArgs()
4016 Opts.setSignReturnAddressKey( in ParseLangArgs()
4019 Opts.setSignReturnAddressKey( in ParseLangArgs()
4038 Opts.CXXABI = Kind; in ParseLangArgs()
4089 static void GeneratePreprocessorArgs(PreprocessorOptions &Opts, in GeneratePreprocessorArgs() argument
4095 PreprocessorOptions *PreprocessorOpts = &Opts; in GeneratePreprocessorArgs()
4108 if (Opts.PCHWithHdrStop && !Opts.PCHWithHdrStopCreate) in GeneratePreprocessorArgs()
4111 for (const auto &D : Opts.DeserializedPCHDeclsToErrorOn) in GeneratePreprocessorArgs()
4114 for (const auto &MP : Opts.MacroPrefixMap) in GeneratePreprocessorArgs()
4117 if (Opts.PrecompiledPreambleBytes != std::make_pair(0u, false)) in GeneratePreprocessorArgs()
4119 Twine(Opts.PrecompiledPreambleBytes.first) + "," + in GeneratePreprocessorArgs()
4120 (Opts.PrecompiledPreambleBytes.second ? "1" : "0"), in GeneratePreprocessorArgs()
4123 for (const auto &M : Opts.Macros) { in GeneratePreprocessorArgs()
4139 for (const auto &I : Opts.Includes) { in GeneratePreprocessorArgs()
4150 for (const auto &CI : Opts.ChainedIncludes) in GeneratePreprocessorArgs()
4153 for (const auto &RF : Opts.RemappedFiles) in GeneratePreprocessorArgs()
4160 static bool ParsePreprocessorArgs(PreprocessorOptions &Opts, ArgList &Args, in ParsePreprocessorArgs() argument
4166 PreprocessorOptions *PreprocessorOpts = &Opts; in ParsePreprocessorArgs()
4179 Opts.PCHWithHdrStop = Args.hasArg(OPT_pch_through_hdrstop_create) || in ParsePreprocessorArgs()
4183 Opts.DeserializedPCHDeclsToErrorOn.insert(A->getValue()); in ParsePreprocessorArgs()
4187 Opts.MacroPrefixMap.insert( in ParsePreprocessorArgs()
4202 Opts.PrecompiledPreambleBytes.first = Bytes; in ParsePreprocessorArgs()
4203 Opts.PrecompiledPreambleBytes.second = (EndOfLine != 0); in ParsePreprocessorArgs()
4211 Opts.addMacroDef("__CET__=1"); in ParsePreprocessorArgs()
4213 Opts.addMacroDef("__CET__=2"); in ParsePreprocessorArgs()
4215 Opts.addMacroDef("__CET__=3"); in ParsePreprocessorArgs()
4221 Opts.addMacroDef(A->getValue()); in ParsePreprocessorArgs()
4223 Opts.addMacroUndef(A->getValue()); in ParsePreprocessorArgs()
4228 Opts.Includes.emplace_back(A->getValue()); in ParsePreprocessorArgs()
4231 Opts.ChainedIncludes.emplace_back(A->getValue()); in ParsePreprocessorArgs()
4241 Opts.addRemappedFile(Split.first, Split.second); in ParsePreprocessorArgs()
4248 Opts.LexEditorPlaceholders = false; in ParsePreprocessorArgs()
4254 const PreprocessorOutputOptions &Opts, SmallVectorImpl<const char *> &Args, in GeneratePreprocessorOutputArgs() argument
4256 const PreprocessorOutputOptions &PreprocessorOutputOpts = Opts; in GeneratePreprocessorOutputArgs()
4269 bool Generate_dM = isStrictlyPreprocessorAction(Action) && !Opts.ShowCPP; in GeneratePreprocessorOutputArgs()
4272 if (!Generate_dM && Opts.ShowMacros) in GeneratePreprocessorOutputArgs()
4276 static bool ParsePreprocessorOutputArgs(PreprocessorOutputOptions &Opts, in ParsePreprocessorOutputArgs() argument
4281 PreprocessorOutputOptions &PreprocessorOutputOpts = Opts; in ParsePreprocessorOutputArgs()
4294 Opts.ShowCPP = isStrictlyPreprocessorAction(Action) && !Args.hasArg(OPT_dM); in ParsePreprocessorOutputArgs()
4295 Opts.ShowMacros = Args.hasArg(OPT_dM) || Args.hasArg(OPT_dD); in ParsePreprocessorOutputArgs()
4300 static void GenerateTargetArgs(const TargetOptions &Opts, in GenerateTargetArgs() argument
4303 const TargetOptions *TargetOpts = &Opts; in GenerateTargetArgs()
4315 if (!Opts.SDKVersion.empty()) in GenerateTargetArgs()
4316 GenerateArg(Args, OPT_target_sdk_version_EQ, Opts.SDKVersion.getAsString(), in GenerateTargetArgs()
4320 static bool ParseTargetArgs(TargetOptions &Opts, ArgList &Args, in ParseTargetArgs() argument
4324 TargetOptions *TargetOpts = &Opts; in ParseTargetArgs()
4343 Opts.SDKVersion = Version; in ParseTargetArgs()
4355 const OptTable &Opts = getDriverOptTable(); in CreateFromArgsImpl() local
4358 InputArgList Args = Opts.ParseArgs(CommandLineArgs, MissingArgIndex, in CreateFromArgsImpl()
4371 if (Opts.findNearest(ArgString, Nearest, IncludedFlagsBitmask) > 1) in CreateFromArgsImpl()